birden çok gövde çizgisini bağlamak için mail


120

bir mailto bağlantısında birden çok satırın düzgün çalışmasını sağlamakta sorun yaşıyorsanız

Benim durumumda, bunu bir Outlook varsayılan posta okuyucusuyla test ediyorum.

Aşağıdakiler bir çapa href içine yerleştirilir:

mailto:email@address.com?&subject=test&body=type%20your&body=message%20here

e-posta gövdesinde yalnızca "mesaj burada" görünür. (Chrome veya IE kullansam da)

düşünceler?

Yanıtlar:


208

Yeni satırı kodlamak için URL kodlamasını kullanabilirsiniz %0A.

mailto:email@address.com?subject=test&body=type%20your%0Amessage%20here

Birçok durumda işe yukarıdaki göründüğünü ederken, kullanıcı olibre Puan o mailto URI şeması belirliyorsa yöneten RFC %0D%0A(satır + satır besleme) yerine kullanılmalıdır %0A(hat besleme). Ayrıca bakınız: Newline Gösterimleri .


4
Teşekkürler, bu benim için iyi çalıştı ve internette dolaşan diğer çözümlerden çok daha basit görünüyor.
bryn

Bu tüm özel karakterler için çalışmalı, değil mi? & =% 26,% =% 25, ​​bu kalıbın tutmadığı karakterler var mı?
blast_hardcheese

2
bilgi için $0A, basitçeescape( "\n" )
divillysausages

2
Bu kodlayıcı encodeURIComponent, URI bileşenlerini kodlamak için standardı kullanır .
Cees Timmerman

1
% 0D% 0A E-posta için benim için çalıştı ve whatsapp mesajını paylaştı
BenB

40
  1. bodymailtoDize içinde tek bir parametre kullanın
  2. Yeni %0D%0Asatır olarak kullan

mailtoURI Şeması tarafından belirtilir RFC2368 (Temmuz 1998) ve RFC6068 (Ekim 2010).
Aşağıda bu son RFC'nin 5. bölümünün bir özeti bulunmaktadır :

[...] bir mesajın gövdesindeki satır sonları ile kodlanmalıdır ZORUNLU "%0D%0A".
Uygulamalar, gövdede hiçbir son satır olmasa bile mesajın gövdesine son bir satır sonu ekleyebilir "%0D%0A"[...]

Bölüm 6'da aynı RFC'den alınan örneğe de bakın :

<mailto:infobot@example.com?body=send%20current-issue%0D%0Asend%20index>

Yukarıdaki mailtogövde şunlara karşılık gelir:

send current-issue
send index

18

Vücut hatlarını almak için escape () kullanın

body_line =  escape("\n");

yani

href = "mailto:me@my.com?body=hello,"+body_line+"I like this.";

1
Bunu şahsen tercih ederim. Bunun temel nedeni, bir% eklemeye çalıştığınızda da işe yarıyor
Dan James Palmer

5
encodeURIComponent, daha doğrusu. Buraya bakın.
Cees Timmerman

15

Yaptığım bu, sadece ekle \nve kullanencodeURIComponent

Misal

var emailBody = "1st line.\n 2nd line \n 3rd line";

emailBody = encodeURIComponent(emailBody);

href = "mailto:me@somesite.com?body=" + emailBody;

EncodeURIComponent belgelerini kontrol edin


Ne includeiçin kullanıyorsun encodeURIComponent?
frakman1

1
@ frakman1 encodeURIComponent bir JavaScript işlevidir. Herhangi bir içerik olmadan kullanabilirsiniz.
kiranvj
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.