По умолчанию WordPress использует функцию wp_mail(), которая опирается на стандартную функцию PHP mail(). Однако на многих хостингах этот метод работает нестабильно, письма попадают в спам или вовсе не доходят до адресата. Чтобы обеспечить надежную доставку писем, часто требуется изменить метод отправки, например, настроить SMTP-сервер или использовать сторонние сервисы.
Почему важно менять метод отправки писем в WordPress
Проблемы с доставкой электронной почты — одна из частых технических сложностей при работе с WordPress. По умолчанию:
- Письма могут не проходить аутентификацию SPF, DKIM, что приводит к попаданию в спам.
- Функция
mail()зависит от конфигурации сервера, на котором запущен сайт. - Нет возможности использовать внешние SMTP-сервисы с авторизацией и шифрованием.
Поэтому переход на SMTP или специализированные API для отправки почты значительно повышает шансы на успешную доставку.
Настройка SMTP в WordPress с помощью плагинов
Популярные плагины для SMTP
Для изменения метода отправки писем в WordPress чаще всего используют плагины, которые переопределяют функцию wp_mail() и отправляют письма через SMTP-сервер. Вот несколько популярных решений:
- WP Mail SMTP — один из самых популярных и простых плагинов для настройки SMTP. Поддерживает Gmail, Mailgun, SendGrid, Outlook и другие сервисы.
- Easy WP SMTP — легкий и удобный плагин для подключения любого SMTP-сервера с авторизацией.
- Post SMTP Mailer/Email Log — расширенный плагин с логированием писем и возможностью отправлять через разные сервисы.
Пример настройки WP Mail SMTP
После установки и активации WP Mail SMTP зайдите в Настройки > WP Mail SMTP и заполните поля:
- From Email — email, от имени которого будут отправляться письма.
- From Name — имя отправителя.
- Mailer — выберите SMTP.
- SMTP Host — адрес SMTP-сервера, например
smtp.gmail.com. - SMTP Port — порт, обычно 465 (SSL) или 587 (TLS).
- Encryption — SSL или TLS.
- Authentication — включите и укажите логин и пароль SMTP-сервера.
После сохранения настроек можно отправить тестовое письмо из интерфейса плагина, чтобы проверить работоспособность.
Изменение метода отправки писем программно
Переопределение функции wp_mail с использованием PHPMailer
Если не хочется использовать плагины, можно программно изменить метод отправки, добавив в файл functions.php темы или в кастомный плагин следующий код:
add_action('phpmailer_init', 'wpbloger_phpmailer_smtp');
function wpbloger_phpmailer_smtp($phpmailer) {
$phpmailer->isSMTP();
$phpmailer->Host = 'smtp.gmail.com';
$phpmailer->SMTPAuth = true;
$phpmailer->Port = 587;
$phpmailer->Username = 'your-email@gmail.com';
$phpmailer->Password = 'your-email-password';
$phpmailer->SMTPSecure = 'tls';
$phpmailer->From = 'your-email@gmail.com';
$phpmailer->FromName = 'WPBloger';
}Этот код заставляет PHPMailer использовать SMTP при отправке писем. Не забудьте заменить параметры на свои.
Логирование отправленных писем
Для отладки полезно сохранять логи отправленных писем. Можно добавить простой фильтр:
add_filter('wp_mail', 'wpbloger_log_wp_mail');
function wpbloger_log_wp_mail($args) {
$log = "Отправка письма: \n" . print_r($args, true);
error_log($log);
return $args;
}Логи будут появляться в стандартном логе PHP или error_log сервера.
Использование внешних сервисов для отправки почты
Mailgun, SendGrid, Amazon SES
Для надежной и масштабируемой отправки писем лучше использовать специализированные сервисы, которые обеспечивают высокую доставляемость:
- Mailgun — простой API и SMTP, бесплатный тариф с ограничением.
- SendGrid — удобный сервис с поддержкой API и SMTP, бесплатный тариф.
- Amazon SES — мощный и дешевый сервис для больших объемов почты.
Для интеграции с такими сервисами чаще всего используют официальные плагины или WP Mail SMTP, где в качестве SMTP-сервера указывается адрес сервиса.
Пример настройки SMTP для Mailgun в WP Mail SMTP
В настройках плагина указываем:
- SMTP Host:
smtp.mailgun.org - SMTP Port: 587 (TLS)
- Username: SMTP login из панели Mailgun
- Password: SMTP пароль
Не забудьте настроить DNS-записи SPF, DKIM и DMARC для вашего домена, чтобы повысить доверие к письмам.
Рекомендации и лучшие практики
Для стабильной работы почты в WordPress следуйте рекомендациям:
- Используйте SMTP или специализированные сервисы вместо функций
mail(). - Настройте SPF, DKIM, DMARC-записи для домена.
- Тестируйте отправку писем после изменений.
- Логируйте ошибки и неудачные отправки.
- Не храните пароли в открытом виде, используйте константы или защищенные переменные окружения.
Если вы используете магазин или подписки, надежная почта — обязательный элемент стабильной работы сайта.
Для автоматизации и расширения функционала отправки писем можно обратить внимание на плагин WP Mail SMTP из магазина WPSHOP, который оптимально решает задачи с SMTP и поддерживает интеграции с популярными почтовыми сервисами.