Question

    

Cette question a déjà une réponse ici:

    
            
  •              lien mailto avec le corps HTML                                      11 réponses                          
  •     
    

Je n'ai pas eu beaucoup de problèmes avec les liens mailto. Cependant, je dois maintenant ajouter un lien dans le corps d'un mailto si cela est possible.

Existe-t-il un moyen d’ajouter un lien ou de modifier l’e-mail ouvert en un e-mail html ou en e-mail avec du texte?

Quelque chose comme:

<a href="mailto:test@test.test?body=The message's first paragraph.%0A%0aSecond paragraph.%0A%0AThird Paragraph.%0A%0ALink goes here">Link text goes here</a>
Était-ce utile?

La solution

La section 2 de la RFC 2368 indique que le corps Le champ est supposé être au format text / plain , vous ne pouvez donc pas utiliser du HTML.

Cependant, même si vous utilisez du texte brut, il est toutefois possible que certains clients de messagerie modernes affichent néanmoins une URL sous forme de lien cliquable.

Autres conseils

Ajoutez le lien complet, avec:

 "http://"

au début d'une ligne, et la plupart des clients de messagerie décents la lieront automatiquement avant l'envoi, ou à l'autre extrémité lors de la réception.

Pour les URL très longues qui s’emballeront probablement à cause de tous les paramètres, encapsulez le lien dans un symbole inférieur à / supérieur à. Ceci dit au pas le client de messagerie d’envelopper l’URL.

par exemple

  <http://www.example.com/foo.php?this=a&really=long&url=with&lots=and&lots=and&lots=of&prameters=on_it>

Pour autant que je sache, un lien nécessite du HTML et les liens mailto ne créent pas de courrier électronique HTML.

Ceci est probablement pour la sécurité car vous pourriez ajouter du javascript ou des iframes à ce lien et le client de messagerie pourrait ouvrir l'utilisateur final à des vulnérabilités.

Veuillez vérifier le javascript ci-dessous dans IE. Je ne sais pas si un autre navigateur moderne fonctionnera ou non.

<html>
    <head>
        <script type="text/javascript">
            function OpenOutlookDoc(){
                try {

                    var outlookApp = new ActiveXObject("Outlook.Application");
                    var nameSpace = outlookApp.getNameSpace("MAPI");
                    mailFolder = nameSpace.getDefaultFolder(6);
                    mailItem = mailFolder.Items.add('IPM.Note.FormA');
                    mailItem.Subject="a subject test";
                    mailItem.To = "an@email.here";
                    mailItem.HTMLBody = "<b>bold</b>";
                    mailItem.display (0); 
                }
                catch(e){
                    alert(e);
                    // act on any error that you get
                }
            }
        </script>
    </head>
    <body>
        <a href="javascript:OpenOutlookDoc()">Click</a>
    </body>
</html>

Voici ce que je mets ensemble. Cela fonctionne sur le périphérique mobile de sélection pour lequel je l'avais besoin, mais je ne suis pas sûr de savoir à quel point la solution est universelle

<a href="mailto:me@me.com?subject=Me&body=%3Chtml%20xmlns%3D%22http:%2F%2Fwww.w3.org%2F1999%2Fxhtml%22%3E%3C%2Fhead%3E%3Cbody%3EPlease%20%3Ca%20href%3D%22http:%2F%2Fwww.w3.org%22%3Eclick%3C%2Fa%3E%20me%3C%2Fbody%3E%3C%2Fhtml%3E">

La spécification du corps 'mailto' indique:

  

Le corps d'un message est constitué simplement de lignes de caractères US-ASCII. le      Les deux seules limites du corps sont les suivantes:

     
      
  • CR et LF NE DOIVENT apparaître que comme CRLF; ils NE DOIVENT PAS apparaître indépendamment dans le corps.
  •   
  • Les lignes de caractères dans le corps DOIVENT être limitées à 998 caractères, et DEVRAIENT être limitées à 78 caractères, à l'exclusion du CRLF.
  •   

https://tools.ietf.org/html/rfc5322#section-2.3

De manière générale, la plupart des clients de messagerie ont une bonne capacité à établir automatiquement des liens, mais pas tous, en raison de problèmes de sécurité. Vous pouvez probablement trouver des solutions de rechange, mais cela ne fonctionnera pas nécessairement de manière universelle.

J'ai implémenté la suite, il fonctionne pour les appareils iOS mais a échoué sur les appareils Android

<a  href="mailto:?subject=Your mate might be interested...&body=<div style='padding: 0;'><div style='padding: 0;'><p>I found this on the site I think you might find it interesting.  <a href='@(Request.Url.ToString())' >Click here </a></p></div></div>">Share This</a>
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top