WordPress не отправляет письма: как проверить SMTP, хостинг и плагины форм

WordPress не отправляет письма? Узнайте, как проверить SMTP, хостинг и плагины форм. Практическое руководство по восстановлению отправки писем.

Коротко: WordPress не отправляет письма: Проверьте, включена ли функция mail() на хостинге, настройте SMTP через плагин WP Mail SMTP и протестируйте форму. В 90% случаев проблема решается без правки кода.

Когда WordPress не отправляет письма, пользователи не получают уведомления, пароли или данные форм. Причина может скрываться в ограничениях хостинга, отсутствии SMTP или конфликтах плагинов.

Основные причины

Причина Что это значит
Хостинг блокирует функцию mail() Виртуальный хостинг часто отключает стандартную PHP‑функцию из-за риска спама, из‑за чего WordPress не может отправить ни одно письмо.
Отсутствует SMTP-настройка По умолчанию WordPress использует PHP mail, которая не обеспечивает аутентификацию и попадает в спам или блокируется почтовыми серверами.
Почтовый сервер хостинга в чёрных списках IP‑адрес сервера хостинга может быть занесён в спам‑базы, из‑за чего письма не принимаются получателем.
Конфликт плагинов форм Плагины контактных форм или тем могут перехватывать отправку, использовать некорректные заголовки или вызывать фатальные ошибки.
Неверный адрес отправителя Если поле «От кого» не совпадает с доменом сайта или настройками почтового сервиса, письма отклоняются как поддельные.
Ограничения почтового провайдера Бесплатные ящики (Gmail, Яндекс) вводят дневные лимиты на отправку, требуют двухфакторную аутентификацию или пароли приложений.

Что проверить сначала

  • Создайте тестовый PHP‑файл с кодом mail() и проверьте, приходит ли письмо — если нет, хостинг блокирует функцию.
  • Включите журнал ошибок WordPress: добавьте в wp-config.php define('WP_DEBUG', true); define('WP_DEBUG_LOG', true); и изучите файл debug.log в папке wp-content.
  • Откройте вкладку «Отправка тестового письма» в настройках используемого SMTP‑плагина и проверьте результат.
  • Проверьте папку «Спам» у получателя и настройки фильтрации почтового сервиса (например, при использовании Яндекс.Почты).
  • Убедитесь, что в плагине формы в поле «От кого» указан адрес на вашем домене, а не пользовательский.
  • Временно отключите все сторонние плагины и переключитесь на стандартную тему WordPress, чтобы исключить конфликт.
  • Посмотрите логи хостинга (через панель управления) на предмет ошибок доставки или превышения лимитов отправки.
  • Проверьте, не блокирует ли почтовый провайдер письма из‑за отсутствия SPF, DKIM и DMARC‑записей — это можно сделать через бесплатные онлайн‑инструменты.

Пошаговое решение

  1. Создайте в корне сайта файл mailtest.php с кодом и откройте его в браузере. Если письмо не пришло, функция заблокирована.
  2. Включите логирование ошибок WordPress в wp-config.php: define('WP_DEBUG', true); define('WP_DEBUG_LOG', true); и воспроизведите отправку формы, затем проверьте /wp-content/debug.log.
  3. Установите плагин WP Mail SMTP (или аналогичный) через меню «Плагины → Добавить новый». Активируйте и перейдите в его настройки.
  4. Выберите способ отправки: «Другой SMTP», если используете почтовый ящик хостинга, или «Gmail»/«Яндекс» с последующей аутентификацией. Заполните параметры — хост, порт, шифрование, логин и пароль (для Gmail потребуется пароль приложения).
  5. Сохраните настройки и перейдите на вкладку «Тестовое письмо» в плагине. Отправьте письмо на свой адрес. Если ошибка — плагин покажет подробности в логах.
  6. Настройте SPF‑запись в DNS вашего домена: добавьте TXT‑запись вида v=spf1 a mx include:_spf.вашхостинг.ру ~all (точные значения уточните у хостинга). При использовании внешнего SMTP‑сервиса добавьте include для него.
  7. Создайте DKIM‑подпись: сгенерируйте ключ в панели хостинга или почтового сервиса и добавьте TXT‑запись по инструкции сервиса. Это повысит доверие к письмам.
  8. В плагине формы найдите поле «От кого» (From Email) и замените адрес на принадлежащий вашему домену, например info@вашсайт.ru. Никогда не используйте адрес пользователя, заполнившего форму, в качестве отправителя.
  9. Выполните тест на конфликт: переключите тему на Twenty Twenty-Four и отключите все плагины, кроме SMTP и конструктора форм. Проверьте отправку. Если проблема исчезла, включайте плагины по одному для поиска виновника.
  10. Если сайт использует кеширование (WP Rocket, LiteSpeed Cache), очистите весь кеш и добавьте исключение для страниц с формами, чтобы не кешировались динамические запросы отправки.
  11. При превышении лимитов хостинга рассмотрите переход на транзакционный сервис (Mailgun, SendGrid) — в настройках SMTP‑плагина укажите их API‑ключ вместо учётных данных почтового ящика.
  12. Проверьте, не блокирует ли брандмауэр или security‑плагин исходящие запросы на порты 25/465/587; при необходимости добавьте SMTP‑хосты в исключения.
AI-инструмент

Проверить ошибку WordPress

Введите ошибку WordPress, PHP, плагина, темы, REST API или кратко опишите проблему сайта.

FAQ

Почему WordPress не отправляет письма после переезда на новый хостинг?

Скорее всего, на новом хостинге отключена функция mail() или изменились требования к SPF‑записи. Настройте SMTP через плагин с параметрами нового почтового сервера и обновите DNS‑записи.

Какой SMTP‑плагин лучше всего для WordPress?

WP Mail SMTP от WPForms предлагает простую интеграцию с популярными сервисами и детальное логирование. Альтернативы — Easy WP SMTP и Post SMTP, которые также работают надёжно.

Письма уходят, но попадают в спам — что делать?

Добавьте SPF, DKIM и DMARC‑записи для домена; используйте в форме адрес отправителя, совпадающий с доменом; избегайте «спамных» слов в теме и тексте; выбирайте авторизованный SMTP‑сервер вместо PHP mail.

Нужно ли настраивать двухфакторную аутентификацию для Gmail SMTP?

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

Можно ли обойтись без SMTP, если хостинг разрешает PHP mail?

Технически можно, но письма будут часто помечаться как спам или не доставляться, потому что нет аутентификации и подписи. Рекомендуется всегда настраивать SMTP.

После обновления WordPress письма перестали приходить — в чём причина?

Обновление могло сбросить настройки плагина SMTP, изменить хуки в теме или вызвать конфликт с кеширующим плагином. Проверьте сохранность параметров, включите логирование и повторите тест отправки.

Итог

После настройки SMTP и проверки плагинов отправка писем в WordPress обычно восстанавливается. Если проблема сохраняется, воспользуйтесь инструментами для диагностики ошибок в логах — это поможет найти скрытые причины.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *