lien mailto plusieurs lignes du corps
ayant de la difficulté à obtenir plusieurs lignes pour fonctionner correctement dans un lien mailto
dans mon cas, je le teste avec un lecteur de courrier par défaut D'Outlook.
ce qui suit est mis dans une ancre href:
mailto:email@address.com?&subject=test&body=type%20your&body=message%20here
seulement "message ici" apparaît dans le corps de l'e-mail. (que j'utilise chrome ou IE)
?
4 réponses
vous pouvez utiliser URL encoding pour encoder la nouvelle ligne comme %0A
.
mailto:email@address.com?subject=test&body=type%20your%0Amessage%20here
alors que ce qui précède semble fonctionner dans de nombreux cas, l'utilisateur olibre souligne que le RFC régissant le schéma D'URI mailto spécifie que %0D%0A
(retour chariot + alimentation en ligne) devrait être utilisé au lieu de %0A
(alimentation en ligne). Voir aussi: Newline Représentations .
- utilisez un seul
body
paramètre dans lamailto
chaîne - Utiliser
%0D%0A
comme newline
le mailto
URI Scheme est spécifié par RFC2368 (juillet 1998) et RFC6068 (octobre 2010).
Ci-dessous un extrait de section 5 de ce dernier RFC:
[...] les sauts de ligne dans le corps d'un message doivent être encodés avec
"%0D%0A"
.
Les implémentations peuvent ajouter un saut de ligne final au corps d'un message même s'il n'y a pas de traînée"%0D%0A"
dans le corps [...]
Voir Aussi dans section 6 l'exemple de la même RFC:
<mailto:infobot@example.com?body=send%20current-issue%0D%0Asend%20index>
Le mailto
ci-dessus correspond à:
send current-issue
send index
pour obtenir les lignes du corps utiliser escape ()
body_line = escape("\n");
donc
href = "mailto:me@my.com?body=hello,"+body_line+"I like this.";
c'est ce que je fais, il suffit d'ajouter \n
et utiliser encodeURIComponent
exemple
var emailBody = "1st line.\n 2nd line \n 3rd line";
emailBody = encodeURIComponent(emailBody);
href = "mailto:me@somesite.com?body=" + emailBody;