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

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?


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.


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:anything@any.com?subject=This%20is%20Subject&body=First line<br>Second line">
   click here to mail me
</a>

-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:me@house.country?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

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
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.