LINUX.ORG.RU

Проблемы с кириллицей в email-адресах при отправке сообщений с сайта на Wordpress


0

2

Приветствую!
Есть такая проблема:
При отправке электронного письма через форму обратной связи с сайта вот таким образом, получаю вот это.
А при отправке вот таким образом - получаем нормальную ситуацию.
Т.е. если пользователь будет указывать свое имя кириллицей,
то в письме появляется поле «Обратный адрес» с соответствующей ерундой (mail.smila.org - это почтовый сервер).
Если в случае с кириллицей попробовать «Ответить» на это письмо, то получим следующее.
В случае с латиницей - все нормально.
Почтовый сервер - debian 7, postfix, courier.
Вот содержимое моего файла ./wp-includes/class-phpmailer.php.
Как нормализовать ситуацию с кириллицей?
Благодарю заранее!

Что-то я сомневаюсь, что проблема может быть в мейлере. Скорее у тебя плагин глючный.

Goury ★★★★★ ()
Последнее исправление: Goury (всего исправлений: 2)
Ответ на: комментарий от deep-purple

При создании экземпляра мейлера при отправке мыла:

$mailer->CharSet = 'utf-8';

есть?


Можно поподробнее, что Вы имеете ввиду. Видимо проблема где-то здесь.

Я поменял в файле ./wp-includes/class-phpmailer.php строку
public $CharSet = 'iso-8859-1'; на
public $CharSet = 'utf-8';
Ничего не изменилось.

san-sanych ()
Ответ на: комментарий от deep-purple

Чтобы возможно сузить круг поиска - при отправке почты через /usr/sbin/sendmail (по-умолчанию настроилось) было тоже самое.

Вот как выглядят письма на сегодняшний день.
В поле From в первом письме было написано Михаил Михайлович.
Во втором письме - Michail Michaylovich.

Return-Path: <ideal747@gmail.com>
X-Original-To: newuser@magazin.pp.ua
Delivered-To: newuser@magazin.pp.ua
Received: from magazin.pp.ua (unknown [IPv6:::1])
        by mail.smila.org (Postfix) with ESMTP id BB3D04900F07
        for <newuser@magazin.pp.ua>; Thu, 26 Jun 2014 11:05:59 +0300 (EEST)
