Skip to content

Всё для WordPress, веб-разработки — и не только

📧 Как установить и настроить SMTP в WordPress: пошаговое руководство

📧 Как установить и настроить SMTP в WordPress: пошаговое руководство

Письма с сайта не доходят до пользователей? Адресаты жалуются, что уведомления о заказе или восстановление пароля упали в спам? С этой проблемой сталкивается почти каждый владелец WordPress-сайта в первые месяцы после запуска.

Причина, способ отправки писем по умолчанию. WordPress использует встроенную функцию mail() языка PHP, и большинство хостинг-провайдеров не настраивают её должным образом. Письма уходят с неправильных заголовков, без DKIM-подписи, и почтовые сервисы вроде Gmail или Mail.ru отправляют их прямиком в папку «Спам». Хуже того, часть писем просто теряется, а вы об этом даже не узнаете.

Правильное решение, SMTP. Один раз настраиваете, и письма с сайта начинают доходить стабильно. Показываю два способа: простой (через плагин) и ручной (через код), чтобы вы могли выбрать под свою ситуацию.

💡 Быстрый обзор:

  • Узнаете, почему PHP-почта WordPress ненадёжна и как SMTP решает проблему доставляемости
  • Настроите отправку через плагин Easy WP SMTP за 5 минут, без правки кода
  • Освоите ручной метод через wp-config.php для тех, кто предпочитает обходиться без лишних плагинов
  • Проверите работу SMTP тестовым письмом и узнаете, на что обратить внимание при выборе почтового провайдера

Что такое SMTP и почему ваш сайт теряет письма

SMTP расшифровывается как Simple Mail Transfer Protocol. Если совсем просто, это выделенный протокол для отправки электронной почты, который работает иначе, чем mail() PHP.

Когда WordPress отправляет письмо через стандартную функцию, он просто «сбрасывает» его операционной системе сервера. Дальше, как повезёт: письмо может уйти с хоста без SPF-записи, без DKIM, с чужим From-адресом. Почтовый сервис получателя видит подозрительное письмо и отправляет его в спам. Либо просто отбрасывает, никакого уведомления об ошибке вы не получите.

SMTP-сервер, наоборот, устанавливает прямое соединение с почтовым сервисом адресата. Он авторизуется, передаёт DKIM-подпись вашего домена и гарантирует, что заголовки письма корректны. Результат: ваши письма доходят во «Входящие», а не в спам.

Дополнительный плюс, логирование. Большинство SMTP-плагинов для WordPress ведут журнал отправленных писем: вы видите, что ушло, кому и когда. Если письмо не доставлено, знаете об этом сразу, а не через неделю от клиента.

Способ 1: Установка SMTP через плагин Easy WP SMTP

Самый простой и надёжный способ для подавляющего большинства сайтов, поставить плагин. Я рекомендую Easy WP SMTP: более полумиллиона активных установок на WordPress.org, рейтинг 4,6 из 5 и стабильные обновления. Плагин бесплатный и поддерживает не только любой внешний SMTP-сервер, но и прямые интеграции с Gmail, Outlook, Brevo, SendGrid, Mailgun и SendLayer, можно подключиться через API без ввода портов и шифрования.

Поиск и установка плагина Easy WP SMTP в админке WordPress

Шаг 1. Установите плагин. Зайдите в админку WordPress: Плагины → Добавить новый. В строке поиска введите «Easy WP SMTP». Нажмите «Установить», затем «Активировать».

Шаг 2. Перейдите в настройки. В боковом меню админки появится пункт Easy WP SMTP. Откройте его, вы попадёте на вкладку «Общие» (General).

Шаг 3. Заполните данные SMTP-сервера. Вот что нужно ввести:

Настройки отправителя и почтового сервера в плагине Easy WP SMTP
  • From Email Address, адрес, с которого будут уходить письма. Используйте тот же email, что указан в настройках WordPress (раздел Настройки → Общие). Большинство хостеров блокируют отправку с чужих адресов, проще не рисковать.

  • From Name, имя отправителя, которое увидят получатели. Обычно это название сайта, например «SiteName Support».

  • Mailer, выберите «Other SMTP», если подключаете почтовый ящик своего домена или хостинга. Если используете Gmail / Outlook / Brevo / SendGrid, выберите соответствующий пункт, плагин проведёт вас через OAuth-авторизацию без ручного ввода параметров.

