2009-03-25 13 views
2

, в настоящее время использующий PHP5 с htmlMimeMail 5 (http://www.phpguru.org/static/mime.mail.html) для отправки сообщений электронной почты HTML. Были возникли проблемы с числом получателей видящих случайные символы заменяются на знак равенства, например: «Хорошо Мор = Ing Наша школа направляет нашу рассылку = и информации через компанию под названием ...»Электронные письма, отправленные через php5 + htmlMimeMail, принимаются со случайными символами, замененными на =

ли установить текст электронной почты, HTML и кодировку заголовка в UTF-8. Файлы шаблонов, загруженные PHP для электронной почты (просто include() 'd text/HTML с несколькими тегами php в них), кодируются в UTF-8.

Интересно, что я не могу дублировать проблему ни на одном из моих почтовых клиентов и не могу найти какую-либо информацию, выполнив поиск yahoo/googlies, которые указывают на проблему!

ответ

2

Try посылая с 8-битной кодировкой:

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

Положите меня в правильном направлении; должен был использовать Base64Encoding. – spronkey

0

Я подозреваю, что проблема связана с более старыми версиями Exchange. Equal signs at end of line:

Это не может быть заявленная для печати вещь с символами высокого/низкого порядка или кодировкой. Кроме того, в другом месте на этой странице, он говорит:

Примечание: Исправлена ​​ошибка (? «Особенность») в обмен может привести к линии каналы должны быть заменены с одинаковыми знаками, когда форматированный текст почты отключен.

+0

Приятная находка! Но замененные символы не находятся в конце строки или линии, поэтому я не уверен, что это оставляет меня! – spronkey

+0

ya, мое первое предположение было qp, пока я не прочитал пример. – sfossen

0

У меня была аналогичная проблема, но у меня было немного другое. Поскольку я наткнулся на эту нить, ища ответ, и это помогло мне найти его, я подумал, что могу также опубликовать этот ответ.

В моем случае специальные символы попадали в сообщения электронной почты даже через фактическое mb_detect_encoding текстовых строк, которые были отправлены, были «UTF-8», и если бы я их повторил, они выглядели хорошо.

Так что пришлось нам функцию

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

и

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