mailuntuk menghubungkan beberapa garis tubuh


120

mengalami kesulitan membuat beberapa baris berfungsi dengan benar di tautan mailto

Dalam kasus saya, saya mengujinya dengan pembaca email default Outlook.

Berikut ini dimasukkan ke dalam sebuah href jangkar:

mailto:email@address.com?&subject=test&body=type%20your&body=message%20here

hanya "pesan di sini" yang muncul di badan email. (apakah saya menggunakan chrome atau IE)

pikiran?

Jawaban:


208

Anda dapat menggunakan pengkodean URL untuk menyandikan baris baru sebagai %0A.

mailto:email@address.com?subject=test&body=type%20your%0Amessage%20here

Meskipun cara di atas tampaknya berfungsi dalam banyak kasus, olibre pengguna menunjukkan bahwa RFC yang mengatur skema URI mailto menetapkan bahwa %0D%0A(carriage return + line feed) harus digunakan sebagai pengganti %0A(line feed). Lihat juga: Representasi Baris Baru .


4
Terima kasih, ini bekerja dengan baik untuk saya dan tampaknya jauh lebih sederhana daripada solusi lain yang beredar di internet.
Bryn

Ini harus bekerja untuk semua karakter khusus, bukan? & =% 26,% =% 25, ​​adakah karakter yang tidak dimiliki pola ini?
blast_hardcheese

2
untuk info, $0Asederhananyaescape( "\n" )
sosis divillys

2
Pembuat enkode tersebut menggunakan standar encodeURIComponentuntuk mengenkode komponen URI.
Cees Timmerman

1
% 0D% 0A Bekerja untuk saya untuk email dan berbagi di pesan whatsapp
BenB

40
  1. Gunakan satu bodyparameter di dalam mailtostring
  2. Gunakan %0D%0Asebagai baris baru

The mailtoURI Skema ditentukan oleh oleh RFC2368 (Juli 1998) dan RFC6068 (Oktober 2010).
Di bawah ini adalah kutipan dari bagian 5 dari RFC terakhir ini:

[...] Jeda baris di badan pesan HARUS dikodekan dengan "%0D%0A".
Penerapan MUNGKIN menambahkan jeda baris terakhir ke badan pesan meskipun tidak ada jejak "%0D%0A"di badan [...]

Lihat juga di bagian 6 contoh dari RFC yang sama:

<mailto:infobot@example.com?body=send%20current-issue%0D%0Asend%20index>

Isi di atas mailtosesuai dengan:

send current-issue
send index

18

Untuk mendapatkan garis tubuh gunakan escape ()

body_line =  escape("\n");

begitu

href = "mailto:me@my.com?body=hello,"+body_line+"I like this.";

1
Saya lebih suka ini secara pribadi. Terutama karena ini juga berfungsi ketika Anda mencoba dan menambahkan%
Dan James Palmer

5
encodeURIComponent, lebih tepatnya. Lihat disini.
Cees Timmerman

15

Ini yang saya lakukan, tambahkan \ndan gunakan sajaencodeURIComponent

Contoh

var emailBody = "1st line.\n 2nd line \n 3rd line";

emailBody = encodeURIComponent(emailBody);

href = "mailto:me@somesite.com?body=" + emailBody;

Periksa dokumen encodeURIComponent


Apa includeyang Anda gunakan encodeURIComponent?
frakman1

1
@ frakman1 encodeURIComponent adalah fungsi JavaScript. Anda dapat menggunakannya tanpa menyertakan apa pun.
kiranvj
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.