Параметры SMTP хоста, шифрования и порта в Easy WP SMTP

Для варианта «Other SMTP» заполните:

  • SMTP Host, адрес вашего почтового сервера. Для хостинга это обычно mail.ваш-домен.com. Для сторонних сервисов, провайдер выдаёт хост при создании ящика.

  • Encryption, выберите SSL (порт 465) или TLS (порт 587). Современные серверы предпочитают TLS на порту 587, но уточните у вашего почтового провайдера.

  • SMTP Port, 465 для SSL, 587 для TLS. Это стандартные значения, но хостер может использовать нестандартный порт, сверьтесь с его документацией.

  • Authentication, включите тумблер «Yes». Без аутентификации SMTP работать не будет.

  • SMTP Username и SMTP Password, логин и пароль от вашего почтового ящика. Обычно логин совпадает с полным адресом email.

Шаг 4. Отправьте тестовое письмо. Прокрутите страницу до секции «Test Email». В поле «Send To» введите адрес, к которому у вас есть доступ (можно свой же). Поля «Subject» и «Message» заполните произвольно, например, «SMTP Test» и «Проверка отправки». Нажмите «Send Test Email».

Если всё настроено верно, вверху экрана появится зелёное уведомление об успешной отправке. Письмо придёт на указанный адрес в течение нескольких секунд. Не пришло, проверьте папку «Спам»; если и там нет, перепроверьте параметры хоста, порта и пароля.

Шаг 5. Включите логирование. В подменю Easy WP SMTP откройте вкладку «Email Log» и активируйте запись логов. Теперь каждое отправленное письмо будет сохраняться в журнале с датой, получателем и статусом. Если через месяц клиент скажет «я не получал письмо с кодом», вы откроете лог и увидите: письмо ушло и было доставлено, проблема на стороне клиента.

Способ 2: Ручная настройка SMTP через wp-config.php

Этот метод, для тех, кто принципиально не хочет ставить плагин ради одной функции. Минус очевиден: никакого интерфейса, логирования и тестирования из админки не будет. Все изменения, только правкой файлов.

Важно: перед редактированием wp-config.php обязательно сделайте резервную копию сайта. Ошибка в этом файле вызовет «белый экран смерти», и восстановить доступ можно будет только через FTP или файловый менеджер хостинга.

Шаг 1: Добавьте константы SMTP в wp-config.php

Подключитесь к серверу по FTP или через файловый менеджер хостинга. Найдите файл wp-config.php в корне сайта и добавьте следующий код ПЕРЕД строкой /* That's all, stop editing! Happy publishing. */:

1// SMTP-конфигурация для отправки почты WordPress
2define( 'SMTP_HOST', 'mail.ваш-домен.com' ); // Адрес SMTP-сервера
3define( 'SMTP_AUTH', true ); // Включить аутентификацию
4define( 'SMTP_PORT', '587' ); // Порт: 587 (TLS) или 465 (SSL)
5define( 'SMTP_SECURE', 'tls' ); // Шифрование: tls или ssl
6define( 'SMTP_USERNAME', 'user@ваш-домен.com' ); // Логин почтового ящика
7define( 'SMTP_PASSWORD', 'ваш-пароль' ); // Пароль
8define( 'SMTP_FROM', 'user@ваш-домен.com' ); // Адрес отправителя
9define( 'SMTP_FROMNAME', 'SiteName Support' ); // Имя отправителя

Замените данные на свои: хост, порт, логин, пароль. Если почтовый провайдер использует SSL на порту 465, измените SMTP_PORT на '465', а SMTP_SECURE на 'ssl'.

Шаг 2: Подключите константы к PHPMailer

Сами по себе константы в wp-config.php ничего не делают, WordPress не знает, что с ними делать. Нужно передать их объекту PHPMailer через хук phpmailer_init. Добавьте этот код в файл functions.php вашей дочерней темы или через плагин Code Snippets (рекомендую, не потеряется при обновлении темы):

