Почему не приходят письма с WordPress и как я это починил через SMTP
Настройка email в WordPress — это отдельный вид боли. Я долго не мог понять, почему письма с формы обратной связи не приходят. В спаме пусто, письма не отправляются. Оказалось, стандартная wp_mail() использует PHP mail(), который хостинги блокируют.
Проверил через WP Mail Logging — письма «отправлены», но никуда не доходят. Классика.
Решение: SMTP. Я использовал плагин WP Mail SMTP. Подключил через Яндекс.Почту (у меня домен на Яндексе). Ввёл SMTP-сервер, порт, логин, пароль. Включил шифрование TLS. Письма полетели.
Если нет Яндекс.Почты — используйте SendGrid или Mailgun. У них есть бесплатные тарифы на 100-200 писем в день. Для блога хватит за глаза.
Ещё важный нюанс: email от WordPress должен отправляться с доменного ящика (info@mysurik.ru). Если использовать gmail — письма могут попадать в спам из-за несовпадения домена отправителя.
Больше статей про WordPress — от установки до продвижения — я собрал в сводном гайде.
Расскажу подробнее, как я разобрался с доставкой писем в WordPress. Настройка email в WordPress — это отдельный вид боли. Я долго не мог понять, почему письма с формы обратной связи не приходят. Это одна из тех проблем, которые портят жизнь неожиданно: сайт работает, формы отправляются, а писем нет. И понять, в чём причина, не так просто. Поделюсь своим опытом, чтобы вы прошли этот путь быстрее.
Началось всё с того, что посетители стали писать мне через форму обратной связи. Точнее, они думали, что пишут: нажимали кнопку «Отправить», видели сообщение об успехе, а я ничего не получал. Первое время я думал, что просто мало обращений. Но когда подписчик написал, что уже дважды отправлял мне вопрос через форму — я насторожился. Начал проверять: в спаме пусто, в ящике пусто, письма не приходят. Типичная ситуация, которая сводит с ума.
Диагностика заняла время. Я проверил, работает ли вообще отправка. Установил плагин WP Mail Logging, который логирует исходящие письма. И вот что выяснилось: письма «отправлены» — в логе они есть, статус успешный. Но до моего ящика они не доходят. Классика жанра: WordPress считает, что отправил, а на самом деле письмо пропало где-то на пути. Это и есть та самая ловушка, в которую попадают многие. Логи говорят одно, реальность — другое.
Оказалось, причина в способе отправки. Стандартная функция wp_mail() использует PHP mail(), а хостинги его блокируют или ограничивают. Письмо создаётся, PHP пытается его отправить, но хостинг его выбрасывает. Поэтому и получается, что в логах всё «успешно», а реальных писем нет. Это проблема почти всех общих хостингов. И решается она одним способом — переходом на SMTP, то есть отправку через настоящий почтовый сервер, а не через системную почту PHP.
Решение я нашёл простое — плагин WP Mail SMTP. Это самый популярный плагин для настройки почты в WordPress. Устанавливается как обычный плагин, а дальше в настройках указываешь данные SMTP-сервера. Я подключил его через Яндекс.Почту, потому что у меня домен на Яндексе. Это удобно: почта домена уже настроена, осталось вписать данные в плагин. SMTP-сервер, порт, логин, пароль — четыре поля, и всё работает. Плюс включил шифрование TLS для безопасной передачи. И письма полетели.
Первое же тестовое письмо дошло за секунды. Я отправил себе проверочное письмо через форму — оно пришло мгновенно. Радость была огромная. Оказалось, что вся проблема была в одном неверном способе отправки, а решение заняло десять минут. С тех пор я не пропускаю ни одного обращения с формы. И главное — я узнал, что эту проблему можно было решить в первый же день, а не через месяц, если бы я заранее знал про SMTP.
Что делать, если у вас нет Яндекс.Почты? Есть альтернативы. Можно использовать SendGrid или Mailgun — сервисы рассылок, у которых есть бесплатные тарифы на сто-двести писем в день. Для блога этого хватит за глаза. Настраиваются они так же через WP Mail SMTP: выбираешь провайдера, вводишь API-ключ — и готово. Я бы посоветовал для начала попробовать почту своего домена, а если её нет — SendGrid или Mailgun. Выбор большой, варианты для любого бюджета.
Ещё один важный нюанс, который я вынес — про адрес отправителя. Email от WordPress должен отправляться с доменного ящика (info@mysurik.ru). Это критично. Если использовать gmail или другой посторонний ящик — письма могут попадать в спам из-за несовпадения домена отправителя. Почтовые серверы проверяют, с какого адреса приходит письмо, и если он не совпадает с доменом сайта — подозревают спам. Поэтому у меня адрес отправителя всегда с домена. Это повышает доставляемость и доверие.
Ещё стоит упомянуть про спам-фильтры. Даже с правильно настроенным SMTP часть писем может попасть в спам. Что помогает? Письма должны быть «честными»: понятный отправитель, читаемая тема, текст без спам-слов. Я стараюсь, чтобы письма с сайта выглядели нормально. И ещё помогает постепенное «прогрев» репутации: чем больше реальных писем проходит, тем лучше репутация домена. Это приходит со временем. Но с SMTP проблема со спамом становится гораздо меньше.
Проверка, которую стоит сделать после настройки. Я отправляю тестовое письмо с формы, потом проверяю, дошло ли оно, в какую папку попало. Иногда нужно заглянуть и в спам. Если письмо в спаме — проверяю настройки отправителя. Прогоняю пару тестов. Это пять минут, которые дают уверенность, что всё работает. Не пропускайте проверку: после настройки SMTP обязательно протестируйте, иначе можно думать, что всё починил, а проблема осталась.
Подведу итог. Письма с WordPress не приходят, потому что стандартная отправка через PHP mail() блокируется хостингами. Решение — SMTP через плагин WP Mail SMTP и почту вашего домена, SendGrid или Mailgun. Отправитель обязательно должен быть с доменного ящика. После настройки проверьте доставку тестовым письмом. Мой опыт показал: проблема решается за десять минут и забывается навсегда. Не мучайтесь с невидимой проблемой писем — настройте SMTP один раз, и форма обратной связи будет работать как надо.
Расскажу ещё о деталях, которые пригодятся при настройке почты. Первое — про лог отправки. Плагин WP Mail SMTP ведёт лог всех писем: видно, когда отправлено, дошло ли, были ли ошибки. Это бесценно при диагностике. Я столкнулся с ситуацией, когда письма падали из-за ошибки авторизации на SMTP-сервере — лог сразу показал проблему. Без лога я бы искал ошибку часами. Включите логирование — оно окупится.
Второе — про резервные почтовые сервисы. WP Mail SMTP позволяет настроить несколько SMTP-провайдеров: если основной не работает, письма уходят через резервный. Это страховка на случай сбоя. Я настроил резервный вариант на всякий случай. Письма стали доставляться даже когда основной сервис давал сбой. Надёжность доставки — это то, о чём стоит позаботиться заранее, а не после потери писем.
Третье — про DKIM и SPF. Эти технологии подтверждают, что письма действительно отправляются с вашего домена, и повышают доставляемость. Яндекс и другие почтовые сервисы позволяют настроить DKIM и SPF в настройках домена. Я настроил оба — и количество писем, попадающих в спам, заметно снизилось. Если вы настраиваете SMTP серьёзно — разберитесь с DKIM и SPF. Это залог того, что почта будет доходить.
Четвёртое — про тестирование через сервисы проверки. Есть сервисы, которые анализируют письма и показывают, насколько они «легитимны» для почтовых фильтров. Я прогонял тестовые письма через такие сервисы и смотрел, что они сообщают. Это помогло выявить проблемы с настройками до подписчиков. Проверка письма перед массовой отправкой — хорошая привычка. Пятнадцать минут проверки избавляют от письма, которое никто не получит.
Пятое — про уведомления. WordPress отправляет письма не только из форм, но и по событиям: сброс пароля, новые комментарии, обновления. Все эти письма тоже идут через SMTP после настройки. Я раньше терял и их. После настройки SMTP все уведомления стали доходить. Настройка почты — это не только формы, это вся почтовая система сайта. Проверьте, что все типы писем доставляются.
Ещё одна деталь — про скорость доставки. SMTP-письма доставляются практически мгновенно. Раньше, если письмо и доходило, то с задержкой. Теперь уведомления приходят сразу. Это важно для форм: человек отправил вопрос — вы получаете его через секунду. Для бизнеса скорость ответа критична. Настройка SMTP ускорила мою реакцию на обращения. Ещё один плюс в копилку перехода на SMTP.
И напоследок — про то, что не нужно бояться сложности. Настройка SMTP кажется пугающей, но на деле это десять минут в плагине. Вы заполняете несколько полей — и всё работает. Если что-то не получается — в интернете тысячи гайдов, и плагин сам подсказывает. Я потратил на настройку меньше времени, чем на диагностику проблемы. Не откладывайте настройку почты на потом — сделайте её сразу, и у вас не будет проблем, которые были у меня.
Ещё пара важных моментов. Первое — про хранение пароля. В настройках SMTP хранится пароль от почтового ящика. Не светите его нигде: не выкладывайте скриншоты настроек, не публикуйте в логах. WP Mail SMTP шифрует пароль в базе, но лучше не рисковать. Я храню доступ к почте аккуратно. Безопасность почтового ящика — это безопасность всего сайта, ведь через почту можно восстановить пароль от админки.
Второе — про обновления плагина. WP Mail SMTP регулярно обновляется, и обновления важны: исправления, новые функции, совместимость. Я держу плагин актуальным. Перед обновлением делаю резервную копию, на случай, если что-то сломается. Обновление почтового плагина — рутина, но не пренебрегайте ей. Актуальный плагин — стабильная доставка писем.
И третье — про то, чтобы не забыть про тестовое письмо после обновлений. После любого обновления WordPress или плагинов я отправляю тестовое письмо. Это проверка, что почта продолжает работать. Пару кликов — и спокойствие. Автоматизируйте себе привычку проверять почту после обновлений. Тогда сюрпризы будут редкостью, а письма — всегда в ящике.
Коротко: настройте SMTP — и забудьте о пропавших письмах навсегда. Это простая, быстрая и надёжная процедура. Письма с вашего сайта наконец-то будут доходить до адресата. Удачи!