Проблема в заголовках писем Webform

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

Аватар пользователя mfisoft@drupal.org mfisoft@drupal.org 6 февраля 2009 в 14:36

Доброго времени суток! Столкнулся с проблемой.

Выставляю в форме (созданной в webform):

E-mail от имя: ФИО
От кого: E-mail

В итоге на почту приходит сообщение вот с таким заголовком:
"=?UTF-8?B?0JXQu9GM0L3QuNC60L7QsiDQkNC70LXQutGB@fe21.hc.ru, 0LXQuSDQkdC+0YDQuNGB0L7Qsg==?= =?UTF-8?B?0LjRh@fe21.hc.ru, w==?=" fe21.hc.ru

Где "=?UTF-8?B?0JXQu9GM0L3QuNC60L7QsiDQkNC70LXQutGB@fe21.hc.ru, 0LXQuSDQkdC+0YDQuNGB0L7Qsg==?= =?UTF-8?B?0LjRh@fe21.hc.ru, w==?=" fe21.hc.ru - Зашифрованное Ф.И.О.

На сервере iWeb таких проблем нет (также как и на Инфобоксе) - а вот на HC.ru - есть.

Писал в поддержку - сказали, что все проблемы у меня.

Если это все-таки проблема у хостера с обработкой заголовков - распишите каким образом это объяснить поддержке.

Комментарии

Аватар пользователя mfisoft@drupal.org mfisoft@drupal.org 6 февраля 2009 в 17:04

2 Krotty[at]drupal[dot]org

Маловероятно. Повторяюсь, заголовки с идентичного сайта на другом сервере приходят в нормальном виде.

p.s. у меня thunderbird, через web-интерфейc MS Exchange - тоже самое.

Аватар пользователя direqtor direqtor 6 февраля 2009 в 17:38

А сервер хостера по умолчанию какие кодировки кажет? Мне вот, например, пару лет назад пришлось долго общатся со своим, чтобы выяснить, что все-таки весь сервак по дефолту отдает win1251. Ну, в htaccess прописал потом UTF8, но вот с почтой от webforms такая проблема тоже бывает. Просто почтовик всетаки не UTF8. Спросите у них какая у них дефолтовая кодировка на почтовом сервере....

Аватар пользователя mfisoft@drupal.org mfisoft@drupal.org 6 февраля 2009 в 19:29

Поменяли на UTF8... Все равно продолжается

Особенность, если отправляется только одно имя, например "Иван" - то все нормально.
А вот если, например "Иван Иванович Иванов" - то опять кракозябры.

Аватар пользователя Said Said 4 мая 2009 в 2:32

Решение.

В настройках конфигурации "опросника" изменить значение "От кого" во вкладке "Conditional e-mail recipients", поставить галочку в значении Component: E-mail.

Где находиться поле "Component":

* Configuration
> Вкладка "Webform mail settings"
> Вкладка "Conditional e-mail recipients"

Аватар пользователя ntrl ntrl 5 июня 2009 в 3:56

Немного не понял решение Said'а. Но благодаря нему понял как решить для себя.
Для себя решил следующим образом:
В настройках формы (на странице Configuration) нужно в группе Webform mail settings установить для поля E-mail from name: вариант Component и указать поле.
Теперь outlook все видит правильно.

Аватар пользователя zaletnev zaletnev 5 декабря 2010 в 15:44

Патч MAIL.INC && webform.module
строка 181 файла mail.inc, функция drupal_mail_send()

foreach ($message['headers'] as $name => $value) {
- $mimeheaders[] = $name .': '. mime_header_encode($value);
+ $pattern="/([\s]*)([_a-zA-Z0-9-]+(\.[_a-zA-Z0-9-]+)*([ ]+|)@([ ]+|)([a-zA-Z0-9-]+\.)+([a-zA-Z]{2,}))([\s]*)/i";
+ preg_match_all($pattern, $value, $matches);
+ $mail = $matches[0][0];
+ $value = str_replace(' <'.$mail.'>', '', $value);
+ $mimeheaders[] = $name .': '. mime_header_encode($value). ( $mail ? ' <'.$mail.'>' : '');
}

Патч WEbform 3.x:
строка 2873 файла webform.module, функция webform_format_email_address()

if ($encode) {
- $name = mime_header_encode($name);
+ //$name = mime_header_encode($name);
}
- return '"'. $name .'" <' . $address . '>';
+ return $name . ' <' . $address . '>';
}

