Как отладить и исправить проблемы с отправкой писем из WordPress через SMTP

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

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

Диагностика проблем с отправкой писем через SMTP

Проверяем базовую отправку писем

Для начала стоит проверить, работает ли вообще отправка писем из WordPress. Для этого можно использовать плагин Check Email или следующий код в файле functions.php темы:

add_action('admin_init', function() {
    if (isset($_GET['test_email'])) {
        $to = get_option('admin_email');
        $subject = 'Тест письма WordPress';
        $message = 'Если вы получили это письмо, значит отправка работает.';
        wp_mail($to, $subject, $message);
        exit('Письмо отправлено');
    }
});

Затем в браузере откройте https://your-site.ru/wp-admin/?test_email=1. Если письмо не пришло, проблема с отправкой есть.

Логирование ошибок SMTP

Если вы используете SMTP-плагин (например, WP Mail SMTP или Post SMTP), активируйте логирование, чтобы увидеть детальные ошибки подключения и аутентификации SMTP.

Пошаговое решение проблемы с отправкой писем через SMTP

1. Установка и настройка SMTP-плагина

Рекомендуется использовать плагин WP Mail SMTP, который заменяет стандартный механизм отправки писем на SMTP с аутентификацией и шифрованием.

  1. Установите плагин WP Mail SMTP через админпанель WordPress.
  2. Перейдите в настройки плагина (WP Mail SMTP > Настройки).
  3. Выберите почтовый сервис: SMTP-сервер вашего почтового провайдера (например, Gmail, Яндекс.Почта, или корпоративный SMTP).
  4. Впишите параметры SMTP:
    • SMTP-сервер (например, smtp.yandex.ru)
    • Порт (обычно 465 для SSL или 587 для TLS)
    • Тип шифрования (SSL или TLS)
    • Имя пользователя (полный email)
    • Пароль (пароль от почтового ящика или специальный пароль приложений)
  5. Сохраните настройки.

2. Проверка отправки тестового письма

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

3. Включение логирования SMTP

В разделе отладки плагина включите логирование. При ошибках смотрите логи, чтобы понять причину (например, неверный логин/пароль, блокировка порта, неправильный сертификат SSL).

4. Настройка SPF, DKIM и DMARC для домена

Чтобы письма не попадали в спам, важно правильно настроить DNS-записи:

  • SPF — указывает, какие серверы имеют право отправлять письма от имени вашего домена.
  • DKIM — цифровая подпись писем для проверки подлинности.
  • DMARC — политика обработки писем, не прошедших SPF или DKIM.

Пример записи SPF (для Яндекс.Почты):

@ IN TXT "v=spf1 include:_spf.yandex.net ~all"

Настройка DKIM и DMARC зависит от почтового провайдера и делается через панель управления DNS вашего домена.

Как проверить, что проблема решена

  • Отправьте тестовое письмо через SMTP-плагин — оно должно успешно дойти.
  • Проверьте папку «Спам» в почтовом ящике — письмо не должно туда попадать.
  • Используйте сервисы проверки почты, например MXToolBox, для диагностики SPF, DKIM, DMARC.
  • Проверьте логи SMTP-плагина на отсутствие ошибок.

Частые ошибки и как их исправить

Ошибка аутентификации SMTP

Причина: неверный логин или пароль, либо двухфакторная аутентификация не отключена или не настроен пароль приложений.

Решение: проверьте данные, создайте пароль приложений, если используете Gmail или Яндекс.

Ошибка соединения с сервером SMTP

Причина: заблокирован порт, неправильно указан сервер или порт, проблемы с SSL-сертификатом.

Решение: уточните настройки SMTP, попробуйте другой порт, проверьте возможность подключения через telnet:

telnet smtp.yandex.ru 465

Письма попадают в спам

Причина: отсутствуют или неправильно настроены SPF/DKIM/DMARC записи, плохая репутация IP.

Решение: настройте DNS-записи, используйте проверенные SMTP-сервисы.

Практические советы для безопасности и производительности

  • Не храните SMTP-пароли в открытом виде в файлах — используйте настройки плагинов с шифрованием.
  • Ограничьте число попыток отправки писем, чтобы избежать спама с вашего сайта.
  • Используйте специализированные SMTP-сервисы (SendGrid, Mailgun, Яндекс.Почта) для надежности и масштабируемости.
  • Обновляйте плагины и WordPress для устранения уязвимостей в почтовой системе.

Сравнение способов отправки почты в WordPress

МетодПлюсыМинусыПример плагина
PHP mail()Простота, не требует настройкиНизкая надежность, письма часто идут в спамСтандарт WordPress
SMTP с аутентификациейНадежная доставка, поддержка шифрованияТребует настройки, возможны ошибки соединенияWP Mail SMTP, Post SMTP
API почтовых сервисовВысокая скорость, аналитика доставкиЗависимость от сторонних сервисов, сложнее настроитьSendGrid API, Mailgun API
Как установить лимит на число AJAX-запросов в WordPress
28.03.2026
Как избежать проблем с неотправкой писем WooCommerce через SMTP
25.06.2026
Как создать автоматический отчет о производительности WordPress с помощью кода и плагинов
02.02.2026
Как использовать PHP-FPM с поддержкой multiple pools в WordPress для повышения производительности
12.03.2026
Как удалить неиспользуемые плагины WordPress без рисков
01.12.2025