Pregunta

    

Esta pregunta ya tiene una respuesta aquí:

         

No he tenido que meterme mucho con los enlaces mailto. Sin embargo, ahora necesito agregar un enlace en el cuerpo de un mailto si es posible.

¿Hay alguna forma de agregar un enlace o cambiar el correo electrónico abierto a un correo electrónico html frente a un correo electrónico 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>
¿Fue útil?

Solución

La Sección 2 de RFC 2368 dice que el cuerpo Se supone que el campo está en formato text / plain , por lo que no puede hacer HTML.

Sin embargo, incluso si usa texto sin formato, es posible que algunos clientes de correo modernos puedan representar una URL como un enlace en el que se puede hacer clic, de todos modos.

Otros consejos

Agregue el enlace completo, con:

 "http://"

al principio de una línea, y la mayoría de los clientes de correo electrónico decentes lo vincularán automáticamente antes de enviar, o en el otro extremo al recibir.

Para urls realmente largos que probablemente se envuelvan debido a todos los parámetros, envuelva el enlace en un símbolo menor que / mayor que Esto le dice al cliente de correo electrónico no que envuelva la url.

por ejemplo

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

Por lo que sé, no es posible, ya que un enlace necesita HTML, y los enlaces de correo electrónico no crean un correo electrónico HTML.

Esto es probablemente por seguridad, ya que podría agregar javascript o iframes a este enlace y el cliente de correo electrónico podría abrir al usuario final en busca de vulnerabilidades.

Por favor, marque debajo de javascript en IE. No sé si otro navegador moderno funcionará o no.

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

Esto es lo que puse juntos. Funciona en el dispositivo móvil seleccionado para el que lo necesitaba, pero no estoy seguro de qué tan universal es la solución

<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 especificación para el cuerpo 'mailto' dice:

  

El cuerpo de un mensaje es simplemente líneas de caracteres US-ASCII. los      Solo dos limitaciones en el cuerpo son las siguientes:

     
      
  • CR y LF DEBEN aparecer juntos como CRLF; NO DEBEN aparecer independientemente en el cuerpo.
  •   
  • Las líneas de caracteres en el cuerpo DEBEN estar limitadas a 998 caracteres, y DEBERÍAN estar limitadas a 78 caracteres, excluyendo el CRLF.
  •   

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

Generalmente, en la actualidad, la mayoría de los clientes de correo electrónico son buenos para el enlace automático, pero no todos lo hacen debido a problemas de seguridad. Es probable que puedas encontrar algunas soluciones, pero no necesariamente funcionará universalmente.

He implementado el programa que lo sigue funcionando para dispositivos iOS, pero he fallado en 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 bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top