Подтвердить что ты не робот

Mailto связывает несколько линий тела

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

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

В якорь href помещается следующее:

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

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

мысли?

4b9b3361

Ответ 1

Вы можете использовать кодировку URL для кодирования новой строки как %0A.

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

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

Ответ 2

  • Используйте один параметр body в строке mailto
  • Используйте %0D%0A как новую строку

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

[...] разрывы строк в теле сообщения ДОЛЖНЫ быть закодированы с помощью "%0D%0A".
Реализации МОГУТ добавить окончательный разрыв строки в тело сообщения даже если в теле нет "%0D%0A" [...]

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

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

Вышеупомянутый тело mailto соответствует:

send current-issue
send index

Ответ 3

Чтобы получить линии тела, используйте escape()

body_line =  escape("\n");

так

href = "mailto:[email protected]?body=hello,"+body_line+"I like this.";

Ответ 4

Это то, что я делаю, просто добавьте \n и используйте encodeURIComponent

Пример

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

emailBody = encodeURIComponent(emailBody);

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