1/**
2 * Настройка SMTP через константы из wp-config.php
3 */
4add_action( 'phpmailer_init', 'sdstudio_smtp_configure' );
5function sdstudio_smtp_configure( $phpmailer ) {
6 $phpmailer->isSMTP();
7 $phpmailer->Host = SMTP_HOST;
8 $phpmailer->SMTPAuth = SMTP_AUTH;
9 $phpmailer->Port = SMTP_PORT;
10 $phpmailer->SMTPSecure = SMTP_SECURE;
11 $phpmailer->Username = SMTP_USERNAME;
12 $phpmailer->Password = SMTP_PASSWORD;
13 $phpmailer->From = SMTP_FROM;
14 $phpmailer->FromName = SMTP_FROMNAME;
15}

Что здесь происходит: WordPress вызывает хук phpmailer_init перед каждой отправкой письма и передаёт в него экземпляр класса PHPMailer. Функция sdstudio_smtp_configure конфигурирует этот объект значениями из констант, и письмо уходит через SMTP, а не через mail() PHP.

Если вы используете почтовый ящик на своём домене (например admin@ваш-сайт.com, созданный в cPanel хостинга), данные для SMTP-хоста берите из панели управления хостингом. Обычно там есть раздел «Подключения к почте» или «Email Accounts», где для каждого ящика указаны хост, порт и настройки шифрования.

Шаг 3: Проверьте отправку

Самый простой способ проверить, инициировать отправку системного письма WordPress. Например, запросите сброс пароля через форму входа (/wp-login.php → «Забыли пароль?»). Если письмо пришло, SMTP работает.

Хотите более точный тест, временно добавьте этот код в functions.php (после проверки удалите):

1add_action( 'init', function() {
2 wp_mail( '[email protected]', 'SMTP Test', 'Сообщение отправлено через SMTP!' );
3} );

Обновите любую страницу сайта, на ваш адрес уйдёт тестовое письмо. Не забудьте убрать код после проверки, иначе письмо будет отправляться при каждом обновлении страницы.

Способ 3: Альтернативные SMTP-плагины

Easy WP SMTP, не единственный вариант. Если по какой-то причине он не подошёл, вот ещё три проверенных бесплатных плагина с активной установкой от 200 000 сайтов:

  • WP Mail SMTP, самый популярный SMTP-плагин в репозитории WordPress (3 млн+ установок). Бесплатная версия подключает любой SMTP-сервер. Платная, добавляет интеграции с SendLayer, Amazon SES, Microsoft 365 и Zoho Mail, а также подробные логи и отчёты об ошибках.

  • Post SMTP, полностью бесплатный, с открытым исходным кодом. Умеет отправлять письма через SMTP, Gmail API, Microsoft 365 API, SendGrid, Mailgun, Brevo. Встроенный Email Log с фильтрацией и повторной отправкой. Хороший выбор, если нужен максимум возможностей без оплаты.

  • FluentSMTP, минималистичный и быстрый плагин от создателей FluentCRM. Поддерживает Amazon SES, Mailgun, SendGrid, SparkPost, Elastic Email и любой SMTP-сервер. Интерфейс проще, чем у конкурентов, и плагин практически не нагружает админку.

Все три варианта имеют рейтинг 4,5+ и регулярно обновляются. Принцип настройки везде одинаковый: устанавливаете плагин → вводите данные почтового сервера → отправляете тестовое письмо → включаете логирование.

В отличие от ручного метода через wp-config.php, любой из этих плагинов даёт как минимум журнал отправленных писем и возможность протестировать соединение из админки. Для сайта, который отправляет больше пары писем в неделю, эти функции быстро становятся необходимостью, а не просто удобством.

Тестирование SMTP: как убедиться, что всё работает

Настроили плагин или код, проверьте результат. Вот чек-лист из трёх пунктов, который закрывает все возможные проблемы:

1. Тестовое письмо из плагина. Если использовали Easy WP SMTP, отправьте тест через встроенную функцию (вкладка «Test Email»). Письмо ушло и пришло во «Входящие», отлично. Пришло в «Спам», проверьте, что в «From Email Address» указан реальный адрес на вашем домене (не @gmail.com, если сайт на ваш-домен.com).

2. Проверка заголовков письма. Откройте полученное тестовое письмо и посмотрите «оригинал» / «исходный код» сообщения (в Gmail: три точки → «Показать оригинал»). Найдите строчки SPF, DKIM и DMARC. Хотя бы SPF: PASS должно быть. Если все три показывают PASS, ваша доставляемость максимальна.

