неправильная кодировка phpmailer для gmail

Главные вкладки

Аватар пользователя rabchevsky rabchevsky 11 февраля 2009 в 0:22

Здравствуйте!
Есть drupal 6,9
установлен модуль smtp и phpmailer соответственно
последние используются для отправки сообщений сайта на почту пользователей через аккаунт на gmail

Есть следующие проблемы:
1 пользователи почтовых аккаунтов на сервере gmail получают письма в непонятном виде
например ПоздÑ
При этом пользователи остальных серверов получают тело псьма в нормальном виде
то есть как разбираться с кодировкой?
2 пользователи всех почтовых серверов получают письма тема которого указываатся тоже в непонятном виде например
в =?UTF-8?B?W3JhYmNoZXZza3kubmFtZV0g0YLQuNC/INGB0L7QtNC10YDQtg==

Пожалуйста подскажите как и откуда копать?

Комментарии

Аватар пользователя rabchevsky rabchevsky 11 февраля 2009 в 14:45

у меня в отчете статуса PHP http://mysite/admin/reports/status/php написано следующее

PHP Version 5.2.8

Configure Command './configure' '--disable-cgi' '--enable-bcmath' '--enable-calendar' '--enable-exif' '--enable-ftp' '--enable-gd-native-ttf' '--enable-libxml' '--enable-magic-quotes' '--enable-mbstring' '--enable-pdo=shared' '--enable-sockets' '--enable-zend-multibyte' '--enable-zip' '--prefix=/usr/local' '--with-apxs2=/usr/local/apache/bin/apxs' '--with-bz2' '--with-curl=/opt/curlssl/' '--with-curlwrappers' '--with-freetype-dir=/usr' '--with-gd' '--with-gettext' '--with-imap=/opt/php_with_imap_client/' '--with-imap-ssl=/usr' '--with-jpeg-dir=/usr' '--with-kerberos' '--with-libexpat-dir=/usr' '--with-libxml-dir=/opt/xml2/' '--with-mcrypt=/opt/libmcrypt/' '--with-mhash=/opt/mhash/' '--with-mime-magic' '--with-mysql=/usr' '--with-mysql-sock=/var/lib/mysql/mysql.sock' '--with-mysqli=/usr/bin/mysql_config' '--with-openssl=/usr' '--with-openssl-dir=/usr' '--with-pdo-mysql=shared' '--with-pdo-sqlite=shared' '--with-png-dir=/usr' '--with-sqlite=shared' '--with-ttf' '--with-xmlrpc' '--with-xpm-dir=/usr' '--with-xsl=/opt/xslt/' '--with-zlib' '--with-zlib-dir=/usr'

это единственное, что я нашел у себя относительно mbstring, повидимому есть

Аватар пользователя rabchevsky rabchevsky 11 февраля 2009 в 23:11

mbstring

Multibyte Support enabled
Multibyte string engine libmbfl
Multibyte (japanese) regex support enabled
Multibyte regex (oniguruma) version 4.4.4
Multibyte regex (oniguruma) backtrack check On

mbstring extension makes use of "streamable kanji code filter and converter", which is distributed under the GNU Lesser General Public License version 2.1.

Directive Local Value Master Value
mbstring.detect_order no value no value
mbstring.encoding_translation Off Off
mbstring.func_overload 0 0
mbstring.http_input pass pass
mbstring.http_output pass pass
mbstring.internal_encoding no value no value
mbstring.language Russian Russian
mbstring.script_encoding no value no value
mbstring.strict_detection Off Off
mbstring.substitute_character no value no value

Аватар пользователя rabchevsky rabchevsky 12 февраля 2009 в 10:44

iconv

iconv support enabled
iconv implementation glibc
iconv library version 2.5

Directive Local Value Master Value
iconv.input_encoding ISO-8859-1 ISO-8859-1
iconv.internal_encoding ISO-8859-1 ISO-8859-1
iconv.output_encoding ISO-8859-1 ISO-8859-1

Каков диагноз?

Аватар пользователя rabchevsky rabchevsky 13 февраля 2009 в 12:15

ядро и доп модули не менял.
особенность в том, что письма пользователям gmail в неверной кодировке приходят не всегда, иногда приходят в нормальной кодировке но с проблемой №2
спасибо за подсказку,
веротяно модуль subscriptions в некоторых случаях перекодирует неверно, ведь именно он формирует тело письма

непонятно почему страдают лишь пользователи gmail и при этом невсегда?

Аватар пользователя klim klim 31 марта 2009 в 20:47

"Питон_Ъ" wrote:
понятно, ды?
я не самый бесполезный на земле человек :Е
кому-то могу помочь :Е
:Е :Е :Е :Е

Вы действительно помогли.. Огромная благодарность! Респект!

Аватар пользователя aparfilov aparfilov 8 ноября 2010 в 21:36

А у меня, что с phpmail, что без него, письма приходят в ISO-8859-1 кодировке. Сначала модуль print напрямую слал. В поле от и в теле письма были кракозяки. Думал сервант тупит. Поставил phpmail, настроил отправку через Gmail. Единственное, что изменилось это человеческое поле от. Тело письма по-прежнему в ISO-8859-1. С других модулей приходит на ура. Читал багтрэкер на орге: чувак тоже подобный вопрос задавал. Разработчитца невозмутима, как обои. Говорит, мол, я в Португалии и у меня нормально, а у тебя то че? Говорит, что у нее все в utf-8 и все.
Может кто знает как решить этот трабл?

Аватар пользователя aparfilov aparfilov 8 ноября 2010 в 21:47

К стати. phpinfoвот чего выдало в разделе mbstring

Directive Local Value Master Value
.......
mbstring.internal_encoding ISO-8859-1 no value
......

Остальные строки убрал. Iconv аналогичен приведенному выше. Не это ли причина письма с кракозякушками?

Аватар пользователя aparfilov aparfilov 14 ноября 2010 в 1:15

"Stan.Ezersky" wrote:
mbstring есть на сервере?

Стэн, вижу вы понимаете в этих делах. Посмотрите пожалуйста мои предыдущие сообщения.
Я уже на другой хостинг тестовый период взял попробовать. Там как раз mbstring.internal_encoding no value no value
и письма приходят корректно. Полагаю параметр ISO-8859-1 и делает такой кодировку в письмах из модуля print.

К стати, создал запрос по теме, но с решением туго. Хостеры пока тоже руками разводят.

Аватар пользователя Stan.Ezersky Stan.Ezersky 14 ноября 2010 в 1:38

"aparfilov" wrote:
К стати, создал запрос по теме, но с решением туго. Хостеры пока тоже руками разводят.
Тут вЕм только они помогут. Если разводят руками, меняйте хостера.

Аватар пользователя andreysim andreysim 16 февраля 2012 в 20:08

Проблема не в хостере, а в настройках по умолчанию класса PHPMailer подключаемой библиотеки PHPMailer в файле class.phpmailer.php, будь то модуль mimemail или модуль PHPMailer !

class PHPMailer {

/////////////////////////////////////////////////
// PROPERTIES, PUBLIC
/////////////////////////////////////////////////

/**
* Email priority (1 = High, 3 = Normal, 5 = low).
* @var int
*/
public $Priority = 3;

/**
* Sets the CharSet of the message.
* @var string
*/
public $CharSet = 'iso-8859-1';