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 protected]?&subject=test&body=type%20your&body=message%20here

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

pikiran?

KevinDeus
sumber

Jawaban:

208

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

mailto:[email protected]?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 .

cyang
sumber
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
olibre.dll
sumber
18

Untuk mendapatkan garis tubuh gunakan escape ()

body_line =  escape("\n");

begitu

href = "mailto:[email protected]?body=hello,"+body_line+"I like this.";
lokeshjain2008
sumber
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:[email protected]?body=" + emailBody;

Periksa dokumen encodeURIComponent

kiranvj
sumber
Apa includeyang Anda gunakan encodeURIComponent?
frakman1
1
@ frakman1 encodeURIComponent adalah fungsi JavaScript. Anda dapat menggunakannya tanpa menyertakan apa pun.
kiranvj