Pergunta

Esta questão já tem uma resposta aqui:

Eu não tive que mexer com links mailto muito. No entanto agora eu preciso adicionar um link no corpo de um mailto se é possível.

Existe uma maneira de adicionar um link ou para alterar o e-mail aberto para um e-mail html vs um e-mail de texto?

Algo como:

<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>
Foi útil?

Solução

Seção 2 do RFC 2368 diz que o campo body é suposto estar no formato text/plain, então você não pode fazer HTML.

No entanto, mesmo se você usar texto sem formatação é possível que alguns clientes de correio modernas tornaria uma URL como um link clicável de qualquer maneira, apesar de tudo.

Outras dicas

Adicione o link completo, com:

 "http://"

para o início de uma linha, ea maioria dos clientes de email decente vai auto link-lo antes de enviar, ou na outra extremidade ao receber.

Para realmente longos urls que provavelmente irá envolver devido a todos os parâmetros, enrole o link em uma maior inferior a / de símbolo. Este informa o cliente de e-mail não para embrulhar o url.

por exemplo.

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

Não é possível, tanto quanto eu posso dizer, desde uma ligação precisa de HTML e links mailto não criar um e-mail HTML.

Esta é, provavelmente, para a segurança como você poderia acrescentar JavaScript ou iframe para este link e o cliente de email pode abrir o usuário final de vulnerabilidades.

Por favor confira abaixo o JavaScript no IE. Não sei se outro navegador moderno vai funcionar ou não.

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

Aqui está o que eu coloquei. Ele funciona no dispositivo móvel select que eu precisava para ele, mas não tenho certeza de como universal a solução é

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

A especificação para o corpo 'mailto' diz:

O corpo de uma mensagem é simplesmente linhas de caracteres US-ASCII. o apenas duas limitações sobre o corpo são os seguintes:

  • CR e LF só deve ocorrer em conjunto, como CRLF; Eles não devem aparecer de forma independente no corpo.
  • Linhas de caracteres no corpo deve ser limitada a 998 caracteres e deve ser limitada a 78 caracteres, excluindo o CRLF.

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

Geralmente hoje em dia a maioria dos clientes de e-mail são bons em autolinking, mas nem todos fazem, devido a preocupações de segurança. Você pode provavelmente encontrar algumas soluções alternativas, mas não vai necessariamente funcionar universalmente.

Eu implemento que se lhe segue trabalhando para dispositivos iOS, mas falhou em dispositivos 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>
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top