web-dev-qa-db-fra.com

mailto lier plusieurs lignes du corps

avoir du mal à faire fonctionner plusieurs lignes correctement dans un lien mailto

Dans mon cas, je le teste avec un lecteur de messagerie Outlook par défaut.

Ce qui suit est mis dans une ancre href:

mailto:[email protected]?&subject=test&body=type%20your&body=message%20here

seul "message ici" apparaît dans le corps de l'e-mail. (que j'utilise chrome ou IE)

pensées?

114
KevinDeus

Vous pouvez utiliser encodage d'URL pour encoder la nouvelle ligne comme %0A.

mailto:[email protected]?subject=test&body=type%20your%0Amessage%20here

Bien que ce qui précède semble fonctionner dans de nombreux cas, l'utilisateur olibre fait remarquer que la RFC régissant le schéma d'URI mailto spécifie que %0D%0A (retour à la ligne + saut de ligne) doit être utilisé à la place de %0A (saut de ligne). Voir aussi: Newline Representations .

196
cyang
  1. Utilisez un seul paramètre body dans la chaîne mailto
  2. Utilisez %0D%0A comme nouvelle ligne

Le mailto URI Scheme est spécifié par RFC2368 (juillet 1998) et RFC6068 (octobre 2010).
Ci-dessous un extrait de section 5 de cette dernière RFC:

[...] les sauts de ligne dans le corps d'un message DOIVENT être codés avec "%0D%0A".
Les mises en œuvre PEUVENT ajouter un saut de ligne final au corps du message même s'il n'y a pas de fin "%0D%0A" dans le corps [...]

Voir aussi dans section 6 l'exemple de la même RFC:

<mailto:[email protected]?body=send%20current-issue%0D%0Asend%20index>

Le corps mailto ci-dessus correspond à:

send current-issue
send index
36
olibre

Pour obtenir les lignes du corps, utilisez escape ()

body_line =  escape("\n");

alors

href = "mailto:[email protected]?body=hello,"+body_line+"I like this.";
17
lokeshjain2008

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:[email protected]?body=" + emailBody;

Vérifier encodeURIComponent docs

11
kiranvj