mailto lier plusieurs lignes de corps

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 .

  1. Utiliser un seul paramètre de body dans la chaîne mailto
  2. Utilisez %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;