В случае использования webform 3.х происходит перекодировка поля FROM в UTF-8, затем тоже самое делает функция drupal_mail_send(), причем функция drupal_mail_send() кодирует имя вместе с email'ом. В итоге в заголовке FROM email представлен некорректно.

Аватар пользователя zaletnev zaletnev 8 декабря 2010 в 10:08

Если работаете с модулем Mimemail и Webform, то патч №2 следует изменить так:

if ($encode && module_exists('mimemail')) {
// if mime mail module is enabled
$name = mime_header_encode($name);
}

Не забудьте изменить формат писем на HTML. Патч сделан "на скорую руку", уверен есть решение лаконичнее.

Аватар пользователя Cvalya Cvalya 13 сентября 2011 в 18:32

Тоже с этим столкнулся Sad
Хостинг свой, поэтому предъявлять некому)))
Решения описанные zaletnev не помогли либо я что то сделал не так, хотя там сложно ошибиться)

Даже кеш в отчаянии почистил...

Текст сообщения примерно такой, это содержание взято из письма с ошибкой:

...
Subject: =?UTF-8?B?0JTQvtCx0LDQstC70LXQvdCwINC30LDQstC60LAg0L3QsCDQstGB0YLRg9C/0Ls=?= =?UTF-8?B?0LXQvdC40LUg0LIg0YXQvtGA?=
...
From: =?UTF-8?B?0JfQsNGP0LLQutCwINC90LAg0LLRgdGC0YPQv9C70LXQvdC40LUg0LIg0YXQvg==?= =?UTF-8?B?0YA=?=

п·я┌п©я─п╟п╡п╩п╣п╫п╬ п▓я┌п╬я─п╫п╦п╨, п║п╣п╫я┌я▐п╠я─я▄ 13, 2011 - 16:49
п·я┌п©я─п╟п╡п╩п╣п╫п╬ п╟п╫п╬п╫п╦п╪п╫я▀п╪ п©п╬п╩я▄п╥п╬п╡п╟я┌п╣п╩п╣п╪:
[ip.addresss.255.255]
п·я┌п╡п╣я┌я▀: :

--п· я│п╣п╠п╣--
п▓п╟я┬п╣ п╦п╪я▐: я┌п╣я│я┌п╬п╡1
п▓п╟я┬п╟ п╓п╟п╪п╦п╩п╦я▐: я┌п╣я│я┌

--п· я─п╣п╠п╣п╫п╨п╣--
п≤п╪я▐ я─п╣п╠п╣п╫п╨п╟: п▓п╟я│я▐
п▓п╬п╥я─п╟я│я┌ я─п╣п╠п╣п╫п╨п╟: 112
п÷п╬п╩ я─п╣п╠п╣п╫п╨п╟: п°п╟п╩я▄я┤п╦п╨

--п п╬п╫я┌п╟п╨я┌п╫п╟я▐ п╦п╫я└п╬я─п╪п╟я├п╦я▐--
п╜п╩п╣п╨я┌я─п╬п╫п╫п╟я▐ п©п╬я┤я┌п╟: user_email@gmail.com
п п╬п╫я┌п╟п╨я┌п╫я▀п╧ я┌п╣п╩п╣я└п╬п╫: 1324567
п п╬п╪п╪п╣п╫я┌п╟я─п╦п╧: 123п╡п╟п©

А в начале него стоит еще такое:

Hi. This is the qmail-send program at mail1.host.ru.
I'm afraid I wasn't able to deliver your message to the following addresses.
This is a permanent error; I've given up. Sorry it didn't work out.

:
User and password not set, continuing without authentication.
ip.100.ip.20 failed after I sent the message.
Remote host said: 550 Message was not accepted -- it contains invalid headers. More specially, 'From:' header must match user you are sending mail from.

Аватар пользователя vkapas vkapas 26 марта 2015 в 16:01

Знаю, неправильно поднимать темы через 3 года, но вдруг кому пригодится: для себя нашёл решение в отключении имени отправителя, в таком случае при отправлении письма указывается только обратный e-mail, а он точно будет без кириллицы (если, конечно, он у вас не в зоне .рф).

В Drupal 7 это настраивается на странице admin/config/content/webform (Управление > Конфигурация > Работа с содержимым > Настройки Webform > Дополнительные настройки > Формат e-mail адреса):