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

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

Часто пользователи сталкиваются с тем, что WordPress не отправляет письма или они попадают в спам. Основные симптомы:

  • Письма не приходят на почту адресата;
  • Письма доходят с задержкой или в папку спам;
  • Ошибка подключения к SMTP серверу в логах;
  • Проблемы с аутентификацией SMTP.

Для диагностики используйте плагин WP Mail Logging или аналогичный, чтобы отслеживать попытки отправки и ошибки. Также проверьте логи сервера и настройки хостинга.

Почему возникает проблема и как ее решить

Причина 1: PHP mail() не работает или заблокирован хостингом

Стандартная функция mail() часто не работает из-за ограничений хостинга или фильтров спама. Решение – использовать SMTP для отправки писем.

Причина 2: Неправильные настройки SMTP

Неверные данные SMTP: хост, порт, логин, пароль – ведут к ошибкам аутентификации и невозможности отправки.

Причина 3: Отсутствие поддержки TLS/SSL или неподходящий порт

SMTP серверы часто требуют защищенное соединение (TLS/SSL), и неправильный порт приведет к сбоям.

Пошаговое решение: настройка SMTP для WordPress

  1. Установите плагин WP Mail SMTP.
  2. Перейдите в настройки плагина (WP Mail SMTP → Settings).
  3. В разделе Mailer выберите подходящий SMTP-сервис (например, SMTP, Gmail, SendGrid и др.).
  4. Если выбираете SMTP, заполните поля:
    • SMTP Host — адрес сервера (например, smtp.yandex.ru);
    • SMTP Port — порт (обычно 465 для SSL или 587 для TLS);
    • Encryption — SSL или TLS;
    • SMTP Username и Password — логин и пароль от почты.
  5. Укажите «От кого» и «Адрес отправителя» — должны совпадать с SMTP аккаунтом для прохода SPF и DKIM проверок.
  6. Сохраните настройки и отправьте тестовое письмо через плагин.

Пример минимальной настройки SMTP в коде темы или плагина

Если хотите обойтись без плагина, добавьте следующий код в functions.php вашей темы:

add_action('phpmailer_init', function($phpmailer) {
    $phpmailer->isSMTP();
    $phpmailer->Host = 'smtp.yandex.ru';
    $phpmailer->SMTPAuth = true;
    $phpmailer->Port = 465;
    $phpmailer->Username = 'your-email@yandex.ru';
    $phpmailer->Password = 'your-password';
    $phpmailer->SMTPSecure = 'ssl';
    $phpmailer->From = 'your-email@yandex.ru';
    $phpmailer->FromName = 'Site Name';
});

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

  • Отправьте тестовое письмо через настройки плагина WP Mail SMTP;
  • Проверьте, что письмо пришло на указанный адрес без ошибок;
  • Просмотрите логи плагина — ошибок быть не должно;
  • Проверьте папку «Спам» на предмет попадания письма.

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

  • Ошибка аутентификации SMTP: проверьте логин и пароль, убедитесь, что двухфакторная аутентификация отключена или используется пароль приложений.
  • Письма попадают в спам: настройте SPF, DKIM и DMARC записи в DNS домена для почтового сервера.
  • Ошибка соединения с SMTP сервером: проверьте, что хост и порт корректны и что хостинг не блокирует исходящие SMTP соединения.
  • Письма не отправляются с HTTPS сайта: убедитесь, что сертификат SSL сервера SMTP корректен, и выбран правильный протокол (TLS/SSL).

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

  • Не храните пароли SMTP в открытом виде в коде, используйте защищённые методы хранения, например, define-константы в wp-config.php.
  • Используйте сервисы с поддержкой OAuth (например, Gmail) для безопасной аутентификации.
  • Ограничьте количество отправляемых писем, чтобы избежать блокировки SMTP сервера.
  • Для крупных проектов рассмотрите использование специализированных сервисов рассылок (SendGrid, Mailgun) с API.

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

МетодПлюсыМинусыКогда применять
PHP mail()Простота, нет настроекМного блокировок, письма в спамМаленькие проекты или тест
SMTP через WP Mail SMTPНадёжность, поддержка популярных сервисовНужно настраивать, может быть сложность с аутентификациейВсе проекты с реальной рассылкой
API сервисы (SendGrid, Mailgun)Высокая скорость, масштабируемость, статистикаСложнее настраивать, возможны тарифыКрупные проекты, массовые рассылки
Как использовать WPRemark для автоматической оценки комментариев в WordPress
26.03.2026
Как использовать хуки WooCommerce для изменения количества товаров при добавлении в корзину
14.05.2026
Как удалить варианты товаров WooCommerce при удалении атрибута
10.05.2026
Как создать свою систему ролей и разрешений в WordPress
30.11.2025
Как создать собственный метабокс в WordPress
06.11.2025

Задать вопрос о вордпресс, получить ответ - это все можно сделать в нашем сообществе WP. Сайт в данный момент в разработке, изучите ссылки ниже: