2012-07-03 18 views
5

dönüş sonlarını kaldırır:php mail() fonksiyonu karakterleri değiştirir ve bu ne var

1'2 ’3"4 “5”6 [email protected]#11$12%13^14&15*16(17)18}19{20"21:22?23>24<25 

yüzden html karakter değiştirir: Ben e-posta aldığınızda

$msg = "1'2 ’3"4 “5”6 [email protected]#11$12%13^14&15*16(17)18}19{20"21:22?23>24<25 "; 
mail("[email protected]","My subject",$msg); 

Ben bu olsun Sanırım? herhangi bir fikir? Ben tam olarak ne ben içinde saklamak için alınan e-posta gerekir msg.thank size

da vardı geri dönüş araları kaldırıldı. db alan sonları böyle saklanır dönmek vardır: Bu bir topal örnektir

Hello $name 

welcome to $websitename 

thank you, management 

ama gördüğünüz gibi 2 boş hatları vardır. E-posta dışarı gönderildiğinde bu dönüş sonları dikkate alınmaz ve onun bütün doğrultusunda herhangi düşünceler, içerik bozma önlemek için base64 kodlanmış biçimi içindeki mesajı saklanması gereken

+2

posta başlıklarında içerik türünü ve kodlamasını ayarlama denediniz mi? – Andrew

+0

no Üstbilgilerde kodlama yapmamıştım. – cppit

+0

Sudhir'in cevabı senin için çalışmalı. Kodlama, düşündüğüm ilk şeydi, çünkü sıkıntıları kodlamak, geçen hafta içinde birkaç projede beni rahatsız ediyor. İyi şanslar! – Andrew

cevap

4

deneyin ekleyerek başlıkları,:

$headers = "MIME-Version: 1.0\r\n"; 
$headers .= "Content-Type: text/html; charset=ISO-8859-1\r\n"; 
mail($to, $subject, $message, $headers); 

Buraya bakın: PHP mail()

+0

İade molası hakkında bir fikrin var mı? – cppit

2

lütfen:

$msg = "1'2 ’3\"4 “5”6 [email protected]#11$12%13^14&15*16(17)18}19{20\"21:22?23>24<25"; 

$body = chunk_split(base64_encode($msg)); 

mail("[email protected]", "My subject", $body, "Content-Transfer-Encoding: base64"); 

yolu yeni satırların işlenir farklı posta istemcileri arasında değişir; Örneğin, Outlook'un yeni satırları sıkıştırdığı biliniyor, ancak bunları geri yüklemek için bir yol sunuyor.

Tam denetim için, isteğe bağlı olarak metin modu geri dönüşü ile birlikte HTML e-postaları için gitmelisiniz. gibi

+0

İade molası hakkında bir fikrin var mı? – cppit

+0

@fogsy Bu, posta istemcisine bağlıdır; Outlook'un yeni satırları sıkıştırdığı bilinmektedir (ancak bunları geri yükleme seçeneği vardır). Tam kontrol istiyorsanız, HTML e-postaları göndermelisiniz. –

+0

e-posta istemcisi ile ilgisi yok, gmail e-postasını aldım ve geri dönüşler bitti – cppit