Wstaw znak końca wiersza w treści mailto

166

Chciałbym wstawić podział wiersza do mojego ciała mailto. Próbowałem% 0A,% 0D i% 0D% 0A. Nic mi nie wyszło. Testowałem na Gmailu, Yahoo, Apple Mail, Outlooku 2010, Outlook.com i Thunderbird z Google Chrome na Mac OSX.

Proszę o pomoc?

Oto mój kod:

<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
źródło
4
możliwy duplikat: stackoverflow.com/questions/15019689/…
John
@John Jak to jest duplikat? To jest bardzo konkretne pytanie dotyczące %20używania go do wprowadzania nowej linii, a nie jak tworzyć nową linię, taką jak to pytanie.
jdmdevdotnet
1
Dla mnie wygląda na naiwniaka. To pytanie brzmi „jak wstawić podział wiersza, tak jak spację”. Nie pyta, jak używać go %20 jako nowej linii. Jedyną istotną różnicą, jaką widzę, jest pytanie o ciało, podczas gdy to pytanie dotyczy tematu. Jednak w obu przypadkach jest to ta sama odpowiedź.
Amy

Odpowiedzi:

242

Sugerowałbym wypróbowanie tagu HTML <br>, na wypadek gdyby Twoja aplikacja marketingowa go rozpoznała.

Używam %0D%0A. Powinno to działać, o ile wiadomość e-mail jest w formacie 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>

Prawdopodobnie będziesz chciał wyjąć% 20 przed Firstname, w przeciwnym razie będziesz miał spację jako pierwszy znak w następnej linii.

Uwaga, kiedy testowałem to z twoim kodem, zadziałało (wraz z dodatkowymi odstępami). Czy używasz klienta poczty, który nie obsługuje formatowania HTML?

Jem
źródło
1
Już próbowałem %0D%0Ai to nie działa dla mnie. Do wysyłania biuletynu używam rozwiązania do marketingu e-mailowego. Przypuszczam, że to przepisywanie mojego kodu
Marion
1
Aha, jeśli używasz osobnego rozwiązania, czy wypróbowałeś tag HTML „<br>”? To czasami działa, gdy używam aplikacji innych firm.
Jem
2
Zrobiłem trochę testu na innej platformie, mój kod działa idealnie! z pewnością pochodzi z rozwiązania, którego używam. Wszystkie te godziny stracone na nic ... przepraszam chłopaki i jeszcze raz dziękuję za pomoc
Marion
4
jeśli chcesz przekonwertować każdy <br>, <br/>lub <br />aby %0D%0Amożna zrobićvar emailBody = htmlBody.replace(/<br\s*\/?>/mg,"%0D%0A");
João Ferreira Pimentel
117

Zgodnie z RFC2368, który definiuje mailto:, dodatkowo wzmocniony przykładem w RFC1738 , wyraźnie stwierdzono, że jedynym prawidłowym sposobem generowania podziału wiersza jest %0D%0A.

Dotyczy to również wszystkich schematów adresów URL, takich jak gopher, smtp, sdp, imap, ldap itp.

davidcondrey
źródło
7
Zwróć uwagę, że jeśli konstruujesz łącze mailto przy użyciu JavaScript, możesz użyć escape('\r\n')polecenia get %0D%0A.
Mark Rhodes,
6
Dodatkowa uwaga: jeśli tworzysz łącze za pomocą szablonów ciągów znaków ES6 / ES2015, kod surowy ( %0D%0A) działa dobrze.
Adam Simpson
@MarkRhodes: Ponieważ mailto jest identyfikatorem URI, możesz również użyć encodeURI (myMailToURIString), który następnie usunie wszystkie znaki potrzebne w treści wiadomości :-)
Lars Juel Jensen
4

Co ciekawe w Gmailu na Androida %0D%0Anie działa i <br>działa:

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

W przypadku wiadomości e-mail w postaci zwykłego tekstu używającego JavaScript możesz również użyć \rz encodeURIComponent().

Na przykład ta wiadomość:

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

Zakodowany URI, skutkuje:

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

I używając href:

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

W rezultacie otrzymasz następujący tekst treści wiadomości e-mail:

hello
this answer is now well formated
and it contains good knowleadge
that is why I am up voting
debanga durlov saikia
źródło
1
@littlecoder Ponieważ jest to zła odpowiedź: źle sformatowana, źle sformułowana i pomija istotny kontekst. Jest to tak samo prawdopodobne, że zmyli ludzi, którzy trafią na tę stronę, jak im pomoże. Nie jest przydatny według standardów tej witryny, więc został odpowiednio głosowany
UnrealEagle