mailto связывает несколько линий тела
возникли проблемы с получением нескольких строк для правильной работы в mailto link
в моем случае я тестирую его с помощью программы чтения почты Outlook по умолчанию.
в якорь href ставится следующее:
mailto:[email protected]?&subject=test&body=type%20your&body=message%20here
только "сообщение здесь" отображается в теле электронной почты. (использую ли я chrome или IE)
мысли?
4 ответов:
можно использовать кодировка URL для кодирования новой строки как
%0A.
mailto:[email protected]?subject=test&body=type%20your%0Amessage%20hereв то время как выше, кажется, работает во многих случаях, пользователь olibre указывает что RFC, управляющий схемой URI mailto, указывает, что
%0D%0A(возврат каретки + перевод строки) должны использоваться вместо%0A(линия подачи). Смотрите также:Представления Новой Строки.
- использовать один
bodyпараметр внутриmailtoстрока- использовать
%0D%0Aв строкуThe
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
чтобы получить линии тела используйте escape ()
body_line = escape("\n");так
href = "mailto:[email protected]?body=hello,"+body_line+"I like this.";
Это то, что я делаю, просто добавьте
\nи использоватьencodeURIComponentпример
var emailBody = "1st line.\n 2nd line \n 3rd line"; emailBody = encodeURIComponent(emailBody); href = "mailto:[email protected]?body=" + emailBody;
Comments