
🔧 Почему WordPress не отправляет письма и как это исправить
Вы проверили почту, а там пусто. Ни письма со сбросом пароля, ни уведомления о заказе, ни тестового сообщения из контактной формы. Клиенты пишут в поддержку, а ответы не доходят. WordPress молчит, и непонятно, в чём дело.
Проблема до боли знакома каждому, кто запускал сайт на WordPress. Почтовый сервер по умолчанию работает через mail(), встроенную функцию PHP. Хостинг-провайдеры часто блокируют её, а письма уходят в спам или не отправляются вовсе.
Спойлер: это лечится за 15-20 минут настройкой SMTP-сервера. Ниже, пошаговый разбор причин, диагностика и два рабочих способа настройки: через Gmail API и через Mailgun. Без паники, с картинками.
💡 Быстрый обзор:
- Проверяем, жив ли почтовый сервер WordPress, плагин
Check Emailза минуту покажет реальную картину - Узнаём, почему
mail()ненадёжен и как SMTP решает проблему - Настраиваем Gmail SMTP с OAuth 2.0, пошагово, от консоли Google до зелёного статуса
- Подключаем Mailgun через
WP Mail SMTP, для сайтов с трафиком, которым нужно больше 100 писем в сутки - Разбираем частые вопросы: почему письма уходят в спам, какой порт выбрать, что делать с ошибкой аутентификации
Почему WordPress не отправляет письма
WordPress по умолчанию использует функцию wp_mail(), которая внутри дёргает PHP-функцию mail(). Проблема в том, что mail(), это простейший механизм без аутентификации. Современные почтовые сервисы вроде Gmail, Yahoo и Outlook требуют шифрования и проверки отправителя. Без них письмо либо блокируется хостингом, либо помечается как спам принимающей стороной.
Вторая частая причина, отсутствие DKIM и SPF-записей в DNS. Это цифровые подписи, которые говорят почтовым серверам: «отправитель настоящий, письмо не подделка». Без них тот же Gmail отправит ваше сообщение прямиком в папку «Спам».
Наконец, виноваты могут быть плагины. Некоторые антиспам-решения и плагины контактных форм перехватывают очередь писем и блокируют «подозрительные» отправки. Особенно это касается массовых рассылок, для них mail() не годится в принципе.
Как проверить работу почтового сервера WordPress
Прежде чем лезть в настройки SMTP, исключите вариант с мёртвым mail(). Плагин Check Email делает ровно это: отправляет тестовое письмо через стандартный механизм WordPress и показывает результат.
Установите Check Email из репозитория WordPress (Plugins → Add New → вбейте «Check Email»), активируйте и перейдите в Tools → Check Email. Введите свой адрес, нажмите «Send test email», и через пару секунд увидите отчёт.

Проверьте папку «Входящие» и «Спам». Если письмо пришло, mail() работает и проблема в конкретном плагине (контактная форма, WooCommerce). Обратитесь в поддержку того плагина. Если письма нет, mail() заблокирован хостингом, нужен SMTP.
Как настроить SMTP через Gmail в WordPress
SMTP (Simple Mail Transfer Protocol), это протокол с аутентификацией и шифрованием. В отличие от голого mail(), письма через SMTP проходят проверку подлинности, не блокируются хостингом и редко попадают в спам.
Первый способ, плагин Gmail SMTP, который подключает WordPress напрямую к вашему аккаунту Google через OAuth 2.0. У него более 100 отзывов на WordPress.org и регулярные обновления. Бесплатная версия позволяет отправлять до 100 писем в сутки, для небольшого сайта или блога этого хватает.
Установите Gmail SMTP из официального репозитория WordPress, активируйте.

Дальше нужен Google Cloud Console. Перейдите на console.cloud.google.com, создайте новый проект.

В боковом меню выберите «APIs & Services» → «Credentials», нажмите «Create Credentials» и выберите «OAuth client ID». Система попросит настроить экран согласия, укажите тип «External» и заполните обязательные поля (название приложения, email поддержки). Нажмите «Save and Continue».

Вернитесь к созданию OAuth client ID: тип приложения, «Web application», название, «Gmail SMTP».

Теперь переключитесь обратно в админку WordPress: в настройках плагина Gmail SMTP скопируйте Authorized Redirect URL.

Вернитесь в консоль Google, вставьте скопированный URL в поле «Authorized redirect URIs», сохраните. После сохранения появится окно с Client ID и Client Secret, скопируйте оба значения и вставьте в соответствующие поля плагина.
Укажите Gmail-адрес, с которого будут уходить письма (тот же, под которым создавали проект), заполните поле «From Email Address», задайте «From Name» (название вашего сайта). Порт SMTP, 587 для TLS. Если используете SSL-сертификат, ставьте 465. Нажмите «Save Changes», затем, «Grant Permission» и пройдите аутентификацию Google.

После успешного гранта в плагине загорится зелёный статус «Connected». Отправьте тестовое письмо, если пришло, всё готово.
Как настроить Mailgun для отправки писем в WordPress
Если сайту нужно больше 100 писем в сутки и вы хотите надёжную инфраструктуру доставки, смотрите в сторону Mailgun. Это почтовый сервис для разработчиков с бесплатным тарифом до 100 писем в день (входящие бесплатно), а платные планы стартуют от $35 в месяц за 50 000 писем. Главный плюс, детальная аналитика доставки: вы видите, открыто письмо или нет, ушло ли в спам.

