Skip to content

Не приходят письма от WooCommerce на Mail.ru

Недавно пришлось столкнуться с интересной ситуацией: сайт работает под управлением WordPress, с плагином WP Mail SMTP, соответственно было настроено соединение по SMTP, чтобы правильно и должным образом доставлялись письма-оповещения о новых заказах от плагина для интернет-торговли WooCommerce.

Письма приходили на сервера Gmail, но совсем отсутствовали в почтовом ящике от Mail.ru (папка для спама тоже была пуста). Тогда то и пришлось немного загорячиться и благодаря советам своего коллеги Геннадия Ковшенина быстро получилось разобраться с этой проблемой. Поэтому чтобы сэкономить время людей, которые могут оказаться в подобной ситуации я постараюсь описать все в этой заметке.

Не секрет что все письма с сайта на WordPress используют системный транспорт в лице функции  wp_mail(), которая в свою очередь работает на библиотеке PHP, следовательно в заголовках мы можем передать все что угодно, например, в качестве почтового адреса отправителя указать ложный адрес почты, который не будет иметь цифровой подписи естественно. Это может быть существенным недостатком во многих ситуациях, особенно если у Вас интернет-магазин. Рассматривать мы их не будет.

Поэтому существует прекрасный плагин который перехватывает отправку письма и благодаря другому протоколу передачи (SMTP) авторизуется за Вас в подключенном почтовом аккаунте и уже отправляет письмо. Вот здесь то уже будет и подпись и соответственно — доверие у получателя и вряд ли такое письмо окажется в папке СПАМ, потому что, как я уже упоминал выше, будет содержать цифровую подпись, которая как бы, гарантирует отправку непосредственно из ящика, а не стандартной функцией PHP 🙂

Познакомится с настройкой плагина можно по этой ссылке

Так в чем же была проблема? Спросите Вы…

Не стоит забывать, что это частный случай и данное решение не панацея, но тем не менее будет вероятней всего.

И так, если не приходят письма или в служебном режиме плагина при отправке вместо ожидаемого true возвращается false, то рекомендуются следующие действия:

Вернул плагин

  • Если в качестве сервера используется smtp.gmail.com, то тут нас поджидает первая проблема. Во-первых, в целях безопасности Google запрещает сторонним приложениям осуществлять вход в Ваш аккаунт и поэтому стоит убедиться, что в настройках у вас стоит разрешение для доступа ненадежным приложениям (этим самым Вы делаете Ваш аккаунт более уязвимым, понимайте это)

Разрешения для ненадежных приложений

во-вторых, и это еще не все! Тема была рассмотрена на форуме WordPress, где пользователь sockscap64, за что ему выражаю отдельное спасибо, отметил что требуется еще таким образом подтвердить свое действие выбранное ранее и проследовать по этой ссылке https://accounts.google.com/DisplayUnlockCaptcha — после этого доступ приложения к Gmail будет беспрепятственный и письма отправляться должны (отмечу что это в том случае, если Вы решили задействовать для транспортировки писем сервера Gmail и настроив верно плагин письма не отправляются)

  • А теперь рассмотрим вероятную проблему почему сервера Mail.ru вообще отказываются принимать и доставлять Вам письма. Проблема, как я уже отмечу состояла на данный момент только в этом, так как на другие почтовые сервера письма приходили.

Проблема: на ящики MAIL.RU не приходит почта

Вот под таким заголовком встретилась аналогичная проблема и дискуссия, но только сообщества CMS Drupal, но так как обе CMS написаны на PHP, тема была изучена. Всем помогла настройка SMTP, но у нас уже он был настроен! Тогда был задействован прекрасный сервис для отслеживания и анализа доставки электронных писем.

Сервис тестирования

Все достаточно просто, сгенерированный адрес почты Вы копируете и добавляете в число получателей, после отправки письма кликаете на сайте по кнопке проверки и смотрите расширенный анализ и оценки на том или ином этапе.

Сервис www.mail-tester.com/

Вообщем оказалось, что IP адрес сервера хостера был в «черных списках» и почтовый сервис mail.ru, видимо, руководствуясь этими списками попросту не пропускал это письмо 🙂 Хостинг был недорогим shared-хостингом, где могла быть еще порядком нескольких десятков сайтов и всех их объединял соответственно один IP адрес, возможно кто то делал спам-рассылку и этот «айпишник» попал в «черные списки», вот и все …

Проверить айпи-адрес можно, например, по этой ссылке

Как решить проблему?

Ну, во-первых, можео попросить вежливо хостинг-провайдера переместить ваш сайт на другой IP, но это не гарантирует что проблема решится, как более надежный вариант — это приобретение для сайта отдельного IP-адреса или сервера, что повлечет естественно дополнительные растраты.

Логотип компании Axoft
Логотип компании Timeweb
Логотип компании Ozon
Логотип компании Nethouse
Логотип компании CreativeMarket
Логотип хостинг-компании Pressjitsu