MailTo avec le corps HTML

Mon problème va quelque chose comme ceci:

Un client reçoit un courrier électronique envoyé par Exchange Server. Dans le courrier, il a un corps formaté avec HTML avec quelques liens qui ont

href='mailto:etc...' 

Ma question est la suivante: puis-je insérer un corps au format HTML dans le mailto: une partie du href?

quelque chose comme

<a href='mailto:me@me.com?subject=Me&body=ME'>Mail me


Notez que (2016) dans iOS, il est parfait d’append des balises et pour un formatage simple en italique et en gras.

Comme vous pouvez le voir dans la RFC 6068 , ce n’est pas du tout possible:

Le “body” spécial indique que la est le corps du message. La valeur du champ “body” est destinée à contenir le contenu de la première partie text / body du message. Le champ de pseudo-en-tête “body” est principalement destiné à la génération de messages texte courts pour le traitement automatique (tels que les messages “subscribe” pour les listes de diffusion), et non pour les corps MIME généraux.

Non, ce n’est pas possible du tout.

Bien qu’il ne soit PAS possible d’utiliser le format HTML pour formater votre corps de courrier électronique, vous pouvez append des sauts de ligne, comme cela a été suggéré précédemment.

Si vous pouvez utiliser javascript, alors “encodeURIComponent ()” pourrait être utile comme ci-dessous …

 var formattedBody = "FirstLine \n Second Line \n Third Line"; var mailToLink = "mailto:x@y.com?body=" + encodeURIComponent(formattedBody); window.location.href = mailToLink; 

Je l’ai utilisé et il semble fonctionner avec Outlook, sans utiliser le HTML, mais vous pouvez formater le texte avec des sauts de ligne au moins lorsque le corps est ajouté en sortie.

 Email me 

Certaines choses sont possibles, mais pas toutes, par exemple si vous voulez des sauts de ligne, au lieu d’utiliser
utiliser %0D%0A

Exemple:

 EMail PDF Brochure 

Il est intéressant de souligner que sur Safari sur l’iPhone, au moins, l’insertion de balises HTML de base telles que , et (que vous ne devriez plus utiliser dans d’autres circonstances, préférant CSS) dans le paramètre body du mailto: semble fonctionner – ils sont respectés dans le client de messagerie. Je n’ai pas effectué de test exhaustif pour voir si cela est pris en charge par d’autres combinaisons de navigateur mobile ou de bureau / client de messagerie. Il est également douteux que ce soit vraiment conforme aux normes. Peut-être utile si vous construisez pour cette plate-forme, cependant.

Comme d’autres réponses l’ont noté, vous devez également utiliser encodeURIComponent sur tout le corps avant de l’intégrer dans le mailto: link.

Ce n’est pas tout à fait ce que vous voulez, mais il est possible d’utiliser le javascript moderne pour créer un fichier EML sur le client et le diffuser sur le système de fichiers de l’utilisateur.

https://stackoverflow.com/a/27971771/8595398

Voici un jsfiddle d’un email contenant des images et des tableaux: https://jsfiddle.net/seanodotcom/yd1n8Lfh/

HTML

   


Javascript

 (function () { var textFile = null, makeTextFile = function (text) { var data = new Blob([text], {type: 'text/plain'}); if (textFile !== null) { window.URL.revokeObjectURL(textFile); } textFile = window.URL.createObjectURL(data); return textFile; }; var create = document.getElementById('create'), textbox = document.getElementById('textbox'); create.addEventListener('click', function () { var link = document.getElementById('downloadlink'); link.href = makeTextFile(textbox.value); link.style.display = 'block'; }, false); })(); 

Il est possible de saisir des valeurs Unicode pour insérer des nouvelles lignes (par exemple: ‘\ u0009’), mais les balises HTML ont différents degrés de support et doivent être évitées.

J’ai travaillé de cette façon:

 var newLine = escape("\n"); var body = "Hello" + newLine +"World"; 

La sortie serait:

 Hello World 

Voici comment vous ajoutez tout à un lien MAILTO:

 Shipping Request 

Chaque composant est séparé par le signe esperluette (&). Seul le premier composant après l’adresse e-mail initiale a un point d’interrogation (?) Précédant l’esperluette.

URL-encoder est la clé! Donc, pour votre exemple de corps, au lieu de votre

 href='mailto:me@me.com?subject=Me&body=ME' 

… vous pourriez essayer:

 href='mailto:me@me.com?subject=Me&body=%3cb%3eME%3c%2fb%3e' 

Voici un autre itinéraire que vous pourriez essayer. Créez une fonction JavaScript pour ouvrir un object ActiveX. Cela a malheureusement pour limite de ne fonctionner que dans IE et Outlook, et peut entraîner l’affichage des avertissements ActiveX sur votre page. Mais si vous pouvez vivre avec ces mises en garde, il fait le travail. Voici un exemple de travail que vous pouvez tirer de:

      email