Как отладить и исправить проблемы с отправкой писем из 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
Как решить проблему с не отправкой писем в WordPress через SMTP
20.04.2026
Как создать динамическую Sitemap в WordPress с помощью кода
12.04.2026
Как правильно читать и записывать файлы в WordPress с помощью PHP
10.02.2026
Как разделить базу данных WordPress на несколько серверов для повышения производительности
24.12.2025
Как создать собственный шорткод в WordPress с примером кода
18.11.2025