БлогWordpressРешение проблемы отправки почты в wordpress

Решение проблемы отправки почты в wordpress

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

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

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

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

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

В первом случае я советую использовать плагин Configure smtp, так как он легкий и имеет мало настроек, а если вы используете гуглопочу, то вам вообще нужно ввести только адрес почты и пароль к ней, а плагин сам подставит все настройки.

Плагин Configure SMTP

Как я сказал выше, если вы используете почту 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 это адрес отправителя, который будет показываться в строке «От» и имя отправителя. Если же не указывать эти параметры, то они по-умолчанию будут браться из настроек вашего блога.

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

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->Mailer = "smtp";

}

/**

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

* @return void

*/

function IsMail() {

$this->Mailer = "smtp";

}

/**

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

* @return void

*/

function IsSendmail() {

$this->Mailer = "smtp";

}

/**

* Sets Mailer to send message using the qmail MTA.

* @return void

*/

function IsQmail() {

$this->Sendmail = "/var/qmail/bin/sendmail";

$this->Mailer = "smtp";

}

После всех вышеперечисленных действий проблемы с отправкой почты в wordpress, должны исчезнуть. Не забывайте подписываться на обновления моего блога. Желаю удачи! 🙂

Понравилась статья? Подписывайтесь на мой RSS канал rss канал, следите за мной в Твиттере , или получайте статьи по почте:

23 отзыва к записи "Решение проблемы отправки почты в wordpress"

  1. Андрей

    Плагином много проще все это сделать!

    • Seostager
      я не сторонник использования большого количества плагинов на блоге
  2. cyrus

    поставил плагин wp mail smtp. отправил тестовое письмо, все работает. но, не отправляет «Оповещение о новых комментариях по почте». в чем может быть проблема?

    • Seostager
      а до этого отправлялись?
      • cyrus

        до этого вообще не пробовал эту функцию. как то не нужно было тогда, так что не могу сказать точно

        • Seostager
          в настройках обсуждений эта функция включена?
  3. Роман

    Ура! 😯 После установки плагина всё отправляется!!! Спасибо!!!

  4. mishuta 2012

    Спасибо за такую полную подборку и доступные объяснения по решению проблемы отправки почты в wordpress. Для гугловской почты самым простым решением оказался плагин. Если вносить изменения в код, то надо еще помнить, что после обновления версии движка их надо снова повторять 🙂

  5. Вячеслав

    Не знаю! У меня ни каких таких проблем не возникает!

  6. Сергей

    У меня тоже никогда не возникало проблем с отправкой почты. Все всегда работало без ошибок.

  7. Денис

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

  8. Murlakatam

    WordPress стоит на локальном сервере. Поставил плагин Configure SMTP. Настроил через gmail. Тестовое сообщение уходит нормально, а уведомления о новых комментариях не приходят. Оба чекбокса в пункте «Отправить мне письмо когда» в настройках «Параметры/Обсуждения», включены. Удалось решить проблему только повесив хук на comment_post и посылать уведомление с помощью wp_notify_postauthor.
    Кто-нибудь сталкивался с подобным? Не хотелось бы оставлять с костылем.

  9. Вячеслав

    Большое спасибо за информацию! Выручил плагин 😉

  10. Игорь

    Доброго времени суток. Есть проблема, не отправляется пароль при регистрации с телефона. Если регистрируешься с компа, то все в порядке, а с телефона приходится, в лучшем случае, долго ждать. Как решить, подскажете? Спасибо заранее.

  11. Андрей

    Здравствуйте!!!Большое спасибо за хорошую статью.Плагин очень удобный и простой в настройках.От меня-респект автору.

  12. Виктор

    Автору большое спасибо! Плагин реально работает. На версии WP 3.9.1 все отлично работает. Подключал на хостинге TimeWeb, почта Яндекс (выставил порт 465, SSL, авторизацию SMTP auth).

  13. Gwean

    Спасибо, наконец-то настроил. С плагином все прекрасно работает через Gmail.

  14. Биг-Танк

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

  15. Алексей

    Все пишут о хостингах. А напишите настройки для локального сервера. Как настроить самому эту php функцию mail(). Чтоб работало без всяких плагинов.

  16. Игорь

    Ваши правки в файле исчезнут при первом обновлении ядра.

  17. Елена

    Спасибо за подробный разбор. WordPress не отправляет письма, натсройка smpt не помогла. Даже тестовое письмо не приходят, хотя все натсроено верно. Что еще может быть? кто-то сталкивался? подскажите, пожалуйста!

Оставить свой отзыв


  • Использую
  • По месяцам
  • GoGetLinks - лучшая биржа для продажи и покупки вечных ссылок.
  • Beget - один из лучших хостингов России по всем показателям.
  • Sape - ссылки все еще работают. Лучшая биржа временных ссылок и не только.
  • 2domains - очень дешевые домены для ваших сайтов. Надежный сервис - пользуюсь сам.
  • Блогун - лучший сервис для размещения постовых и обзоров на блоге.