Date: Thu, 26 Jun 2014 08:05:59 +0000
To: newuser@magazin.pp.ua
From: =?UTF-8?B?0JzQuNGF0LDQuNC7INCc0LjRhdCw0LnQu9C+0LLQuNGH?= <ideal747@gmail.com>
Subject: Re: My First Classified Ad 11,05
Message-ID: <878e4c070707723008d146214508149b@magazin.pp.ua>
X-Priority: 3
X-Mailer: PHPMailer 5.2.7 (https://github.com/PHPMailer/PHPMailer/)
Reply-To: =?UTF-8?B?0JzQuNGF0LDQuNC7INCc0LjRhdCw0LnQu9C+0LLQuNGHIDxpZGVhbDc0N0Bn?=@mail.smila.org,
        =?UTF-8?B?bWFpbC5jb20+?=@mail.smila.org
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: base64
Return-Path: <ideal747@gmail.com>
X-Original-To: newuser@magazin.pp.ua
Delivered-To: newuser@magazin.pp.ua
Received: from magazin.pp.ua (unknown [IPv6:::1])
        by mail.smila.org (Postfix) with ESMTP id 199204900F07
        for <newuser@magazin.pp.ua>; Thu, 26 Jun 2014 11:36:09 +0300 (EEST)
Date: Thu, 26 Jun 2014 08:36:09 +0000
To: newuser@magazin.pp.ua
From: Michail Michaylovich <ideal747@gmail.com>
Subject: Re: My First Classified Ad
Message-ID: <2d43451ee4dd846c117dbc93bc3927c7@magazin.pp.ua>
X-Priority: 3
X-Mailer: PHPMailer 5.2.7 (https://github.com/PHPMailer/PHPMailer/)
Reply-To: Michail Michaylovich <ideal747@gmail.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: base64

Тело письма и в кириллице и в латинице воспроизводится нормально.

san-sanych ()
Ответ на: комментарий от san-sanych

Можно поподробнее

Не надо трогать сам класс отправки, надо трогать ту шляпу которая его использует для отправки. Где она? Понятия не имею, вп не знаю, тем более его плагинов.

deep-purple ★★★★★ ()
Ответ на: комментарий от san-sanych

при отправке почты через /usr/sbin/sendmail (по-умолчанию настроилось) было тоже самое.

Сюда смотреть не надо вообще. Весь вопрос только в правильной генерации заголовка сообщения и текста в PHP (ну или в WP). Почтовик с сообщением не делает ничего.

AS ★★★★★ ()
Ответ на: комментарий от deep-purple

Не надо трогать сам класс отправки, надо трогать ту шляпу которая его использует для отправки.

Можно хотя-бы в общих чертах? Что за шляпа? Чтобы я мог найти информацию по ней.

san-sanych ()
Ответ на: комментарий от san-sanych

Ну у тя какойто плагин же отправляет писмьо. Это ж обратная связь, да? Ну вот в его коде и ищи как он это делает.

deep-purple ★★★★★ ()
Ответ на: комментарий от san-sanych

Куда смотреть ?

Я знаю только, куда не надо. :-)
Я не веб-программист, это только про электронную почту я дохрена, что знаю.

Копать надо в сторону понимания того, кто и почему формирует этот бред:

Reply-To: =?UTF-8?B?0JzQuNGF0LDQuNC7INCc0LjRhdCw0LnQu9C+0LLQuNGHIDxpZGVhbDc0N0Bn?=@mail.smila.org,
=?UTF-8?B?bWFpbC5jb20+?=@mail.smila.org

То ли WP уже испорченные данные передаёт, то ли php mail() не умеет кодировать 8-битные символы сам.

AS ★★★★★ ()
Ответ на: комментарий от AS

php mail() не умеет кодировать

Он ничего не кодирует, а просто перенаправляет то, что передали из скрипта прямо в /path/do/sendmail

deep-purple ★★★★★ ()
Ответ на: комментарий от AS

А вот PHPMailer.php если увидит что через mail() отправить не получается (или его просили отправлять не через mail()) будет пробовать другие варианты, вплоть до самопального сбора тела сообщения и прочих данных.

deep-purple ★★★★★ ()
Ответ на: комментарий от deep-purple

Вот какие файлы есть, которые содержат в названии слово *mail*:

./wp-includes/class-phpmailer.php
./wp-content/themes/classipress-3.3.3/includes/payments/gateways/bank-transfer/bt-emails.php
./wp-content/themes/classipress-3.3.3/includes/emails.php
./wp-content/themes/classipress-3.3.3/framework/templates/email-template.php
./wp-content/themes/classipress-3.3.3/framework/kernel/mail-from.php
./wp-content/themes/classipress-3.3.3/tests/lib/includes/mock-mailer.php
./wp-mail.php

Обращает на себя внимание файл .../mail-from.php. Вот его листинг.
Выложу и другие *mail* файлы.

san-sanych ()
Ответ на: комментарий от deep-purple

# grep 'new phpmailer' -irno ./

./wp-includes/class-phpmailer.php:752:new phpmailer
./wp-includes/class-phpmailer.php:762:new phpmailer
./wp-includes/class-phpmailer.php:797:new phpmailer
./wp-includes/class-phpmailer.php:945:new phpmailer
./wp-includes/class-phpmailer.php:957:new phpmailer
./wp-includes/class-phpmailer.php:1051:new phpmailer
./wp-includes/class-phpmailer.php:1061:new phpmailer
./wp-includes/class-phpmailer.php:1066:new phpmailer
./wp-includes/class-phpmailer.php:1075:new phpmailer
./wp-includes/class-phpmailer.php:1125:new phpmailer
./wp-includes/class-phpmailer.php:1161:new phpmailer
./wp-includes/class-phpmailer.php:1166:new phpmailer
./wp-includes/class-phpmailer.php:1199:new phpmailer
./wp-includes/class-phpmailer.php:1202:new phpmailer
./wp-includes/class-phpmailer.php:1266:new phpmailer
./wp-includes/class-phpmailer.php:1280:new phpmailer
./wp-includes/class-phpmailer.php:1836:new phpmailer
./wp-includes/class-phpmailer.php:1855:new phpmailer
./wp-includes/class-phpmailer.php:1971:new phpmailer
./wp-includes/class-phpmailer.php:2132:new phpmailer
./wp-includes/class-phpmailer.php:3025:new phpmailer
./wp-includes/class-phpmailer.php:3108:new phpmailer
./wp-includes/pluggable.php:247:new PHPMailer
san-sanych ()
Ответ на: комментарий от deep-purple

Шош ты под рутом то сидишь?

Да, настрою sudo - буду сидеть под ним, а пока лень каждый раз вводить пароль.

/wp-includes/pluggable.php стр. 247 и ниже, вот туда кодировку надо указать.

Вот файл ./wp-includes/pluggable.php

Сейчас буду смотреть.

san-sanych ()
Ответ на: комментарий от san-sanych

Попробуй поменять

$phpmailer->CharSet = apply_filters( 'wp_mail_charset', $charset );
на
$phpmailer->CharSet = 'utf-8';

Ну и вообще странно, у тебя wp не на utf что ли?

xtraeft ★★☆☆ ()
Последнее исправление: xtraeft (всего исправлений: 2)
Ответ на: комментарий от xtraeft

Поменял. На выходе тоже самое. В From было Михаил Михайлович.

Return-Path: <ideal747@gmail.com>
X-Original-To: newuser@magazin.pp.ua
Delivered-To: newuser@magazin.pp.ua
Received: from magazin.pp.ua (unknown [IPv6:::1])
        by mail.smila.org (Postfix) with ESMTP id AC737490156A
        for <newuser@magazin.pp.ua>; Thu, 26 Jun 2014 13:47:27 +0300 (EEST)
Date: Thu, 26 Jun 2014 10:47:27 +0000
To: newuser@magazin.pp.ua
From: =?utf-8?B?0JzQuNGF0LDQuNC7INCc0LjRhdCw0LnQu9C+0LLQuNGH?= <ideal747@gmail.com>
Subject: Re: My First Classified Ad 13.46
Message-ID: <b1c82eb47dcbf3a5c11494afa3eb52ff@magazin.pp.ua>
X-Priority: 3
X-Mailer: PHPMailer 5.2.7 (https://github.com/PHPMailer/PHPMailer/)
Reply-To: =?utf-8?B?0JzQuNGF0LDQuNC7INCc0LjRhdCw0LnQu9C+0LLQuNGHIDxpZGVhbDc0N0Bn?=@mail.smila.org,
        =?utf-8?B?bWFpbC5jb20+?=@mail.smila.org
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: base64
san-sanych ()
Ответ на: комментарий от san-sanych

Куда смотреть?

Первый камент в этом треде смотри.
И пиши в саппорт вордпресса топик в разделе этого плагина.

Или выкладывай в JOB предложение за тебя исправить твой глючный плагин.

Я пользую http://wordpress.org/plugins/send-e-mail/
У меня работает нормально.

Goury ★★★★★ ()
Ответ на: комментарий от Goury

И пиши в саппорт вордпресса топик в разделе этого плагина.

Т.е. проблема в Wordpress`e ? Не в той теме (Classipress), которая установлена поверх него?

Я пользую http://wordpress.org/plugins/send-e-mail/

Поставил его. Как настроить? Он никак себя не проявляет.

san-sanych ()
Ответ на: комментарий от san-sanych

Понятно с плагином (Send Email).
Но мне нужно, чтобы использовалась та форма обратной связи, которая в теме.

san-sanych ()
Ответ на: комментарий от san-sanych

Т.е. проблема в Wordpress`e ?

Проблема в прокладке, её кривых руках и слепых глазах. Особенно в последних, не могущих прочитать и понять фразу «топик в разделе этого плагина»

Он никак себя не проявляет.

Особенно в слепых глазах, не могущих прочитать пару абзацев текста на странице описания плагина.

/me источает ненависть в опасной концентрации.

Goury ★★★★★ ()
Ответ на: комментарий от san-sanych

Спасибо всем, кто участвовал в обсуждении проблемы!
Вопрос решен и тема закрыта.

san-sanych ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.