avoir du mal à faire fonctionner plusieurs lignes correctement dans un lien mailto
Dans mon cas, je le teste avec un lecteur de courrier Outlook par défaut.
Ce qui suit est placé dans une ancre href:
mailto:email@address.com?&subject=test&body=type%20your&body=message%20here
seul “message ici” apparaît dans le corps du courrier électronique. (que j’utilise chrome ou IE)
pensées?
Vous pouvez utiliser le codage d’URL pour coder la nouvelle ligne en tant que %0A
.
mailto:email@address.com?subject=test&body=type%20your%0Amessage%20here
Bien que ce qui précède semble fonctionner dans de nombreux cas, l’utilisateur olibre indique que le RFC régissant le schéma d’URI mailto spécifie que %0D%0A
(retour chariot + saut de ligne) doit être utilisé au lieu de %0A
( %0A
ligne). Voir aussi: Représentations Newline .
body
dans la chaîne mailto
%0D%0A
comme nouvelle ligne Le schéma d’URI mailto
est spécifié par RFC2368 (juillet 1998) et RFC6068 (octobre 2010).
Voici un extrait de la 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 append un dernier saut de ligne au corps d’un message même s’il n’y a pas de"%0D%0A"
à la fin dans le corps […]
Voir aussi dans la section 6 l’exemple de la même RFC:
Le corps mailto
ci-dessus correspond à:
send current-issue send index
Pour obtenir des lignes du corps, utilisez escape ()
body_line = escape("\n");
alors
href = "mailto:me@my.com?body=hello,"+body_line+"I like this.";
C’est ce que je fais, il suffit d’append \n
et d’utiliser encodeURIComponent
Exemple
var emailBody = "1st line.\n 2nd line \n 3rd line"; emailBody = encodeURIComponent(emailBody); href = "mailto:me@somesite.com?body=" + emailBody;