¿Puedo configurar el asunto / contenido del correo electrónico usando mailto :?


Respuestas:


1460

Sí, mira todos los consejos y trucos con mailto: http://www.angelfire.com/dc/html-webmaster/mailto.htm

Ejemplo de asunto mailto:

<a href="mailto:no-one@snai1mai1.com?subject=free chocolate">example</a>

mailto con contenido:

<a href="mailto:no-one@snai1mai1.com?subject=look at this website&body=Hi,I found this website and thought you might like it http://www.geocities.com/wowhtml/">tell a friend</a>

Como se aludió en los comentarios, ambos subjecty se bodydeben escapar correctamente. Úselo encodeURIComponent(subject)en cada uno, en lugar de la codificación manual para casos específicos.

Como Hoody mencionó en los comentarios, puede agregar saltos de línea agregando la siguiente secuencia codificada en la cadena:

%0D%0A // one line break

29
¿Es posible usar HTML para el cuerpo?
Jiew Meng el

18
Eso es completamente específico del cliente. En el caso general, no.
Tripleee

44
Solo como referencia: no tienes que escapar del tema
Oscar Pérez

17
Tenga en cuenta que W3C requiere que codifique su cadena siguiendo esas reglas: los caracteres deben representarse en NFC y los espacios deben escaparse como% 20.
gordie

96
En caso de que alguien más se pregunte, también puede agregar saltos de línea al cuerpo utilizando la secuencia% 0D% 0A - cubetoon.com/2008/…
Hoody

123
<a href="mailto:manish@simplygraphix.com?subject=Feedback for 
webdevelopersnotes.com&body=The Tips and Tricks section is great
&cc=anotheremailaddress@anotherdomain.com
&bcc=onemore@anotherdomain.com">Send me an email</a>

puede usar este código para establecer asunto, cuerpo, cc, bcc


39

El mailto:esquema de URL se define en RFC 2368 . Además, la convención para codificar información en URL y URI se define en RFC 1738 y luego en RFC 3986 . Estos prescriben cómo incluir los encabezados bodyy subjecten una URL (URI):

mailto:infobot@example.com?subject=current-issue&body=send%20current-issue

Específicamente, debe codificar en porcentaje la dirección de correo electrónico, el asunto y el cuerpo y ponerlos en el formato anterior. El texto codificado en porcentaje es legal para su uso en HTML, sin embargo, esta URL debe estar codificada por entidad para su uso en un hrefatributo, de acuerdo con el estándar HTML4 :

<a href="mailto:infobot@example.com?subject=current-issue&amp;body=send%20current-issue">Send email</a>

Y, en general, aquí hay un script PHP simple que codifica según lo anterior.

<?php
$encodedTo = rawurlencode($message->to);
$encodedSubject = rawurlencode($message->subject);
$encodedBody = rawurlencode($message->body);
$uri = "mailto:$encodedTo?subject=$encodedSubject&body=$encodedBody";
$encodedUri = htmlspecialchars($uri);
echo "<a href=\"$encodedUri\">Send email</a>";
?>

Aquí hay un ejemplo mucho más profundo de si su correo electrónico tiene una URL y esa URL tiene cosas que deben codificarse: stackoverflow.com/questions/4744888/…
William Entriken

1
Creo que hay un error tipográfico en la línea $uri = ...: el &frente de subjectdebería ser un?
jost21

24

Puede agregar el asunto agregado al comando mailto utilizando cualquiera de las siguientes formas. Agregue? Asunto out mailto a la etiqueta mailto.

<a href="mailto:test@example.com?subject=testing out mailto">First Example</a>

También podemos agregar texto al cuerpo del mensaje agregando & body al final de la etiqueta como se muestra en el ejemplo a continuación.

 <a href="mailto:test@example.com?subject=testing out mailto&body=Just testing">Second Example</a>

Además del cuerpo, un usuario también puede escribir & cc o & bcc para completar los campos CC y BCC.

<a href="mailto:test@example.com?subject=testing out mailto&body=Just testing&cc=test1@example.com&bcc=test1@example.com">Third
    Example</a>

Cómo agregar un asunto a la etiqueta mailto


13

Creé una herramienta de código abierto para facilitar esto. Ingrese las cadenas que desee e instantáneamente obtendrá mailto:

mailto.now.sh

💌⚡️ plantilla de correos electrónicos completos en un mailto

ingrese la descripción de la imagen aquí


12
mailto:joe@company.com?subject=Your+subject

1
Mi subjectno es texto. Es una Mesa. Cómo agregar eso.
David

9

Lo dividí en líneas separadas para hacerlo un poco más legible.

