Masukkan jeda baris di badan mailto

166

Saya ingin memasukkan line break ke tubuh mailto saya. Saya mencoba% 0A,% 0D dan% 0D% 0A. Tidak ada yang berhasil untuk saya. Saya menguji di Gmail, Yahoo, Apple Mail, Outlook 2010, Outlook.com dan Thunderbird dengan Google Chrome di Mac OSX.

Tolong ada bantuan?

Ini kode saya:

<a href="mailto:[email protected]?subject=Subscribe&body=Lastame%20%3A%0D%0A%20Firstname%20%3A"><img alt="Subscribe" class="center" height="50" src="subscribe.png" style="width: 137px; height: 50px; color: #4da6f7; font-size: 20px; display: block;" width="137"></a>
Marion
sumber
4
kemungkinan rangkap: stackoverflow.com/questions/15019689/…
John
@ John Bagaimana itu duplikat? Itu adalah pertanyaan yang sangat spesifik tentang %20digunakan untuk memasukkan baris baru, bukan bagaimana membuat garis baru seperti pertanyaan ini.
jdmdevdotnet
1
Sepertinya saya seorang penipu. Pertanyaan itu menanyakan "bagaimana cara saya menyisipkan jeda baris seperti saya melakukan spasi". Itu tidak menanyakan bagaimana menggunakannya %20 sebagai baris baru. Satu-satunya perbedaan substansial yang saya lihat adalah ini bertanya tentang tubuh, sedangkan pertanyaan itu bertanya tentang subjek. Namun jawaban yang sama dalam kedua kasus itu.
Amy

Jawaban:

242

Saya sarankan Anda mencoba tag html <br> , jika aplikasi pemasaran Anda akan mengenalinya.

Saya menggunakan %0D%0A. Ini akan berfungsi selama email diformat dengan HTML.

<a href="mailto:[email protected]?subject=Subscribe&body=Lastame%20%3A%0D%0AFirstname%20%3A"><img alt="Subscribe" class="center" height="50" src="subscribe.png" style="width: 137px; height: 50px; color: #4da6f7; font-size: 20px; display: block;" width="137"></a>

Anda mungkin ingin menghapus% 20 sebelum Firstname, jika tidak, Anda akan memiliki spasi sebagai karakter pertama pada baris berikutnya.

Sebuah catatan, ketika saya menguji ini dengan kode Anda, itu berhasil (bersama dengan beberapa spasi tambahan). Apakah Anda menggunakan klien email yang tidak mengizinkan pemformatan HTML?

Jem
sumber
1
Saya sudah mencoba %0D%0A, dan itu tidak berhasil untuk saya. Saya menggunakan solusi pemasaran email untuk mengirim buletin saya. Saya kira itu menulis ulang kode saya
Marion
1
Oh, jika Anda menggunakan solusi terpisah, sudahkah Anda mencoba tag HTML "<br>"? Itu kadang-kadang berfungsi ketika saya menggunakan aplikasi pihak ke-3.
Jem
2
Saya melakukan beberapa pengujian dengan platform lain, kode saya bekerja dengan sempurna! itu pasti berasal dari solusi yang saya gunakan. Semua waktu itu hilang sia-sia ... maaf kawan, dan sekali lagi terima kasih atas bantuan Anda
Marion
4
jika Anda ingin mengonversi setiap <br>, <br/>atau yang <br />dapat %0D%0AAnda lakukanvar emailBody = htmlBody.replace(/<br\s*\/?>/mg,"%0D%0A");
João Pimentel Ferreira
117

Sesuai RFC2368 yang mendefinisikan mailto:, lebih jauh diperkuat oleh contoh dalam RFC1738 , secara eksplisit dinyatakan bahwa satu-satunya cara yang valid untuk menghasilkan pemutusan garis adalah dengan %0D%0A.

Ini juga berlaku untuk semua skema url seperti gopher, smtp, sdp, imap, ldap, dll.

davidcondrey
sumber
7
Perhatikan bahwa jika Anda membuat tautan mailto menggunakan JavaScript, maka Anda dapat menggunakannya escape('\r\n')untuk mendapatkannya %0D%0A.
Mark Rhodes
6
Catatan tambahan: Jika Anda membuat tautan dengan templat string ES6 / ES2015, kode mentah ( %0D%0A) berfungsi dengan baik.
Adam Simpson
@MarkRhodes: Karena mailto adalah URI, Anda juga dapat menggunakan encodeURI (myMailToURIString), yang kemudian akan melarikan diri semua karakter yang diperlukan di badan surat Anda :-)
Lars Juel Jensen
4

Anehnya di gmail untuk android %0D%0Atidak bekerja dan <br>berfungsi:

<a href="mailto:[email protected]?subject=This%20is%20Subject&body=First line<br>Second line">
   click here to mail me
</a>
peprumo
sumber
-1

Untuk email plaintext menggunakan JavaScript, Anda juga dapat menggunakan \rdengan encodeURIComponent().

Misalnya, pesan ini:

hello\rthis answer is now well formated\rand it contains good knowleadge\rthat is why I am up voting

URI Disandi, menghasilkan:

hello%0Dthis%20answer%20is%20now%20well%20formated%0Dand%20it%20contains%20good%20knowleadge%0Dthat%20is%20why%20I%20am%20up%20voting

Dan, menggunakan href:

mailto:[email protected]?body=hello%0Dthis%20answer%20is%20now%20well%20formated%0Dand%20it%20contains%20good%20knowleadge%0Dthat%20is%20why%20I%20am%20up%20voting

Akan menghasilkan teks isi email berikut:

hello
this answer is now well formated
and it contains good knowleadge
that is why I am up voting
debanga durlov saikia
sumber
1
@littlecoder Karena itu adalah jawaban yang buruk: diformat dengan buruk, kata-kata buruk dan menghilangkan konteks penting. Kemungkinan besar akan membingungkan orang-orang yang mendarat di halaman ini dan juga membantu mereka. Ini tidak berguna menurut standar situs ini, dan karena itu telah dipilih sesuai
UnrealEagle