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)

?

102
demandé sur KevinDeus 2012-04-27 22:56:48

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 .

179
répondu cyang 2017-05-23 12:02:58
  1. utilisez un seul body paramètre dans la mailto chaîne
  2. 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
30
répondu olibre 2014-12-12 16:06:17

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.";
16
répondu lokeshjain2008 2013-10-04 11:41:54

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;
9
répondu kiranvj 2014-10-03 16:59:56