Inserir uma quebra de linha no corpo mailto

166

Gostaria de inserir uma quebra de linha no meu corpo mailto. Tentei% 0A,% 0D e% 0D% 0A. Nada funcionou para mim. Testei no Gmail, Yahoo, Apple Mail, Outlook 2010, Outlook.com e Thunderbird com o Google Chrome no Mac OSX.

Alguma ajuda por favor?

Aqui está o meu código:

<a href="mailto:[email protected]?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>
Marion
fonte
4
possível duplicado: stackoverflow.com/questions/15019689/...
John
@ John Como isso é uma duplicata? Essa é uma pergunta muito específica sobre como %20ser usada para inserir uma nova linha, não como criar uma nova linha como essa pergunta.
Jdmdevdotnet
1
Parece um idiota para mim. Essa pergunta é feita "como insiro uma quebra de linha como faço com um espaço". Não está perguntando como usar %20 como uma nova linha. A única diferença substancial que vejo é que isso é perguntar sobre o corpo, enquanto essa pergunta é sobre o assunto. É a mesma resposta em ambos os casos, no entanto.
Amy

Respostas:

242

Eu sugiro que você tente a tag html <br>, caso seu aplicativo de marketing a reconheça.

Eu uso %0D%0A. Isso deve funcionar desde que o email seja formatado em HTML.

<a href="mailto:[email protected]?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>

Você provavelmente desejará remover o% 20 antes do Nome, caso contrário, você terá um espaço como o primeiro caractere na próxima linha.

Uma observação: quando eu testei isso com seu código, ele funcionou (junto com algum espaçamento extra). Você está usando um cliente de email que não permite a formatação HTML?

Jem
fonte
1
Eu já tentei %0D%0Ae não está funcionando para mim. Eu uso uma solução de email marketing para enviar minha newsletter. Suponho que de-escrevendo re meu código
Marion
1
Ah, se você estiver usando uma solução separada, já tentou a tag HTML "<br>"? Às vezes, isso funciona quando estou usando aplicativos de terceiros.
Jem
2
Fiz alguns testes com outra plataforma, meu código está funcionando perfeitamente! definitivamente está vindo da solução que eu uso. Todas essas horas perdidas por nada ... desculpem-me, e mais uma vez obrigado por sua ajuda
Marion
4
se você gostaria de converter todos <br>, <br/>ou <br />para %0D%0Aque você pode fazervar emailBody = htmlBody.replace(/<br\s*\/?>/mg,"%0D%0A");
João Pimentel Ferreira
117

Conforme RFC2368 que define mailto:, reforçado ainda mais por um exemplo no RFC1738 , é explicitamente declarado que a única maneira válida de gerar uma quebra de linha é com %0D%0A.

Isso também se aplica a todos os esquemas de URL, como gopher, smtp, sdp, imap, ldap, etc.

davidcondrey
fonte
7
Observe que, se você estiver construindo um link mailto usando JavaScript, poderá usar o escape('\r\n')get %0D%0A.
Mark Rhodes
6
Nota adicional: se você estiver construindo o link com os modelos de string ES6 / ES2015, o código bruto ( %0D%0A) funcionará perfeitamente.
Adam Simpson
@MarkRhodes: Desde mailto é um URI você também pode usar encodeURI (myMailToURIString), que irá escapar de todos os caracteres necessários em seu corpo correio :-)
Lars Juel Jensen
4

Curiosamente no gmail para android %0D%0Anão funciona e <br>funciona:

<a href="mailto:[email protected]?subject=This%20is%20Subject&body=First line<br>Second line">
   click here to mail me
</a>
peprumo
fonte
-1

Por e-mail de texto simples usando JavaScript, você também pode usar \rcom encodeURIComponent().

Por exemplo, esta mensagem:

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

Codificado em URI, resulta em:

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

E, usando o href:

mailto:[email protected]?body=hello%0Dthis%20answer%20is%20now%20well%20formated%0Dand%20it%20contains%20good%20knowleadge%0Dthat%20is%20why%20I%20am%20up%20voting

Resultará no seguinte texto do corpo do email:

hello
this answer is now well formated
and it contains good knowleadge
that is why I am up voting
debanga durlov saikia
fonte
1
@littlecoder Por ser uma resposta ruim: mal formatado, com poucas palavras e omite o contexto essencial. É tão provável que confunda as pessoas que chegam nesta página quanto é para ajudá-las. Não é útil para os padrões deste site, e por isso tem sido votado nesse sentido
UnrealEagle