SMTP в WordPress: полная настройка Gmail, Mailgun, SendGrid за 7 шагов

Почему стоит использовать SMTP в WordPress

Отправка писем через стандартную функцию wp_mail() часто приводит к попаданию сообщений в спам. SMTP‑серверы гарантируют аутентификацию, шифрование и более высокий рейтинг доставляемости.

Выбор плагина для SMTP

Самый простой способ – установить один из популярных плагинов. Ниже перечислим три проверенных решения:

  • WP Mail SMTP – официально поддерживается WP Engine, имеет готовые интеграции с Gmail, Mailgun, SendGrid и Amazon SES.
  • Easy WP SMTP – лёгкий, без лишних функций, подходит для небольших проектов.
  • Post SMTP Mailer/Email Log – отличный логгер и поддержка OAuth 2.0.

После установки плагина перейдите в Настройки → WP Mail SMTP и выберите нужный сервис.

Настройка Gmail SMTP

Шаг 1 – подготовка аккаунта Google

  1. Включите «Менее безопасные приложения» (если используете обычный пароль) или создайте App Password в разделе Безопасность → Двухэтапная проверка.
  2. Запишите полученный пароль – он понадобится в плагине.

Шаг 2 – ввод данных в плагине

add_action( 'phpmailer_init', function( $phpmailer ) {
    $phpmailer->isSMTP();
    $phpmailer->Host       = 'smtp.gmail.com';
    $phpmailer->SMTPAuth   = true;
    $phpmailer->Port       = 587;
    $phpmailer->Username   = 'yourname@gmail.com';
    $phpmailer->Password   = 'YOUR_APP_PASSWORD';
    $phpmailer->SMTPSecure = 'tls';
    $phpmailer->From       = 'yourname@gmail.com';
    $phpmailer->FromName   = 'Ваш сайт';
} );

Сохраните настройки и отправьте тестовое письмо из раздела плагина.

Настройка Mailgun

Шаг 1 – регистрация и получение API‑ключа

Создайте аккаунт на Mailgun, добавьте домен и скопируйте Private API Key и SMTP‑сервер (например, smtp.mailgun.org).

Шаг 2 – конфигурация в плагине

add_action( 'phpmailer_init', function( $phpmailer ) {
    $phpmailer->isSMTP();
    $phpmailer->Host       = 'smtp.mailgun.org';
    $phpmailer->SMTPAuth   = true;
    $phpmailer->Port       = 587;
    $phpmailer->Username   = 'postmaster@yourdomain.com';
    $phpmailer->Password   = 'YOUR_MAILGUN_PRIVATE_KEY';
    $phpmailer->SMTPSecure = 'tls';
    $phpmailer->From       = 'no-reply@yourdomain.com';
    $phpmailer->FromName   = 'Ваш бренд';
} );

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

Настройка SendGrid

Шаг 1 – получение API‑ключа

Войдите в SendGrid, создайте ключ с правами Mail Send и скопируйте его.

Шаг 2 – подключение через SMTP

add_action( 'phpmailer_init', function( $phpmailer ) {
    $phpmailer->isSMTP();
    $phpmailer->Host       = 'smtp.sendgrid.net';
    $phpmailer->SMTPAuth   = true;
    $phpmailer->Port       = 587;
    $phpmailer->Username   = 'apikey'; // фиксированное значение
    $phpmailer->Password   = 'YOUR_SENDGRID_API_KEY';
    $phpmailer->SMTPSecure = 'tls';
    $phpmailer->From       = 'info@yourdomain.com';
    $phpmailer->FromName   = 'Ваш сайт';
} );

SendGrid предлагает бесплатный тариф до 100 е‑мейлов в день – идеально для стартапов.

Amazon SES (опционально)

Если нужен масштабируемый сервис, Amazon SES – хороший выбор. Требует подтверждения домена и создания IAM‑пользователя с правами AmazonSESFullAccess. Пример кода:

add_action( 'phpmailer_init', function( $phpmailer ) {
    $phpmailer->isSMTP();
    $phpmailer->Host       = 'email-smtp.us-east-1.amazonaws.com';
    $phpmailer->SMTPAuth   = true;
    $phpmailer->Port       = 587;
    $phpmailer->Username   = 'YOUR_AMAZON_SMTP_USERNAME';
    $phpmailer->Password   = 'YOUR_AMAZON_SMTP_PASSWORD';
    $phpmailer->SMTPSecure = 'tls';
    $phpmailer->From       = 'no-reply@yourdomain.com';
    $phpmailer->FromName   = 'Ваш бренд';
} );

SES отлично подходит для массовых рассылок с низкой стоимостью.

Устранение типичных проблем доставки

  • Письма попадают в спам – проверьте SPF, DKIM и DMARC записи в DNS. Подробнее о DNS‑записях читайте в нашем гиде по продвинутым полям.
  • Тайм‑аут соединения – убедитесь, что ваш хостинг не блокирует исходящие 587/465 порты. Смотрите советы по ускорению админки – иногда проблема в медленном отклике сервера.
  • Ошибка 550 – Relaying denied – проверьте правильность логина/пароля и включённую аутентификацию.
  • Проблемы с HTML‑шаблонами – используйте wpautop() и проверяйте, что письма отправляются в UTF‑8.

Если после всех правок письма всё равно не доходят, рекомендуется выполнить сканирование сайта на наличие вредоносного кода – см. руководство по удалению вирусов.

Best‑practice: логирование и тестирование

Включите логирование в выбранном плагине (обычно «Enable email logs»). После каждой отправки проверяйте журнал, чтобы быстро находить ошибки. Для тестов используйте сервис mail‑tester.com – он покажет ваш балл по SPF/DKIM и укажет на возможные проблемы.

Итоги

Настройка SMTP в WordPress – это минимум 7 минут, а результатом будет надёжная доставка писем, улучшенный репутационный рейтинг и меньше жалоб от пользователей. Выберите сервис, который соответствует бюджету и объёму рассылок, настройте плагин, проверьте DNS‑записи и наслаждайтесь стабильной работой почты.

Смотрите также

❓ Часто задаваемые вопросы

Как включить OAuth 2.0 для Gmail в WP Mail SMTP?

В настройках плагина включите «Google / Gmail» и создайте проект в Google Cloud Console, получив Client ID и Client Secret. После авторизации плагин будет использовать токен вместо пароля.

Почему письма с Amazon SES попадают в спам, хотя SPF и DKIM настроены?

SES может требовать «Production Access». До его получения все письма отправляются в sandbox‑режим, где получатели ограничены и могут быть помечены как спам.

Можно ли использовать несколько SMTP‑провайдеров одновременно?

Да, с помощью фильтра phpmailer_init можно переключать настройки в зависимости от типа письма (например, транзакционные через SendGrid, маркетинговые через Mailgun).

Как проверить, что письма действительно отправляются через выбранный SMTP‑сервер?

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