<a href="

    mailto:johndoe@gmail.com

    ?subject=My+great+email+to+you

    &body=This+is+an+awesome+email

    &cc=janedoe@gmail.com

    &bcc=billybob@yahoo.com

">Click here to send email!</a>

1
esta pregunta fue respondida hace 5 años
varun aaruru

14
y todavía se usa hoy cuando quieres enviar algo por correo
2016


7

Si:

Use esto para experimentar con elementos de formulario mailto y codificación de enlaces.

Puede ingresar asunto, cuerpo (es decir, contenido), etc. en el formulario, presionar el botón y ver el enlace mailto html que puede pegar en su página.

Incluso puede especificar elementos que rara vez se conocen y usan: cc, bcc, de correos electrónicos.


También una característica muy útil de este compositor de campos href es la capacidad de codificar todos los caracteres en hexadecimal (por ejemplo , se [Test Zõne]convierte en %5BTest%20Z%C3%B5ne%5D, esto puede evitar algunos bots de spam).
Armfoot

Quiero decir, si eliges codificar todos los caracteres, todos se convertirán a notación HTML &#x(evitando algunos bots de spam).
Armfoot

44
Este enlace está muerto.
Bram Vanroy

6

Sí, te puede gustar esto:

mailto: email@host.com?subject=something

2
¿No creo que el espacio debería estar allí?
nafg

Esto debería ser sin espacio.
Hassan Raza

5

Tenga en cuenta que no es posible usar HTML en el cuerpo del mensaje, de acuerdo con RFC 2368 :

El hname especial "body" indica que el hvalue asociado es el cuerpo del mensaje. El nombre de "cuerpo" debe contener el contenido de la primera parte de texto / cuerpo sin formato del mensaje. La URL de mailto está destinada principalmente a la generación de mensajes de texto cortos que en realidad son el contenido del procesamiento automático (como mensajes de "suscripción" para listas de correo), no cuerpos MIME generales.

Crédito: https://stackoverflow.com/a/13415988/1835519


2
La pregunta es cómo configurar el tema y el contenido. No mencionó el formato. Si bien es algo útil tener en cuenta en una respuesta, omitió un poco sobre lo que es posible y cómo lograrlo. Sin eso, este es un comentario, no una respuesta.
Quentin

Jure, realmente aprecio que hayas puesto esto como una respuesta a esta pregunta, ya que eso es EXACTAMENTE lo que necesitaba averiguar y me preguntaba. Entonces, aunque Quentin cree que esto no responde a la pregunta de OP, responde a la mía que estaba buscando y que trajo a colación esta publicación. Muchas gracias Jure!
user1567291

3

Aquí hay un fragmento ejecutable para ayudarlo a generar mailto: enlaces con asunto y cuerpo opcionales.

function generate() {
  var email = $('#email').val();
  var subject = $('#subject').val();
  var body = $('#body').val();

  var mailto = 'mailto:' + email;
  var params = {};
  if (subject) {
    params.subject = subject;
  }
  if (body) {
    params.body = body;
  }
  if (params) {
    mailto += '?' + $.param(params);
  }

  var $output = $('#output');
  $output.val(mailto);
  $output.focus();
  $output.select();
  document.execCommand('copy');
}

$(document).ready(function() {
  $('#generate').on('click', generate);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" id="email" placeholder="email address" /><br/>
<input type="text" id="subject" placeholder="Subject" /><br/>
<textarea id="body" placeholder="Body"></textarea><br/>
<button type="button" id="generate">Generate & copy to clipboard</button><br/>
<textarea id="output">Output</textarea>


1

Si desea agregar contenido html a su correo electrónico, codifique su código html para el cuerpo del mensaje e inclúyalo en su código de enlace mailto, pero el problema es que no puede establecer el tipo de correo electrónico desde este enlace de texto sin formato a html, el cliente que usa el enlace necesita su cliente de correo para enviar correos html por defecto. En caso de que desee probar aquí, está el código para un enlace simple de mailto, con una imagen envuelta en un enlace (URL de estilo angular añadidas para visibilidad):

<a href="mailto:?body=%3Ca%20href%3D%22{{ scope.url }}%22%3E%3Cimg%20src%3D%22{{ scope.url }}%22%20width%3D%22300%22%20%2F%3E%3C%2Fa%3E">

Las etiquetas html están codificadas en url.


¿Puedes publicar también un ejemplo donde el cuerpo <a href> solo tenga el href y un texto entre él y la etiqueta final? Gracias
user1567291

<a href="<same as above> "> Este es el texto del enlace </a> @ user1567291
serdarsenay

Esto no funciona El cliente de correo electrónico solo mostrará todas las etiquetas html como texto en lugar de procesarlo como un documento de texto enriquecido.
Ε Г И І И О
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.