Проблема с отправкой писем из WordPress встречается довольно часто, особенно на хостингах с ограничениями стандартной функции wp_mail(). Письма могут не доходить до получателей, попадать в спам или вовсе не отправляться — это критично для сайтов с регистрацией, формами обратной связи и обучающих платформ, таких как LearnPress. В этой статье разберем, как настроить отправку писем через SMTP, чтобы обеспечить надежную доставку сообщений с вашего сайта на WordPress.
Почему стандартная отправка почты в WordPress часто не работает
По умолчанию WordPress использует функцию wp_mail(), которая опирается на серверную функцию mail() PHP. Эта функция может быть заблокирована или неправильно настроена на хостинге. Часто письма не проходят из-за:
- Ограничений хостинга и блокировок SMTP-портов.
- Отсутствия SPF, DKIM и других записей для домена.
- Ошибок в параметрах отправки писем.
Решение — использовать внешний SMTP-сервер для отправки почты, например, SMTP от Gmail, Яндекс.Почты или специализированных сервисов (SendGrid, Mailgun).
Выбор плагина для SMTP в WordPress и его настройка
Для внедрения SMTP в WordPress существует несколько популярных плагинов. Рассмотрим два из них:
1. WP Mail SMTP
Очень популярный и удобный плагин с поддержкой множества SMTP-сервисов. Позволяет быстро настроить отправку писем, имеет встроенную проверку и логирование.
Основные шаги настройки:
- Установите и активируйте плагин WP Mail SMTP.
- Перейдите в настройки плагина в админке WordPress.
- Выберите SMTP как метод отправки.
- Укажите данные SMTP-сервера: хост, порт, метод шифрования.
- Введите имя пользователя и пароль SMTP.
- Настройте адрес отправителя и имя.
- Сохраните и протестируйте отправку письма.
2. Easy WP SMTP
Простой и легкий плагин для настройки SMTP. Подходит для базовой настройки и быстро запускается.
Настройка схожа с WP Mail SMTP — нужно указать параметры SMTP и протестировать.
Пример настройки SMTP через WP Mail SMTP с Gmail
Для отправки почты через Gmail потребуется:
- Активировать двухфакторную аутентификацию в аккаунте Google.
- Создать пароль приложения в Google Account.
В настройках плагина укажите:
- SMTP Host:
smtp.gmail.com - SMTP Port: 587
- Encryption: TLS
- Authentication: включена
- Username: ваш Gmail-адрес
- Password: пароль приложения
После сохранения настроек отправьте тестовое письмо для проверки.
Пример кода для отправки письма с помощью SMTP в LearnPress
Если нужен программный контроль, можно расширить функционал LearnPress и WordPress, используя собственную функцию отправки почты через SMTP. Ниже пример функции learnpress_smtp_send_mail, которая отправляет письмо с использованием PHPMailer, уже встроенного в WordPress:
function learnpress_smtp_send_mail($to, $subject, $message, $headers = '') {
add_action('phpmailer_init', 'learnpress_smtp_configure_phpmailer');
$result = wp_mail($to, $subject, $message, $headers);
remove_action('phpmailer_init', 'learnpress_smtp_configure_phpmailer');
return $result;
}
function learnpress_smtp_configure_phpmailer($phpmailer) {
$phpmailer->isSMTP();
$phpmailer->Host = 'smtp.gmail.com';
$phpmailer->SMTPAuth = true;
$phpmailer->Port = 587;
$phpmailer->Username = 'your-email@gmail.com';
$phpmailer->Password = 'your-app-password';
$phpmailer->SMTPSecure = 'tls';
$phpmailer->From = 'your-email@gmail.com';
$phpmailer->FromName = 'LearnPress';
}Этот код подключает SMTP-сервер перед отправкой письма, затем отключает его, чтобы не влиять на другие почтовые операции.
Настройка SPF, DKIM и DMARC для повышения надежности доставки
Использование SMTP — не единственный шаг к надежной доставке почты. Очень важно правильно настроить DNS-записи домена:
- SPF — указывает, какие серверы имеют право отправлять письма от имени вашего домена.
- DKIM — цифровая подпись, подтверждающая подлинность письма.
- DMARC — политика обработки писем, не прошедших SPF или DKIM.
Для настройки обратитесь к панели управления доменом, добавьте необходимые TXT-записи, используя инструкции вашего SMTP-провайдера.
Как проверить работу SMTP и отладить проблемы
После настройки важно убедиться, что письма действительно уходят и доходят до получателей:
- Отправьте тестовое письмо через интерфейс плагина.
- Проверьте папки «Входящие» и «Спам» на почтовом ящике.
- Используйте онлайн-сервисы для проверки SPF/DKIM/DMARC.
- Включите логирование в плагине WP Mail SMTP для диагностики ошибок.
Если письма не отправляются, проверьте правильность пароля, доступность SMTP-сервера, настройки хостинга и firewall.
Заключение: почему SMTP — обязательный элемент для сайтов на WordPress
Для сайтов, где важна надежная коммуникация с пользователями — будь то регистрация, восстановление пароля, уведомления о курсах LearnPress — настройка SMTP существенно повышает доставляемость почты и уменьшает число ошибок. Использование проверенных плагинов и правильная настройка DNS-записей гарантируют стабильную работу почтовой системы вашего сайта.