Insérer un saut de ligne dans le corps du mail

166

Je voudrais insérer un saut de ligne dans mon corps mailto. J'ai essayé% 0A,% 0D et% 0D% 0A. Rien n'a fonctionné pour moi. J'ai testé sur Gmail, Yahoo, Apple Mail, Outlook 2010, Outlook.com et Thunderbird avec Google Chrome sur Mac OSX.

Une aide s'il vous plaît?

Voici mon code:

<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
la source
4
duplicata possible: stackoverflow.com/questions/15019689/…
John
@John Comment est-ce un doublon? C'est une question très spécifique sur le fait d' %20être utilisé pour entrer une nouvelle ligne, pas comment créer une nouvelle ligne comme cette question.
jdmdevdotnet
1
Cela me semble une dupe. Cette question demande "comment insérer un saut de ligne comme je fais un espace". Il ne demande pas comment utiliser %20 comme nouvelle ligne. La seule différence substantielle que je vois est que cette question porte sur le corps, alors que cette question porte sur le sujet. C'est la même réponse dans les deux cas, cependant.
Amy le

Réponses:

242

Je vous suggère d'essayer la balise html <br>, au cas où votre application marketing la reconnaîtrait.

J'utilise %0D%0A. Cela devrait fonctionner tant que l'e-mail est au format 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>

Vous voudrez probablement retirer le% 20 avant le prénom, sinon vous aurez un espace comme premier caractère sur la ligne suivante.

Une note, lorsque j'ai testé cela avec votre code, cela a fonctionné (avec un espacement supplémentaire). Utilisez-vous un client de messagerie qui n'autorise pas le formatage HTML?

Jem
la source
1
J'ai déjà essayé %0D%0Aet cela ne fonctionne pas pour moi. J'utilise une solution de marketing par e-mail pour envoyer ma newsletter. Je suppose qu'il réécrit mon code
Marion
1
Oh, si vous utilisez une solution distincte, avez-vous essayé la balise HTML "<br>"? Cela fonctionne parfois lorsque j'utilise des applications tierces.
Jem
2
J'ai fait quelques tests avec une autre plateforme, mon code fonctionne parfaitement! cela vient certainement de la solution que j'utilise. Toutes ces heures perdues pour rien ... désolé les gars, et encore merci pour votre aide
Marion
4
si vous souhaitez convertir tous <br>, <br/>ou <br />pour que %0D%0Avous pouvez fairevar emailBody = htmlBody.replace(/<br\s*\/?>/mg,"%0D%0A");
João Ferreira Pimentel
118

Conformément à la RFC2368 qui définit mailto:, encore renforcée par un exemple dans la RFC1738 , il est explicitement indiqué que la seule façon valide de générer un saut de ligne est avec %0D%0A.

Ceci s'applique également à tous les schémas d'URL tels que gopher, smtp, sdp, imap, ldap, etc.

Davidcondrey
la source
7
Notez que si vous créez un lien mailto à l'aide de JavaScript, vous pouvez utiliser escape('\r\n')pour obtenir %0D%0A.
Mark Rhodes
6
Remarque supplémentaire: Si vous construisez le lien avec des modèles de chaînes ES6 / ES2015, le code brut ( %0D%0A) fonctionne très bien.
Adam Simpson
@MarkRhodes: Puisque mailto est un URI, vous pouvez également utiliser encodeURI (myMailToURIString), qui échappera alors à tous les caractères nécessaires dans votre corps de courrier :-)
Lars Juel Jensen
4

Curieusement, dans gmail pour Android %0D%0Ane fonctionne pas et <br>fonctionne:

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

Pour les e-mails en clair utilisant JavaScript, vous pouvez également utiliser \ravec encodeURIComponent().

Par exemple, ce message:

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

URI encodé, donne:

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

Et, en utilisant le href:

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

Cela entraînera le texte du corps de l'e-mail suivant:

hello
this answer is now well formated
and it contains good knowleadge
that is why I am up voting
debanga durlov saikia
la source
1
@littlecoder Parce que c'est une mauvaise réponse: mal formatée, mal formulée et omet le contexte essentiel. Il est tout aussi susceptible de confondre les personnes qui arrivent sur cette page que de les aider. Il n'est pas utile selon les normes de ce site, et il a donc été voté en conséquence
UnrealEagle