Inserisci un'interruzione di riga nel corpo di mailto


166

Vorrei inserire un'interruzione di riga nel mio corpo mailto. Ho provato% 0A,% 0D e% 0D% 0A. Niente ha funzionato per me. Ho testato su Gmail, Yahoo, Apple Mail, Outlook 2010, Outlook.com e Thunderbird con Google Chrome su Mac OSX.

Qualche aiuto per favore?

Ecco il mio codice:

<a href="mailto:email@mycompany.com?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>


@John Come è un duplicato? Questa è una domanda molto specifica sull'utilizzo %20per inserire una nuova linea, non su come creare una nuova linea come questa domanda.
jdmdevdotnet,

1
A me sembra un imbecille. Quella domanda chiede "come inserisco un'interruzione di riga come faccio uno spazio". Non sta chiedendo come usare %20 come newline. L'unica differenza sostanziale che vedo è che si tratta di chiedere al corpo, mentre quella domanda pone sull'argomento. È comunque la stessa risposta in entrambi i casi.
Amy,

Risposte:


242

Ti suggerirei di provare il tag html <br>, nel caso in cui l'applicazione di marketing lo riconoscesse.

Io uso %0D%0A. Dovrebbe funzionare finché l'e-mail è in formato HTML.

<a href="mailto:email@mycompany.com?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>

Probabilmente vorrai eliminare% 20 prima di Firstname, altrimenti avrai uno spazio come primo carattere nella riga successiva.

Una nota, quando l'ho provato con il tuo codice, ha funzionato (insieme ad alcuni spazi extra). Stai utilizzando un client di posta che non consente la formattazione HTML?


1
Ho già provato %0D%0A, e non funziona per me. Uso una soluzione di email marketing per inviare la mia newsletter. Suppongo che stia riscrivendo il mio codice
Marion,

1
Oh, se stai usando una soluzione separata, hai provato il tag HTML "<br>"? Questo a volte funziona quando sto usando applicazioni di terze parti.
Jem

2
Ho fatto dei test con un'altra piattaforma, il mio codice funziona perfettamente! proviene definitivamente dalla soluzione che uso. Tutte quelle ore perse per niente ... scusate ragazzi, e ancora grazie per il vostro aiuto
Marion

4
se si desidera convertire tutti <br>, <br/>o <br />per %0D%0Ache si può farevar emailBody = htmlBody.replace(/<br\s*\/?>/mg,"%0D%0A");
João Ferreira Pimentel

118

Secondo RFC2368 che definisce mailto:, ulteriormente rafforzato da un esempio in RFC1738 , si afferma esplicitamente che l'unico modo valido per generare un'interruzione di linea è con %0D%0A.

Questo vale anche per tutti gli schemi di URL come gopher, smtp, sdp, imap, ldap, ecc.


7
Nota che se stai costruendo un link mailto usando JavaScript, puoi usare escape('\r\n')per ottenere %0D%0A.
Mark Rhodes,

6
Nota aggiuntiva: se si sta costruendo il collegamento con i modelli di stringa ES6 / ES2015, il codice non %0D%0Aelaborato ( ) funziona perfettamente.
Adam Simpson,

@MarkRhodes: Poiché mailto è un URI, puoi anche usare encodeURI (myMailToURIString), che poi sfuggirà a tutti i caratteri necessari nel tuo corpo di posta :-)
Lars Juel Jensen

4

Curiosamente in Gmail per Android %0D%0Anon funziona e <br>funziona:

<a href="mailto:anything@any.com?subject=This%20is%20Subject&body=First line<br>Second line">
   click here to mail me
</a>

-1

Per le e-mail in chiaro che utilizzano JavaScript, è possibile utilizzare anche \rconencodeURIComponent() .

Ad esempio, questo messaggio:

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

URI Encoded, risulta in:

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

E, usando l'href:

mailto:me@house.country?body=hello%0Dthis%20answer%20is%20now%20well%20formated%0Dand%20it%20contains%20good%20knowleadge%0Dthat%20is%20why%20I%20am%20up%20voting

Verrà visualizzato il seguente testo del corpo dell'email:

hello
this answer is now well formated
and it contains good knowleadge
that is why I am up voting

1
@littlecoder Perché è una risposta scadente: mal formattata, scarsamente formulata e omette il contesto essenziale. È altrettanto probabile confondere le persone che arrivano su questa pagina quanto aiutarle. Non è utile per gli standard di questo sito, quindi è stato votato di conseguenza
UnrealEagle,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.