3. Проверка через форму на сайте. Пройдите пользовательский сценарий: заполните контактную форму, запросите сброс пароля, оформите тестовый заказ в WooCommerce. Каждое из этих действий должно породить письмо, убедитесь, что все они приходят. Если какое-то письмо не ушло, скорее всего, конкретный плагин (Forms / WooCommerce) использует собственный способ отправки в обход общего SMTP. Это редкость, но проверьте настройки такого плагина, обычно там есть опция «Use WordPress mail» или выбор почтового провайдера.

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

⁉️🤔 Частые вопросы

Почему письма с моего сайта уходят, но приходят в спам?

Основная причина, отсутствие DKIM- и SPF-записей у домена. PHP-функция mail() не подписывает письма, и почтовые сервисы видят «анонимную» отправку. SMTP-плагин отправляет письма от имени вашего почтового сервера, у которого эти записи уже настроены. Большинство хостингов добавляют базовую SPF-запись автоматически через cPanel, DKIM и DMARC настраиваются вручную в панели DNS за 10 минут.

Какой SMTP-порт выбрать: 465 или 587?

Порт 587 с шифрованием TLS, современный стандарт IETF. Порт 465 с SSL, устаревший, но широко поддерживается. Если провайдер принимает оба, выбирайте 587/TLS. Не уходит, пробуйте 465/SSL. На практике большинство shared-хостингов в 2026 году работают с обоими портами, VPS чаще требуют 587/TLS. Ошибка соединения после настройки, первым делом переключите порт и шифрование.

Можно ли использовать бесплатный Gmail для отправки писем с сайта?

Да, но с ограничением: 500 писем в день для личных аккаунтов и до 2 000 для Google Workspace. Для магазинов и членских сайтов надёжнее транзакционные сервисы: Brevo (300 писем/день бесплатно), SendGrid (100/день), Mailgun или Amazon SES. Подключить Gmail проще всего через Easy WP SMTP: выбираете mailer «Gmail» и проходите OAuth-авторизацию за пару кликов.

Нужен ли SMTP-плагин, если хостинг уже настроил почту?

Почтовый сервер хостинга и отправка из WordPress, два разных звена. Хостинг принимает почту для домена, но WordPress продолжает слать через mail() PHP без авторизации. Результат тот же: спам или потеря писем. SMTP-плагин заставляет WordPress использовать почтовый сервер правильно. Простой тест: откройте «оригинал» письма с сайта и найдите X-Mailer. Если там PHPMailer без SMTP, плагин необходим.

Плагин показывает ошибку «SMTP Error: Could not authenticate», что делать?

Три частые причины. Первая: пароль содержит спецсимволы (решетка, доллар, амперсанд), которые плагин неправильно экранирует, смените на буквенно-цифровой. Вторая: хостинг требует другой порт, переключите 587↔465 и TLS↔SSL. Третья: провайдер блокирует исходящий SMTP-трафик на общем тарифе, уточните в поддержке. Если ничего не помогает, переключитесь на API-интеграцию: например, Gmail API через OAuth надёжнее парольной аутентификации.

Какой способ настройки SMTP выбрать для вашего сайта

Ответ зависит от трёх факторов: объём писем, технический комфорт и бюджет.

Если сайт отправляет до 100 писем в день, ставьте Easy WP SMTP, подключайте любой почтовый ящик и закрывайте вопрос за 5 минут. Бесплатный тариф Brevo через API-интеграцию этого же плагина даёт 300 писем в день вообще без настройки SMTP-портов, просто регистрируетесь, получаете API-ключ, вставляете в плагин, готово.

Если сайт, магазин на WooCommerce на 500+ заказов в месяц, подключайте транзакционный сервис: Mailgun, SendGrid или Amazon SES. Они заточены под массовую отправку транзакционных писем и дают детальную аналитику по каждому письму (доставлено / открыто / кликнуто). Easy WP SMTP поддерживает все три через API без возни с портами.

Если вы разработчик и не хотите лишних плагинов, ручной метод через wp-config.php работает, но помните: без логирования вы слепы. Добавьте хотя бы простой лог-файл через хук wp_mail_failed или поставьте FluentSMTP, он практически невесомый и даёт полноценный журнал писем.

Главное, не оставляйте WordPress на стандартной PHP-почте. Пять минут на установку SMTP-плагина избавят вас от потерянных заказов, пропущенных обращений в поддержку и репутационных проблем с доменом, который почтовые сервисы пометили как источник спама.