поштове з'єднання декількох ліній тіла


120

не вдається отримати кілька ліній для правильної роботи в поштовому посиланні

У моєму випадку я тестую його за допомогою програми зчитування пошти Outlook за замовчуванням.

У хорер з якоря покладено наступне:

mailto:email@address.com?&subject=test&body=type%20your&body=message%20here

в тілі електронної пошти відображається лише "повідомлення тут". (я використовую хром чи IE)

думки?

Відповіді:


208

Ви можете використовувати кодування URL для кодування нового рядка як %0A.

mailto:email@address.com?subject=test&body=type%20your%0Amessage%20here

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


4
Дякую, це спрацювало добре для мене і здається набагато простішим, ніж інші рішення, що плавають по Інтернету.
bryn

Це повинно працювати для всіх спеціальних персонажів, правда? & =% 26,% =% 25, ​​чи є символи, у яких цей шаблон не міститься?
blast_hardcheese

2
для інформації, $0Aпростоescape( "\n" )
divillysausages

2
Цей кодер використовує стандарт encodeURIComponentдля кодування компонентів URI.
Cees Timmerman

1
% 0D% 0A Працював для мене над електронною поштою та надсилався у повідомленні WhatsApp
BenB

40
  1. Використовуйте один bodyпараметр всередині mailtoрядка
  2. Використовувати %0D%0Aяк новий рядок

mailtoСхема URI визначається по RFC2368 (липень 1998) і RFC6068 (жовтень 2010).
Нижче наводиться витяг розділу 5 цього останнього RFC:

[...] перерви рядка в тілі повідомлення ОБОВ'ЯЗКОВО кодуються "%0D%0A".
Впровадження МОЖЕ додати остаточний розрив рядка до тіла повідомлення, навіть якщо "%0D%0A"в тілі немає сліду [...]

Дивіться також у розділі 6 приклад із тієї ж RFC:

<mailto:infobot@example.com?body=send%20current-issue%0D%0Asend%20index>

Вищевказаний mailtoорган відповідає:

send current-issue
send index

18

Щоб отримати лінії тіла, використовуйте escape ()

body_line =  escape("\n");

так

href = "mailto:me@my.com?body=hello,"+body_line+"I like this.";

1
Я віддаю перевагу цьому особисто. Головним чином, це також спрацьовує, коли ви намагаєтеся додати%
Dan James Palmer

5
encodeURIComponent, скоріше. Дивіться тут.
Cees Timmerman

15

Це те, що я роблю, просто додаю \nі використовуюencodeURIComponent

Приклад

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

emailBody = encodeURIComponent(emailBody);

href = "mailto:me@somesite.com?body=" + emailBody;

Перевірте документи encodeURIComponent


Для чого includeви використовуєте encodeURIComponent?
frakman1

1
@ frakman1 encodeURIComponent - це функція JavaScript. Ви можете використовувати його без будь-яких включень.
kiranvj
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.