PHP Mail Konu Hattı kodlar

7 Cevap php

Ben konu satırı gibi özel karakter varsa, PHP bir HTML kodlanmış e-posta göndermek çalıştığınızda "Here's the information you requested", PHP okumak için kodlar "Here's the information you requested."

Bunu nasıl düzeltebilirim?


İşte kod PHP posta kullanarak benziyor ne ():

$headers  = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";

$headers .= 'To: ' . $mod_params['name'] . '<' . $mod_params['email'] . '>' . "\r\n";

$headers .= 'From: <do_not_reply@a4isp.com>' . "\r\n";  

$email_to = $mod_params['email'];

$email_sub = "Here's the Information You Requested";

$body = html_entity_decode("<html><body>" . $email_html_body . "</body></html>");

mail($email_to,$email_sub,$body,$headers);

Bu SugarPHPMailer sınıfı aracılığıyla çalışan gibi aynı hatayı veriyor.

7 Cevap

Bu deneyin:

 $newsubject='=?UTF-8?B?'.base64_encode($subject).'?=';

PHP'nin veya MTA'nın kodlama bağlı değildir Bu şekilde, iş yapmak ve MailClient anlamak omuz. Hiçbir özel karakterler yeni konu mevcut olacaktır, bu yüzden postayı teslim ederken hiçbir sorun ortaya çıkarsa.

Eğer göndermeden önce dize gerçekten kodlanmış değerler içermiyorsa, bakmak this:

$subject= mb_encode_mimeheader($subject,"UTF-8", "B", "\n");
// or
$subject= mb_encode_mimeheader($subject,"UTF-7", "Q", "\n");


SugarCRM ilgili bu mesajların bir göz atın:

Ben Wordpress plug-in üzerinde çalışıyordu benzer bir sorunu vardı ve ben burada ve diğer çeşitli Google arama sonuçlarında farklı önerileri çalışıyor ve üzerinde beynimi gömülmüştü. Sonunda onu paylaşacağım yüzden benim durumda çalışmış bir çözüm bulundu. Bunu ben ilk denedim ve işe yaramadı Paul'un çözüm oldu diyecekler, ama neden bana "kestirme" çözüm çalışıyordu. Benim durumumda sadece işe yaramadı () html_entity_decode çağırıyor. Neden? Ben daha yakından PHP doc okumak olsaydı bunu apaçık olurdu. Benim sorun) tek teklif ve html_entity_decode için varsayılan (üzerinde kodlama ile oldu 'ENT_COMPAT' yalnız tek tırnak bırakır hangi. Çözüm tüm parametrelerini ayarlamak için oldu ve çalıştı. Gerçekte ben muhtemelen UTF-8 kodlama beri charset bıraktığı, ama ben tam olarak anladım olabilirdi.

$decoded_str = html_entity_decode (  $value_to_decode, ENT_QUOTES, 'UTF-8' );

Burada ders "docs Oku", iyi bir tanesidir. Ben (muhtemelen yaptım) değil mi demiyorum, ama çok 'bize bir acele olsun ve biz sadece bakmak istiyorum eğer karşısında bize bakan orada oturuyor çözüm geçiştirmeye.

SwiftMailer veya oluşturma ve sizin için HTML e-posta kodlama tüm karmaşıklığı yönetir, diğer kütüphane kullanmayı deneyin.

Belki konu satırında bazı varlıklar var gibi html_entity_decode(), görünüyor aracılığıyla konu satırını çalıştırmayı deneyin.

Soruna neden olan kod bloğunu Gönderilmesi çoğu kez daha hızlı, daha iyi bir yanıt sağlayacaktır. Bu eylem gerçekleşmeden önce olasılıkla bir yerde metin kodlama vardır. Daha önce bu eylemi ararlar, ve bunu düzeltmek, ya da sadece e-posta göndermeden önce konu satırını deşifre yapabilirsiniz önerdi.

Sen mb_encode_mimeheader, hemen önce ayarlamayı unutmayın kullanmalısınız.

mb_internal_encoding("UTF-8"); //has to be set (of course your internal encoding may not be UTF-8).
$subject = mb_encode_mimeheader($subject,'UTF-8','Q');

Bu gerektiğinde (insan okunabilir) Quoted-Printable kodlama özen ve otomatik uzunluğunda bağlı çizgilerin doğru miktarda içine konuyu kıracak.