Insertar un salto de línea en mailto body

166

Me gustaría insertar un salto de línea en mi cuerpo mailto. Intenté% 0A,% 0D y% 0D% 0A. Nada me funcionó. Probé en Gmail, Yahoo, Apple Mail, Outlook 2010, Outlook.com y Thunderbird con Google Chrome en Mac OSX.

Cualquier ayuda por favor?

Aquí está mi código:

<a href="mailto:[email protected]?subject=Subscribe&body=Lastame%20%3A%0D%0A%20Firstname%20%3A"><img alt="Subscribe" class="center" height="50" src="subscribe.png" style="width: 137px; height: 50px; color: #4da6f7; font-size: 20px; display: block;" width="137"></a>
Marion
fuente
44
posible duplicado: stackoverflow.com/questions/15019689/…
John
@ John ¿Cómo es eso un duplicado? Esa es una pregunta muy específica acerca de cómo %20se utiliza para ingresar una nueva línea, no cómo hacer una nueva línea como esta pregunta.
jdmdevdotnet
1
A mí me parece un tonto. Esa pregunta pregunta "¿cómo inserto un salto de línea como hago un espacio". No está preguntando cómo usarlo %20 como una nueva línea. La única diferencia sustancial que veo es que esta pregunta sobre el cuerpo, mientras que esa pregunta es sobre el tema. Sin embargo, es la misma respuesta en cualquier caso.
Amy

Respuestas:

242

Te sugiero que pruebes la etiqueta html <br> , en caso de que su aplicación de marketing lo reconozca.

Yo uso %0D%0A. Esto debería funcionar siempre que el correo electrónico tenga formato HTML.

<a href="mailto:[email protected]?subject=Subscribe&body=Lastame%20%3A%0D%0AFirstname%20%3A"><img alt="Subscribe" class="center" height="50" src="subscribe.png" style="width: 137px; height: 50px; color: #4da6f7; font-size: 20px; display: block;" width="137"></a>

Es probable que desee eliminar el% 20 antes del Nombre, de lo contrario tendrá un espacio como primer carácter en la siguiente línea.

Una nota, cuando probé esto con su código, funcionó (junto con un poco de espacio adicional). ¿Está utilizando un cliente de correo que no permite el formato HTML?

Jem
fuente
1
Ya lo intenté %0D%0A, y no me funciona. Utilizo una solución de marketing por correo electrónico para enviar mi boletín. Supongo que está reescribiendo mi código
Marion
1
Oh, si está utilizando una solución separada, ¿ha probado la etiqueta HTML "<br>"? Eso a veces funciona cuando estoy usando aplicaciones de terceros.
Jem
2
Hice algunas pruebas con otra plataforma, ¡mi código funciona perfectamente! definitivamente viene de la solución que uso. Todas esas horas perdidas por nada ... lo siento chicos, y nuevamente gracias por su ayuda
Marion
44
Si desea convertir todos <br>, <br/>o <br />al %0D%0Aque puede hacervar emailBody = htmlBody.replace(/<br\s*\/?>/mg,"%0D%0A");
João Ferreira Pimentel
117

Según RFC2368 que define mailto:, reforzado aún más por un ejemplo en RFC1738 , se establece explícitamente que la única forma válida de generar un salto de línea es con %0D%0A.

Esto también se aplica a todos los esquemas de URL como gopher, smtp, sdp, imap, ldap, etc.

davidcondrey
fuente
77
Tenga en cuenta que si está construyendo un enlace mailto usando JavaScript, puede usar escape('\r\n')para obtener %0D%0A.
Mark Rhodes
66
Nota adicional: si está construyendo el enlace con las plantillas de cadena ES6 / ES2015, el código sin formato ( %0D%0A) funciona bien.
Adam Simpson
@ MarkRhodes: Dado que mailto es un URI, también puede usar encodeURI (myMailToURIString), que luego escapará a todos los caracteres necesarios en su cuerpo de correo :-)
Lars Juel Jensen
4

Curiosamente en gmail para android %0D%0Ano funciona y <br>funciona:

<a href="mailto:[email protected]?subject=This%20is%20Subject&body=First line<br>Second line">
   click here to mail me
</a>
peprumo
fuente
-1

Para el correo electrónico de texto sin formato con JavaScript, también puede usarlo \rcon encodeURIComponent().

Por ejemplo, este mensaje:

hello\rthis answer is now well formated\rand it contains good knowleadge\rthat is why I am up voting

URI codificado, resultados en:

hello%0Dthis%20answer%20is%20now%20well%20formated%0Dand%20it%20contains%20good%20knowleadge%0Dthat%20is%20why%20I%20am%20up%20voting

Y, usando el href:

mailto:[email protected]?body=hello%0Dthis%20answer%20is%20now%20well%20formated%0Dand%20it%20contains%20good%20knowleadge%0Dthat%20is%20why%20I%20am%20up%20voting

El resultado será el siguiente texto del cuerpo del correo electrónico:

hello
this answer is now well formated
and it contains good knowleadge
that is why I am up voting
debanga durlov saikia
fuente
1
@littlecoder Porque es una respuesta pobre: ​​mal formateada, mal redactada y omite el contexto esencial. Es tan probable que confunda a las personas que llegan a esta página como lo es ayudarlas. No es útil para los estándares de este sitio, por lo que se ha votado en consecuencia
UnrealEagle