Php5 + htmlMimeMail yoluyla gönderilen e-postalar yerini = rasgele karakterler ile alınıyor

3 Cevap php

Şu anda htmlMimeMail 5 ile PHP5 kullanarak (http://www.phpguru.org/static/mime.mail.html) HTML e-posta iletişimi göndermek için. Yerini rasgele karakterleri görme alıcıya bir dizi ile ilgili sorunlarınız mı işaretleri örneğin eşittir:

"İyi mor = ing. Okulumuz adlı bir şirket aracılığıyla bülten göndererek = ve bilgisi olduğunu ..."

E-posta metnini, HTML, ve UTF-8 kodlamasını başlık belirledik. E-posta için PHP tarafından yüklenen şablon dosyalarını hem UTF-8 kodlanmış (sadece (onlara birkaç php etiketleri ile) d 'text / HTML dahil).

İlginç olan benim e-posta istemcileri herhangi sorun çoğaltmak olamaz ve sorunun beni işaret olur yahoo / googlies arayarak herhangi bir bilgi bulamıyorum olduğunu!

3 Cevap

8-bit kodlama ile göndermeyi deneyin:

$message->setTextEncoding(new EightBitEncoding());
$message->setHTMLEncoding(new EightBitEncoding());

Senin sorunun, eski Exchange versiyonları ile ilgili olduğunu sanıyorum. Equal signs at end of line:

Bu yüksek / düşük sipariş karakter veya kodlama ile kote yazdırılabilir şey olmayabilir. Ayrıca, başka bir yerde bu sayfada diyor ki:

NOTE: A bug ("feature"?) in Exchange may cause line feeds to be replaced with equal signs when rich text mail is disabled.

Ben benzer bir sorunu vardı, ama benim biraz farklı oldu. Ben cevap arıyorum bu konu üzerine tökezledi ve onu bulmama yardım beri, ben de burada bu ilgili yanıt verebilirsiniz düşündüm.

Benim durumumda özel karakterler bile gönderilen metin dizeleri gerçek mb_detect_encoding aracılığıyla e-postalarda berbat ödendi "UTF-8" idi ve ben onları yankılveı eğer onlar iyi görünüyordu.

Yani işlevini bize kaldı

$message->setTextCharset('UTF-8')

ve

$message->setHTMLCharset('UTF-8')