fbpx

Проблемы отправки почты в wordpress

Сегодня хочется поговорить об одной очень распространенной проблеме, с которой очень часто сталкиваются веб-мастера использующие CMS WordPress. Проблема с отправкой почты (а лучше сказать ее не отправкой). И меня ждало такое же разочарование на одном из сайтов (пользователям не приходили письма для активации аккаунта). В статье описаны самые распространенные пути решения данной проблемы.

Оглавление

1 Как проверить работу функции отправки mail
2 Плагин Configure smtp (настройка)
3 Плагин Postman SMTP (настройка)
4 Добавить код в class-phpmailer.php

Чаще всего жалуются на то, что им на почту не приходят уведомления о новых комментариях, бекапы базы данных, или не приходит письмо с логином и паролем при новой регистрации.
За отправку почты в WordPress отвечает php функция mail (), с работой которой на некоторых хостингах возникают проблемы. Для начала опишу несколько простейших решений проблемы:

Во первых, поинтересуйтесь у вашего хостера, включена ли у вас такая функция mail ().
Во-вторых, убедитесь, что в вашем профиле администратора указан e-mail адрес
И в-третьих, попробуйте создать на хостинге почту вида wordpress@ваш_домен (например wordpress@wpfix.ru). Во всех письмах, отправляемых из worpress, в строке отправителя стоит именно этот адрес, но некоторые хостинги не дают отправить письмо с таким мылом, если фактически на сервере его нет, или просто блокируют подобный исходящий трафик.

Если после вышеперечисленных действий почта все еще не отправляется, тогда можно заставить сайт на wordpress отправлять ее через smtp сервер. Для этого можно пойти двумя путями: с помощью плагина — приведу пример использования 2 плагинов, и с помощью внесения изменений в код.
Как проверить работу функции отправки mail

Создайте файл с названием mail.php (в блокноте) в него вставьте код что ниже (почту поставьте свою)

<?php
// Сообщение

$message = «test php mail»;

// На случай если какая-то строка письма длиннее 70 символов мы используем wordwrap()

$message = wordwrap($message, 70);

// Отправляем

mail(‘почта@yandex.ru’, ‘My Subject’, $message);

?>

 

Дальше кидаете в корень сайта и открываете в браузере «вашсайт/mail.php» на почту должно прийти письмо ,если придет, тогда проблема связана с настройкой именно вашего сайта, если не приходит (обязательно проверьте папку спам) тогда обращайтесь к хостеру или используйте SMTP. Как использовать — читайте ниже.

Плагин Configure smtp (настройка)

Ищется в 2 клика — легкий и имеет мало настроек, а если вы используете гуглопочу, то вам вообще нужно ввести только адрес почты и пароль к ней, а плагин сам подставит все настройки.

Как я сказал выше, если вы используете почту Google, то вам необходимо поставить галку Send e-mail via Gmail и заполнить поля SMTP username и SMTP password. Далее сохраняете настройки и нажимаете кнопку “Отправить тестовое письмо” и ждете, пока письмо придет вам на почту. Причем придти оно должно по адресу, указанному в вашем профиле администратора, а ящик, который вы указали в плагине, является как-бы транзитным, то есть используется только для реализации отправки писем через smtp.

Если вы используете почту на другом сервисе, отличном от Google, то вам, помимо логина и пароля необходимо указать и другие настройки (галку Send e-mail via Gmail уже ставить не нужно)

 

В полях SMTP host и SMTP port указываете соответственно сервер и порт вашего почтового сервиса. Далее по желанию можно указать следующие настройки. Wordwrap length — количество символов в письме до переноса строки. Sender e-mail и Sender name это адрес отправителя, который будет показываться в строке «От» и имя отправителя. Если же не указывать эти параметры, то они по-умолчанию будут браться из настроек вашего блога. Например для яндекса нужно указать хост smtp.yandex.ru порт 465 префикс ssl , поставить галочку авторизации и ввести логин и пароль.

13072014-screen002

Изначально я использовал этот плагин, но время не стоит на месте) Протестировав еще несколько плагинов решил воспользоваться плагином Postman, уж больно приглянулся мне.

Плагин Postman SMTP (настройка)

Настройка очень проста и выполняется в несколько кликов:

Отправка почты SMTP

Плагин WordPress smtp Postman SMTP Настройка Postman SMTP Настройка Postman SMTP

Отличительная особенность плагина это удобное логирование почты отправляющейся с вашего сайта, что является огромным плюсом в отслеживании работы исходящей почты.

Настройка Postman SMTP

 

Добавить код в class-phpmailer.php

Не работает с версией выше 4.4.

Если же вы не хотите нагружать свой движок дополнительными плагинами, тогда можно решить проблему, добавив изменения в код. Для этого необходимо открыть файл wp-includes/class-phpmailer.php и внести следующие изменения. (ниже представлен не весь код этого файла, а только то что изменили).

 

var $From = «сюда вписываем e-mail»;

/**
* Method to send mail: («mail», «sendmail», or «smtp»).
* @var string
*/
var $Mailer = «smtp»;

/////////////////////////////////////////////////
// SMTP VARIABLES
/////////////////////////////////////////////////

/**
* Sets the SMTP hosts. All hosts must be separated by a
* semicolon. You can also specify a different port
* for each host by using this format: [hostname:port]
* (e.g. «smtp1.example.com:25;smtp2.example.com»).
* Hosts will be tried in order.
* @var string
*/
var $Host = «smtp.ваш_smtp_сервер.ru»;

/**

* Sets Mailer to send message using SMTP.

* @return void

*/

function IsSMTP() {

$this-&gt;Mailer = «smtp»;

}

/**

* Sets Mailer to send message using PHP mail() function.

* @return void

*/

function IsMail() {

$this-&gt;Mailer = «smtp»;

}

/**

* Sets Mailer to send message using the $Sendmail program.

* @return void

*/

function IsSendmail() {

$this-&gt;Mailer = «smtp»;

}

/**

* Sets Mailer to send message using the qmail MTA.

* @return void

*/

function IsQmail() {

$this-&gt;Sendmail = «/var/qmail/bin/sendmail»;

$this-&gt;Mailer = «smtp»;
}

 

 

Минусом такого решения служит то, что при обновлении WordPress придется заново править код. Лично для меня использование плагина является наилучшим решением). Да и не сильно этот плагин нагружает сайт.

Надеюсь после перечисленных действий проблемы с отправкой почты в wordpress исчезли).

wpfix.ru


Comments (1)

by Евгения
1 месяц ago

Перезвоните пожалуйста по телефону 8(495)248-01-88 Евгения

Leave a comment