Fügen Sie einen Zeilenumbruch in mailto body ein


165

Ich möchte einen Zeilenumbruch in meinen Mailto-Body einfügen. Ich habe% 0A,% 0D und% 0D% 0A ausprobiert. Bei mir hat nichts funktioniert. Ich habe auf Google Mail, Yahoo, Apple Mail, Outlook 2010, Outlook.com und Thunderbird mit Google Chrome unter Mac OS X getestet.

Hilfe bitte?

Hier ist mein Code:

<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 Wie ist das ein Duplikat? Dies ist eine sehr spezifische Frage %20zur Verwendung der Eingabe einer neuen Zeile und nicht zur Erstellung einer neuen Zeile wie dieser Frage.
jdmdevdotnet

1
Sieht für mich wie ein Betrüger aus. Diese Frage fragt: "Wie füge ich einen Zeilenumbruch ein, wie ich ein Leerzeichen mache?" Es wird nicht gefragt, wie man %20 als Newline verwendet. Der einzige wesentliche Unterschied, den ich sehe, besteht darin, nach dem Körper zu fragen, während diese Frage nach dem Thema fragt. In beiden Fällen ist es jedoch die gleiche Antwort.
Amy

Antworten:


242

Ich würde vorschlagen, dass Sie das HTML-Tag ausprobieren <br>, falls Ihre Marketinganwendung es erkennt.

Ich benutze %0D%0A. Dies sollte funktionieren, solange die E-Mail HTML-formatiert ist.

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

Wahrscheinlich möchten Sie% 20 vor dem Vornamen entfernen, andernfalls haben Sie in der nächsten Zeile ein Leerzeichen als erstes Zeichen.

Ein Hinweis, als ich dies mit Ihrem Code getestet habe, hat es funktioniert (zusammen mit einigen zusätzlichen Abständen). Verwenden Sie einen Mail-Client, der keine HTML-Formatierung zulässt?


1
Ich habe es bereits versucht %0D%0Aund es funktioniert bei mir nicht. Ich verwende eine E-Mail-Marketing-Lösung, um meinen Newsletter zu versenden. Ich nehme an, es schreibt meinen Code neu
Marion

1
Oh, wenn Sie eine separate Lösung verwenden, haben Sie das HTML-Tag "<br>" ausprobiert? Das funktioniert manchmal, wenn ich Anwendungen von Drittanbietern verwende.
Jem

2
Ich habe einige Tests mit einer anderen Plattform durchgeführt, mein Code funktioniert perfekt! Es kommt definitiv von der Lösung, die ich benutze. All diese Stunden sind umsonst verloren ... Entschuldigung, und nochmals vielen Dank für Ihre Hilfe
Marion

4
wenn Sie möchten , dass jeder konvertieren <br>, <br/>oder <br />auf die %0D%0ASie tun könnenvar emailBody = htmlBody.replace(/<br\s*\/?>/mg,"%0D%0A");
João Ferreira Pimentel

117

Gemäß RFC2368 , das definiert mailto:, weiter verstärkt durch ein Beispiel in RFC1738 , wird ausdrücklich darauf hingewiesen , dass der einzig gültige Weg , um einen Zeilenumbruch zu erzeugen , ist mit %0D%0A.

Dies gilt auch für alle URL-Schemata wie Gopher, SMTP, SDP, IMAP, LDAP usw.


7
Beachten Sie, dass , wenn Sie einen Mailto - Link mit JavaScript konstruieren, dann können Sie verwenden , escape('\r\n')zu erhalten %0D%0A.
Mark Rhodes

6
Zusätzlicher Hinweis: Wenn Sie die Verknüpfung mit ES6 / ES2015-Zeichenfolgenvorlagen erstellen, %0D%0Afunktioniert der Rohcode ( ) einwandfrei .
Adam Simpson

@ MarkRhodes: Da mailto eine URI ist, können Sie auch encodeURI (myMailToURIString) verwenden, die dann alle in Ihrem Mail-Body benötigten Zeichen maskiert :-)
Lars Juel Jensen

4

Seltsamerweise %0D%0Afunktioniert Google Mail für Android nicht und <br>funktioniert:

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

-1

Für Klartext-E-Mails mit JavaScript können Sie auch \rmit verwenden encodeURIComponent().

Zum Beispiel diese Nachricht:

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

URI-codiert, ergibt:

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

Und mit dem 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

Wird zu folgendem E-Mail-Text führen:

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

1
@littlecoder Weil es eine schlechte Antwort ist: schlecht formatiert, schlecht formuliert und ohne wesentlichen Kontext. Es ist genauso wahrscheinlich, dass Menschen, die auf dieser Seite landen, verwirrt werden, wie es ihnen hilft. Es ist für die Standards dieser Site nicht nützlich und wurde daher entsprechend abgestimmt
UnrealEagle
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.