Вставте розрив рядка в корпус поштового зв’язку


166

Я хотів би вставити розрив рядка в своє тіло mailto. Я спробував% 0A,% 0D та% 0D% 0A. Ніщо не працювало для мене. Я тестував у Gmail, Yahoo, Apple Mail, Outlook 2010, Outlook.com та Thunderbird з Google Chrome на Mac OSX.

Будь-яка допомога, будь ласка?

Ось мій код:

<a href="mailto:email@mycompany.com?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>

4
можливий дублікат: stackoverflow.com/questions/15019689/…
Іван,

@John Як це дублікат? Це дуже специфічне запитання про %20те, як використовуватись для введення нового рядка, а не як зробити новий рядок, як це запитання.
jdmdevdotnet

1
Мені схоже на дупу. Це питання задає "як я можу вставити розрив рядка, як я роблю пробіл". Не задається питанням як використовувати %20 як новий рядок. Єдина істотна різниця, яку я бачу, - це запитання про тіло, тоді як це питання задається питанням. Це однакова відповідь у будь-якому випадку.
Емі

Відповіді:


242

Я б запропонував спробувати тег html <br>, на випадок, якщо ваша маркетингова програма розпізнає його.

Я використовую %0D%0A. Це має працювати до тих пір, поки електронний лист не буде відформатований у HTML.

<a href="mailto:email@mycompany.com?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>

Ви, ймовірно, захочете вийняти% 20 перед ім'ям Ім'я, інакше у наступному рядку у вас буде пробіл як перший символ.

Примітка. Коли я тестував це з вашим кодом, він працював (разом із додатковим інтервалом). Використовуєте поштовий клієнт, який не дозволяє форматувати HTML?


1
Я вже пробував %0D%0A, і це не працює для мене. Я використовую рішення для маркетингу електронною поштою, щоб надсилати свою розсилку. Я припускаю, що він переписує мій код
Маріон,

1
О, якщо ви використовуєте окреме рішення, ви спробували тег HTML "<br>"? Це іноді працює, коли я використовую сторонні додатки.
Джем

2
Я зробив тест на іншій платформі, мій код працює чудово! це однозначно виходить з рішення, яке я використовую. Усі ці години втрачені ні за що ... вибачте, хлопці, і знову дякую вам за допомогу
Маріон

4
якщо ви хочете , щоб перетворити кожен <br>, <br/>або <br />на що %0D%0Aви можете зробитиvar emailBody = htmlBody.replace(/<br\s*\/?>/mg,"%0D%0A");
Жоау Піментел Ferreira

117

Відповідно до RFC2368, який визначає mailto:, додатково підкріплений прикладом в RFC1738 , прямо вказано, що єдиним допустимим способом генерування розриву лінії є %0D%0A.

Це стосується також усіх URL-схем, таких як gopher, smtp, sdp, imap, ldap тощо.


7
Зауважте, що якщо ви створюєте поштове посилання за допомогою JavaScript, ви можете використовувати escape('\r\n')для отримання %0D%0A.
Марк Родос

6
Додаткова примітка: Якщо ви створюєте посилання з шаблонами рядків ES6 / ES2015, неочищений код ( %0D%0A) працює чудово.
Адам Сімпсон

@MarkRhodes: Оскільки mailto є URI, ви також можете використовувати encodeURI (myMailToURIString), який потім уникне всіх символів, необхідних у вашому тілі пошти :-)
Lars Juel Jensen

4

Цікаво, що в gmail для android %0D%0Aне працює і <br>працює:

<a href="mailto:anything@any.com?subject=This%20is%20Subject&body=First line<br>Second line">
   click here to mail me
</a>

-1

Для відкритого тексту по електронній пошті з допомогою JavaScript, ви можете також використовувати \rз encodeURIComponent().

Наприклад, це повідомлення:

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

URI, закодований, призводить до:

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

І, використовуючи href:

mailto:me@house.country?body=hello%0Dthis%20answer%20is%20now%20well%20formated%0Dand%20it%20contains%20good%20knowleadge%0Dthat%20is%20why%20I%20am%20up%20voting

У результаті з’явиться такий текст тексту електронної пошти:

hello
this answer is now well formated
and it contains good knowleadge
that is why I am up voting

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