На днях вышел WordPress 3.4, об этом мы писали в нашем обзоре. С множеством новых функций и возможностей пришла и одна неприятность: не работают почтовые уведомления WordPress. То есть, при добавлении нового пользователя на сайте или при любом другом действии, инициализирующем отправку почтового уведомления, к вам на почту просто не придет ожидаемое письмо. В этом кратком руководстве я покажу вам, как исправить это.

PHPMailer

Проблема кроется вот в чем: в дистрибутив WordPress включен open-source компонент PHPMailer, который отвечает за работу почтовых уведомлений.

Но, как видно из официального списка внесенных изменений в WordPress 3.4, этот компонент был обновлен до версии 5.2.1.

Патч

WordPress файл, который содержит код компонента PHPMailer, находится в папке
\wp-includes\class-phpmailer.php

Наличие параметра $params в 763-ей и 769-ой строчках кода, собственно, и приводит к неработающим корректно почтовым уведомлениям.

Оригинальный код:

Исправленный код:

Загрузка исправления

Скачать исправленный файл вы можете по ссылке ниже:

| Скачать патч |

Просто распакуйте архив и загрузите по FTP файл class-phpmailer.php в каталог
\wp-includes\ на вашем сайте.

Наши специалисты также обратились к официальной поддержке WordPress с просьбой включить найденное ими решение проблемы в следующий дистрибутив WordPress 3.4.1.

Следить за всеми другими предложенными исправлениями в WordPress 3.4.1 вы можете здесь.

Вам понравился материал?

Добавить комментарий

Такой e-mail уже зарегистрирован. Воспользуйтесь формой входа или введите другой.

Вы ввели некорректные логин или пароль

Извините, для комментирования необходимо войти.

31 комментарий

сначала новые
по рейтингу сначала новые по хронологии

А у меня так и не приходят

У меня тоже стоит плагин комментирования Decomments.
Так если он включен, то:
Приходят только ответы к комментарию.
Не приходят новые комментарии к посту.
А еще пропали стандартные оповещения на почту админа, когда "Кто-нибудь оставил комментарий".

Как исправить?

В версии 3.8, при отправки письма, выдает ошибку - wp-includes/class-phpmailer.php on line 737

Екатерина

Здравствуйте, у меня возникла проблема с контактной формой на сайте. Пишет, что сообщение отправлено, а на почту ничего не приходит. Помогите решить проблему.

Поставьте плагин контактной формы Contact Form 7

Здравствуйте!

У меня Wordpress 3.51, сайту месяц. Как неделю настроил его и ничего не менял, как вдруг письмо с хостинга "Здравствуйте. Система мониторинга обнаружила рассылку большого кол-ва писем с вашего сайта javdele.com.

Ваш сайт отключен: каталог javdele.com переименован в javdele.com.off
Пожалуйста, устраните проблему и переименуйте каталог обратно."

-Спросил откуда именно идет рассылка - "Рассылка производилась с помощью скрипта: wp-includes/class-phpmailer.php"
После установки не менял настройки этого файла... Был только плагин контактной формы Contact Form 7. Но рассылка не с него.

Пожалуйста подскажите как исправить!

Скорее всего ваш сайт был взломан. Попробуйте установить последнюю версию файла phpmailer.php, если таковая имеется, также во избежание подобных атак в дальнейшем желательно настраивать .htaccess на запрет видимости определенных подкаталогов и пользоваться плагинами безопасности.

файл phpmailer.php просто заменить новым? А где можно такой найти?

На сайте в целях безопасности использовал плагин Login LockDown,Secure WordPress, WP-Security, в total commander пароль и сессию не сохранял... Можете еще посоветовать что-то для увеличения уровня безопасности

В этой статье описано где взять phpmailer, а подробнее о безопасности читайте в нашем разделе уроков: http://wpcafe.org/wp_super_faq/optimizatsiya-sayta-seo-bezopasnost/

Нашел где скачать - "Скачать патч". Но у меня WordPress 3.5.1., а там вроде для WordPress 3.4.1. Востановил файл с backup. Спасибо за помощь. Добавлю ваш сайт в закладки - вероятно что теперь я буду часто заходить)
А возможно заразится от плагина скачанного с не официального сайта и установленного на соседний сайт WordPress на моем аккаунте хостинга?

Нет, это крайне маловероятно.

проверил зараженный файл /class-phpmailer.php и сравнил с вашим,а так же сравнил с файлом из backup и количество символов одинаковое. Странно...

Aristov Aleksandr

Добрый День ! У меня ВП версия 3.5.1 При регистрации нового пользователя сообщение приходит. Сообщения об оставленных комментариях нет, письмо с паролем тоже не приходит. Мне сказали нужно зарегистрировать у меня на хосте почтовый адрес и куда то его вписать в ВП. Не подскажите где именно его нужно указать.
Заранее Спасибо !

Поищите в гугле Почта на домене. Вам нужно создать почту на вашем домене и пользоваться ей для получения комментариев и прочих уведомлений.

Aristov Aleksandr

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

Leonking2000

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

Пока еще не пробовала исправить, но думаю, что должно заработать. Как сделаю, сообщу о результате

Спасибо! как раз столкнулась с этой проблемой для версии 3.4.1

Вышла версия 3.4.1, можно не париться уже :)

Как раз сделал сайт на 3,4. В контакты поставил ContactForm 7 и cforms а почта не отправлялась. Поставил P-Mail-SMTP — тот же результат. Гуглить пока руки не дошли, а тут сразу готовый патч, установил и все заработало. Thanks!

Здравствуйте.. Вы ошиблись в админке.. когда зайти на site.com/wp-admin, то у вас пишет не WordPress, а WordPres

Уточните пожалуйста, где именно в админке и на каком сайте?

http://wordpresso.org/wp-admin/

Здесь все правильно написано, не могу понять, что вы имеете в виду?

ну вот смотрите фото - пишет WordPres.. а должно быть WordPress

а почему у меня показывает без so?

У меня работает на WP 3.4 и без патча, как при регистрации нового пользователя, так и при отправке уведомлений, так и при отправки письмо из контактной формы

wp 3.4 apache 2.4.2 php 5.4.4 nts (Safe Mode Off)

Данная проблема имеет место при safe mode on, мы просто умолчали об этом в обзоре, т.к. в половине случаев на хостинге этот режим включен, в другой половине - нет.