Зарегистрируйтесь на mailgun.com. После создания аккаунта добавьте домен, Mailgun предложит ввести поддомен (например, mg.vash-sait.ru) и выдаст DNS-записи: TXT для верификации, MX для маршрутизации писем и CNAME для отслеживания открытий.
Зайдите в панель хостинга (cPanel, ISPmanager или аналог), откройте DNS-редактор и добавьте выданные Mailgun записи:
- TXT-запись: Name, ваш поддомен, Type, TXT, TTL, 14400, TXT Data, значение из панели Mailgun
- MX-запись: в разделе «MX Entry» пропишите приоритет и destination из Mailgun
- CNAME: для отслеживания открытий и кликов
DNS обновляется от нескольких минут до 48 часов. Статус проверяйте в разделе «Domains» панели Mailgun, когда загорится «Active», можно идти дальше.
Для связки Mailgun с WordPress установите WP Mail SMTP, самый популярный SMTP-плагин с 3+ миллионами активных установок. Перейдите в Settings → WP Mail SMTP, в «From Email» укажите адрес на вашем домене, в «From Name», название сайта. В поле «Mailer» выберите «Mailgun».

Вставьте Private API Key из панели Mailgun (раздел «API Keys») и доменное имя, которое регистрировали. Включите опцию «Set the return path to match the From Email», это выравнивает обратный адрес и снижает шанс попадания в спам. Нажмите «Save Settings» и отправьте тест через вкладку «Email Test».
Видеоинструкция: настройка SMTP в WordPress
Если удобнее смотреть, а не читать, вот видеоурок по настройке SMTP в WordPress, от установки плагина до первого отправленного письма:
⁉️🤔 Частые вопросы
Почему письма из WordPress уходят в спам, даже если SMTP настроен?
Чаще всего проблема в отсутствии SPF и DKIM-записей в DNS домена. Без них почтовый сервер получателя не может проверить, что именно ваш сервер имеет право отправлять письма с этого домена. Добавьте TXT-запись SPF (
v=spf1 include:_spf.google.com ~allдля Gmail или аналогичную для Mailgun) и DKIM-ключ из панели почтового сервиса. Второй фактор, репутация IP: на дешёвом хостинге IP-адрес мог быть замечен в спам-рассылках до вас.
Какой SMTP-порт выбрать: 587 или 465?
Порт
587с TLS, это современный стандарт, рекомендованный IETF для клиентской отправки писем. Порт465с SSL, устаревшая альтернатива, которая до сих пор поддерживается многими провайдерами для совместимости. Ставьте587с TLS, если почтовый сервис явно не требует465.
Плагин Gmail SMTP выдаёт ошибку аутентификации. Что делать?
Три самых частых причины: не совпадают URL редиректа (проверьте, что в консоли Google и плагине один и тот же адрес), приложение в Google Cloud находится в статусе «Testing» (переведите в «Production» или добавьте ваш Gmail в список тестовых пользователей), либо включена двухфакторная аутентификация Google без пароля приложения (создайте пароль приложения в настройках безопасности Google).
Можно ли отправлять массовые рассылки через Gmail SMTP?
Нет. У Gmail жёсткие лимиты: 100 писем в сутки через плагин
Gmail SMTP, до 2000 через Google Workspace. Для email-маркетинга и регулярных рассылок используйте Mailgun, Brevo (бывший Sendinblue) или SendGrid, у них есть интеграции с WordPress и выделенная инфраструктура доставки.
Нужен ли платный тариф Mailgun для небольшого сайта?
Бесплатного тарифа Mailgun (100 писем в день) хватает среднестатистическому сайту: уведомления WooCommerce о заказах, сброс паролей, подтверждения регистраций, письма из контактной формы. Платный план имеет смысл, когда суточный объём переваливает за сотню или нужна аналитика открытий с хранением логов дольше 24 часов.
Почему не стоит полагаться на встроенный mail() в WordPress?
Функция
mail()не аутентифицирует отправителя, не шифрует соединение и не добавляет DKIM/SPF-подписи. Большинство хостинг-провайдеров либо блокируют её на уровне сервера (из-за риска спам-атак), либо пропускают трафик через общие IP с низкой репутацией. Результат: письма не доходят в значительной части случаев, а те, что доходят, часто помечаются как спам.
Стоит ли переходить на SMTP прямо сейчас
Если с сайта не уходят письма сброса пароля, клиенты не получают уведомления о заказе, а контактная форма молчит, ответ однозначный: SMTP нужен сегодня. Это не вопрос «стоит ли», это вопрос «какой именно».
Для личного блога и сайта-визитки хватит связки Gmail SMTP + ваш Gmail-аккаунт. Настроили за 20 минут и забыли. Для сайта с товарами, курсами или пользователями, берите WP Mail SMTP + Mailgun: бесплатный тариф покрывает нужды типового интернет-магазина, а аналитика доставки подскажет, если что-то пойдёт не так.
Не откладывайте. Пока вы читаете этот абзац, чей-то клиент не получил письмо с подтверждением. SMTP решает это раз и навсегда.



