EL-Script

General IT knowledge base

WordPress не отправляет электронную почту: пошаговая диагностика

Пошаговая диагностика причин, почему WordPress не отправляет письма, от проверки логов до настройки SMTP.

Коротко: WordPress не отправляет письма: чаще всего отказ отправки вызван некорректной работой встроенной PHP-функции mail() на хостинге. Чтобы надёжно решить проблему, перейдите на SMTP-отправку через плагин WP Mail SMTP или Post SMTP, предварительно проверив спам-фильтры и логи ошибок сервера.

Когда сайт на WordPress не отправляет письма — не работают формы обратной связи, сброс пароля и уведомления Woocommerce — проблему можно диагностировать за несколько шагов. Чаще всего виновата серверная функция mail() или отсутствие правильной аутентификации. В этой статье собран проверенный чек-лист, который вернёт отправку почты в рабочее состояние без вызова разработчика.

Что понадобится

  • Доступ к административной панели WordPress с правами администратора
  • Доступ к логам сервера (через панель хостинга или FTP)
  • Действующий почтовый ящик для получения тестовых писем

Как WordPress отправляет письма и почему это ломается

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

Дополнительные сложности создают спам-фильтры, отсутствующие SPF- и DKIM-записи, а также конфликты с плагинами кеширования или безопасности. Поэтому диагностика должна идти от простого теста к системным проверкам — только так можно точно определить, в каком звене обрыв.

Шаг 1. Отправьте тестовое письмо

Самый быстрый способ понять, работает ли отправка в принципе — использовать плагин Check Email. Он не требует сложной настройки и сразу показывает ошибки на каждом этапе, включая проблемы с SSL, подключением к SMTP или некорректные заголовки.

Если письмо успешно уходит через плагин, но реальные уведомления сайта не доходят, ищите конфликт в коде темы или сторонних расширений. В обратном случае двигайтесь дальше по чек-листу.

  1. Установите и активируйте плагин Check Email через Плагины → Добавить новый.
  2. Перейдите в Инструменты → Check Email.
  3. Введите адрес электронной почты, на который хотите получить тестовое письмо, и нажмите «Отправить тестовое письмо».
  4. Дождитесь результата на экране и проверьте папку «Входящие» и «Спам» на указанном ящике.

Важно: Если плагин сообщает об ошибке, скопируйте ее текст — он пригодится для дальнейшей диагностики.

Шаг 2. Изучите логи сервера

Ошибки почтовых функций почти всегда фиксируются в журналах PHP. Найдите файл error_log в корне сайта или через панель хостинга (раздел «Логи», «Журнал ошибок»). Ищите записи, содержащие «mail()», «wp_mail», «Failed to connect», «SMTP connect() failed» или «Could not instantiate mail function».

Логи также могут указать на превышение лимита памяти, нехватку прав доступа или конфликт с плагинами. Если не находите файл error_log, активируйте режим отладки WordPress: добавьте в wp-config.php строки define('WP_DEBUG', true); define('WP_DEBUG_LOG', true); — ошибки начнут записываться в /wp-content/debug.log.

  • Панель хостинга cPanel → Менеджер файлов → error_log в корневой папке сайта (public_html).
  • FTP-клиент: файл error_log в директории с WordPress.
  • Раздел «Логи» в панели управления хостингом (логи ошибок PHP).

Шаг 3. Убедитесь, что PHP-функция mail() не отключена

Некоторые хостинг-провайдеры перестраховываются и добавляют mail() в список запрещенных функций (disable_functions). Проверить это можно несколькими способами: просмотреть вывод phpinfo() через плагин или создать небольшой PHP-файл с и поискать строку disable_functions.

Если mail() присутствует в этом списке, обратитесь в службу поддержки хостинга с просьбой ее активировать. В случае отказа единственный вариант — сразу переходить на SMTP-отправку, которая не зависит от данной функции.

  • Установите и активируйте плагин WP phpinfo() и посмотрите раздел Core.
  • Создайте файл info.php с содержимым , откройте его в браузере и найдите disable_functions.
  • Если mail() отключена, свяжитесь с поддержкой хостинга или сразу настройте SMTP.

Шаг 4. Настройте SMTP-отправку как постоянное решение

SMTP-плагины заменяют стандартный механизм wp_mail() аутентифицированной отправкой через внешний почтовый сервер. Это радикально повышает доставляемость и позволяет обходить блокировки хостинга. Наиболее стабильные бесплатные решения — WP Mail SMTP и Post SMTP Mailer/Email Log.

Выберите вариант с простым мастером настройки. В качестве отправителя обязательно укажите реальный адрес на вашем домене (например, wordpress@example.com) — письма с произвольных ящиков часто отклоняются. Для Gmail потребуется пароль приложения, если включена двухфакторная аутентификация.

  1. Установите плагин WP Mail SMTP через Плагины → Добавить новый.
  2. Активируйте и перейдите в WP Mail SMTP → Настройки.
  3. Введите адрес отправителя (From Email) и имя отправителя (From Name) — желательно использовать ящик на вашем домене.
  4. Выберите почтовый сервис «Other SMTP» (или Gmail/SendGrid) и заполните параметры: хост (smtp.gmail.com), порт (587), шифрование (TLS), логин и пароль.
  5. Сохраните настройки и перейдите на вкладку «Тест письма», чтобы отправить проверочное сообщение.
  6. Убедитесь, что письмо пришло и не попало в спам.

Важно: Для Gmail обязательно используйте «Пароль приложения», сгенерированный в настройках аккаунта Google.

Шаг 5. Финальная проверка и типичные сложности

После настройки SMTP проведите контрольный тест форм на сайте: отправьте сообщение через контактную форму, запросите сброс пароля, создайте тестовый заказ в WooCommerce. Если какая-то из функций молчит, вероятная причина — кеширование старых заголовков или конфликт с конкретным плагином.

Также обратите внимание на лимиты отправки вашего почтового провайдера: бесплатные тарифы SendGrid или Gmail ограничивают число писем в сутки. При массовых рассылках рассмотрите использование транзакционных сервисов вроде Mailgun или Amazon SES.

  • Проверьте все формы сайта, а не только тестовый инструмент.
  • Загляните в журнал отправленных писем плагина (WP Mail SMTP → Email Log) — там будут видны все попытки и ошибки.
  • Убедитесь, что адрес «От кого» везде совпадает с доменом и проходит SPF-аутентификацию.

Проверка результата

  • Проверьте папку «Спам» и…
AI-инструмент

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

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

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

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