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

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

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

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

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

Как проверить работу функции отправки mail

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

Дальше кидаете в корень сайта и открываете в браузере «вашсайт/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 и внести следующие изменения. (ниже представлен не весь код этого файла, а только то что изменили).

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

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

 

Если Вам помог материал, самое время подписаться на обновления!
Подписчик — это более высокий статус пользователя, которому доступны выпуски всех рубрик. После подписки на блог, вы будете в курсе последних изменений, а также сможете получать на почту полноценные бесплатные мини-курсы по созданию, продвижению и ведению сайта!
24 комментария к статье Проблемы отправки почты в wordpress (Решено)

Ваш email не будет опубликован.

  • Танкобаза
    Танкобаза Ноябрь 1, 2015 в 23:34
    http://tanki.of.by/

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

    Ответить
    • Дмитрий
      Дмитрий Ноябрь 2, 2015 в 01:26

      Туда, туда…
      Вы уже попробовали простейшие решения?

      Ответить
      • Танкобаза
        Танкобаза Ноябрь 2, 2015 в 06:10
        http://tanki.of.by/

        Знать бы простейшие решения, нет не пробовал, я их незнаю….

        Ответить
        • Дмитрий
          Дмитрий Ноябрь 2, 2015 в 13:36

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

  • Танкобаза
    Танкобаза Ноябрь 2, 2015 в 21:45
    http://tanki.of.by/

    Ок, спасибо, попробую, отпишусь

    Ответить
  • Танкобаза
    Танкобаза Ноябрь 3, 2015 в 09:38
    http://tanki.of.by/

    Хм, написал хостеру, оказалось что функция отключена, включили, протестировал, все нормально работает, спасибо.

    Ответить
    • Дмитрий
      Дмитрий Ноябрь 3, 2015 в 11:49

      Пожалуйста)

      Ответить
  • kirsha
    kirsha Ноябрь 22, 2015 в 02:34

    у моего хостера маил работает, но письма все равно не отправляться, при попытке отправить ерез smtp, вылетает ошибка 500, пробовал сервера yandex, гмаил и сервер хостера везде результат один и тот же

    Ответить
    • Дмитрий
      Дмитрий Ноябрь 22, 2015 в 18:42

      Какой способ отправки через smtp Вы выбрали? Плагин, или изменение кода?

      Ответить
      • kirsha
        kirsha Декабрь 25, 2015 в 18:23

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

        Ответить
        • Дмитрий
          Дмитрий Март 15, 2016 в 21:31

          Замаскировать не представляю возможным, а вот сделать можно многое)) Об этом лучше напрямую спросить техподдержку хостинга

  • Петров
    Петров Январь 29, 2016 в 08:23

    Спасибо

    Ответить
  • Сергей
    Сергей Март 9, 2016 в 16:07
    http://megadevice.kz

    где открыть файл class-phpmailer.php

    Ответить
    • Дмитрий
      Дмитрий Март 15, 2016 в 21:29

      Домашний каталог, wp-includes/class-phpmailer.php — хотя я думаю вы уже нашли.

      Ответить
  • Алексей
    Алексей Июль 11, 2016 в 17:29
    http://voentorg.xyz

    не совсем понятно, вернее совсем не понятно, куда именно в файл вносить изменения (в какую часть кода) и что именно вносить, то. что у вас выделено оранжевым? или что именно?

    Ответить
    • Дмитрий
      Дмитрий Июль 11, 2016 в 18:03

      Советую воспользоваться плагином, потому как файл class-phpmailer.php поменялся с версии 4.4 точно. Выделенное оранжевым — это комментарии в коде.

      Ответить
  • Слава
    Слава Июль 16, 2016 в 20:19
    http://crazy-shark.esy.es

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

    Ответить
    • Дмитрий
      Дмитрий Июль 17, 2016 в 22:42

      Проверьте какая ошибка возникает в результате отправки, включите режим отладки WP.

      Ответить
  • Слава
    Слава Июль 24, 2016 в 14:55
    http://ditkam-if.pe.h

    Установил плагин, сделал на хостингере 2 почты, одна обычная, одна вордпресс@домен.
    С почты на другие почты отправляются письма, а при регистрации на сайте не отправляются, пробовал в настройках вписывать обе почты. Тестовое письмо выдает ошибку 500

    Ответить
    • Дмитрий
      Дмитрий Июль 25, 2016 в 15:29

      Ответ тот же, включите режим отладки
      Чтобы включить WP_DEBUG, просто добавьте следующий код в ваш файл wp-config.php:
      define( 'WP_DEBUG', true );

      Ответить
  • Владимир
    Владимир Август 21, 2016 в 01:46

    А у меня вообще странная проблема. Письма администратору (мне) приходят. А новому пользователю нет.
    При регистрации я получаю письмо о том что новый пользователь зарегистрировался, а пользователю письмо с подтверждением не приходит.
    Если мне приходят письма на ящик gmail, значит mail() включена?

    Ответить
    • Дмитрий
      Дмитрий Август 23, 2016 в 00:32

      Да все верно. Если Вы получаете письма, то функция включена и работает. Если не приходят письма пользователю нужно смотреть настройки. Возможно что то отключено.

      Ответить
  • Майк
    Майк Апрель 11, 2017 в 19:43

    Спасибо помогло!!

    Ответить
    • Дмитрий
      Дмитрий Апрель 11, 2017 в 20:16
      https://wpfix.ru

      Пожалуйста)

      Ответить

header-objectWPFIX.ru © 2013 - 2017.

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