Вопрос по html – mailto ссылка на несколько строк тела

108

возникли проблемы с корректной работой нескольких строк в ссылке mailto

В моем случае я тестирую его с помощью программы чтения почты Outlook по умолчанию.

Ниже приводится ссылка на ссылку:

mailto:[email protected]?&subject=test&body=type%20your&body=message%20here

только "сообщение здесь" появляется в теле письма. (использую ли я Chrome или IE)

thoughts?

Ваш Ответ

4   ответа
16

используйте escape ()

body_line =  escape("\n");

та

href = "mailto:[email protected]?body=hello,"+body_line+"I like this.";
Я предпочитаю это лично. Главным образом потому, что это также работает, когда вы пытаетесь добавить% Dan James Palmer
encodeURIComponent, скорее.Глянь сюда Cees Timmerman
190

URL кодировка для кодирования новой строки как%0A.

mailto:[email protected]?subject=test&body=type%20your%0Amessage%20here

Хотя вышеперечисленное работает во многих случаях, пользователь olibreуказывает на т что в RFC, регулирующем схему mailto URI, указано, что%0D%0A (возврат каретки + перевод строки) следует использовать вместо%0A (перевод строки). Смотрите также: Новостные представительства.

Спасибо, это хорошо сработало для меня и кажется намного проще, чем другие решения, распространяющиеся в интернете. bryn
Это должно работать для всех специальных символов, верно? & =% 26,% =% 25, есть ли символы, которые не содержат этот шаблон? blast_hardcheese
для информации,$0A это простоescape( "\n" ) divillysausages
% 0D% 0A работал для меня по электронной почте и поделиться в WhatsApp сообщение BenB
Тот кодер использует стандартencodeURIComponent для кодирования компонентов URI. Cees Timmerman
33
Используйте одинbody параметр в пределахmailto строка Используйте%0D%0A как новая строка

mailto Схема URI определяется как RFC2368 (Июль 1998 г.) и RFC6068 (Октябрь 2010).
Ниже приводится выдержка из раздел 5 этого последнего RFC:

[...] разрывы строк в теле сообщения ДОЛЖНЫ быть закодированы как"%0D%0A".
Implementations МОЖЕТ добавить окончательный разрыв строки в тело сообщения, даже если нет завершающего"%0D%0A" в организме [...

Смотрите также в раздел 6 пример из того же RFC:

<mailto:[email protected]?body=send%20current-issue%0D%0Asend%20index>

Надmailto body соответствует:

send current-issue
send index
10

\n и используйencodeURIComponent

Приме

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

emailBody = encodeURIComponent(emailBody);

href = "mailto:[email protected]?body=" + emailBody;

Проверьте EncodeURIComponent документы

Какаяinclude ты используешь дляencodeURIComponent ? frakman1
@ frakman1 encodeURIComponent - это функция JavaScript. Вы можете использовать его без каких-либо включений. kiranvj

Похожие вопросы