Domanda

    

Questa domanda ha già una risposta qui:

    
            
  •              mailto link con il corpo HTML                                      11 risposte                          
  •     
    

Non ho dovuto fare molta confusione con i link mailto. Tuttavia, ora è necessario aggiungere un collegamento nel corpo di un mailto se è possibile.

Esiste un modo per aggiungere un collegamento o modificare l'e-mail aperta in un'e-mail html rispetto a un'e-mail di testo?

Qualcosa del tipo:

<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>
È stato utile?

Soluzione

La sezione 2 di RFC 2368 afferma che il corpo Il campo dovrebbe essere nel formato text / plain , quindi non puoi fare HTML.

Tuttavia, anche se si utilizza il testo normale, è possibile che alcuni moderni client di posta visualizzino comunque un URL come link selezionabile.

Altri suggerimenti

Aggiungi il link completo, con:

 "http://"

all'inizio di una riga e la maggior parte dei client di posta elettronica decenti la collegheranno automaticamente prima dell'invio o all'altra estremità durante la ricezione.

Per URL molto lunghi che probabilmente verranno completati a causa di tutti i parametri, avvolgi il link in un simbolo minore di / maggiore di. Questo dice al client di posta elettronica non di concludere l'URL.

per es.

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

Non è possibile per quanto posso dire, dal momento che un collegamento ha bisogno di HTML e i collegamenti mailto non creano un'e-mail HTML.

Questo è probabilmente per motivi di sicurezza in quanto è possibile aggiungere javascript o iframe a questo collegamento e il client di posta elettronica potrebbe aprire l'utente finale per le vulnerabilità.

Controlla sotto javascript in IE. Non so se altri browser moderni funzioneranno o meno.

<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>

Ecco cosa ho messo insieme. Funziona sul dispositivo mobile selezionato di cui avevo bisogno, ma non sono sicuro di quanto sia universale la soluzione

<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 specifica per il corpo 'mailto' dice:

  

Il corpo di un messaggio è semplicemente una riga di caratteri US-ASCII. Il      solo due limitazioni sul corpo sono le seguenti:

     
      
  • CR e LF DEVONO presentarsi solo insieme come CRLF; NON DEVONO apparire indipendentemente nel corpo.
  •   
  • Le linee di caratteri nel corpo DEVONO essere limitate a 998 caratteri e DOVREBBERO essere limitate a 78 caratteri, escluso il CRLF.
  •   

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

In genere oggigiorno la maggior parte dei client di posta elettronica è brava a utilizzare il collegamento automatico, ma non tutti lo fanno, per motivi di sicurezza. Probabilmente puoi trovare qualche soluzione, ma non funzionerà necessariamente universalmente.

Ho implementato dopo che funziona per dispositivi iOS ma non è riuscito su dispositivi 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>
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top