Почтовые уведомления в WordPress — одна из важнейших функций, особенно если у вас интернет-магазин, блог с подпиской или сайт с регистрацией пользователей. Отправка писем через стандартный PHP mail() часто приводит к попаданию сообщений в спам или их полной недоставке. Решением этой проблемы является использование специализированных SMTP-сервисов, и одним из самых популярных является Mailgun.
Что такое Mailgun и зачем он нужен в WordPress
Mailgun — это облачный почтовый сервис, который позволяет отправлять и получать email с высокой надежностью и скоростью. Он обеспечивает:
- Высокую доставляемость писем;
- Подробную статистику и логи отправки;
- Поддержку API и SMTP;
- Возможность настройки доменных записей для улучшения репутации отправителя;
- Инструменты для предотвращения спама и ботов.
Для WordPress это означает, что можно значительно повысить качество коммуникаций с пользователями, не боясь, что письма потеряются или попадут в спам.
Выбор плагина для интеграции Mailgun с WordPress
Для подключения Mailgun к WordPress есть несколько популярных плагинов. Рассмотрим три наиболее функциональных:
1. WP Mail SMTP by WPForms
Это один из самых популярных SMTP-плагинов. Он поддерживает Mailgun, Gmail, SendGrid и другие сервисы. Бесплатная версия позволяет быстро настроить SMTP через Mailgun, а PRO-версия расширяет функционал.
2. Mailgun for WordPress
Специализированный плагин для работы с Mailgun от разработчиков сервиса. Позволяет отправлять письма напрямую через API Mailgun, минуя SMTP. Это повышает скорость и надежность.
3. Post SMTP Mailer/Email Log
Удобный и продвинутый плагин с поддержкой нескольких почтовых сервисов и полной логикой отправки писем. Позволяет настраивать резервные методы отправки и подробно логировать все события.
Регистрация и базовая настройка Mailgun
Для начала работы необходимо зарегистрироваться на официальном сайте Mailgun. После подтверждения и привязки вашей кредитной карты (есть бесплатный тариф с ограничениями) нужно добавить домен:
- В разделе Domains нажмите "Add New Domain".
- Введите поддомен, например mail.yoursite.com, чтобы отделить почтовую часть от основного сайта.
- Сохраните и перейдите к настройке DNS-записей.
Для корректной работы регистрации и авторизации отправителя требуется добавить в DNS домена три типа записей:
- TXT для SPF — указывает Mailgun как разрешенного отправителя;
- TXT для DKIM — для подтверждения целостности писем;
- MX записи — для приема входящей почты (если нужно).
После добавления записей зайдите в Mailgun и подтвердите их. Это может занять от нескольких минут до 24 часов в зависимости от провайдера.
Настройка Mailgun через WP Mail SMTP
Рассмотрим пример настройки с помощью плагина WP Mail SMTP:
- Установите и активируйте плагин через админку WordPress.
- Перейдите в WP Mail SMTP > Settings.
- В разделе Mailer выберите Mailgun.
- Введите API ключ из Mailgun (можно посмотреть в разделе API Keys).
- Укажите домен, который вы добавили в Mailgun.
- Сохраните настройки.
Для теста отправки перейдите во вкладку Email Test, укажите свой email и отправьте тестовое письмо. Если письмо не приходит или попадает в спам, проверьте DNS-записи и настройки SPF/DKIM.
Пример кода для отправки email через Mailgun API в WordPress
Если нужно реализовать отправку писем напрямую через API Mailgun без плагинов, используйте следующий пример функции с префиксом wpmail_:
function wpmail_send_mailgun_email($to, $subject, $message) {
$api_key = 'ваш-api-ключ';
$domain = 'ваш-домен.mailgun.org';
$url = "https://api.mailgun.net/v3/" . $domain . "/messages";
$data = [
'from' => 'WordPress <no-reply@' . $domain . '>',
'to' => $to,
'subject' => $subject,
'text' => $message
];
$response = wp_remote_post($url, [
'headers' => [
'Authorization' => 'Basic ' . base64_encode('api:' . $api_key),
],
'body' => $data
]);
if (is_wp_error($response)) {
return false;
}
$code = wp_remote_retrieve_response_code($response);
return $code === 200;
}Используйте функцию так:
if (wpmail_send_mailgun_email('user@example.com', 'Тестовое письмо', 'Привет! Это тест.')) {
echo 'Письмо отправлено';
} else {
echo 'Ошибка отправки';
}Отладка и логирование писем в WordPress с Mailgun
Для мониторинга отправленных писем полезно вести логи и получать уведомления об ошибках. Плагин Post SMTP Mailer/Email Log позволяет это сделать из админки — вы увидите статус каждой отправки, сообщения об ошибках и сможете повторить попытку.
Если вы используете собственный код, добавьте логирование через стандартные средства WordPress, например error_log() или сохранение статуса в отдельную таблицу базы данных.
Рекомендации по улучшению доставляемости писем
Чтобы письма с Mailgun доходили до пользователей, соблюдайте несколько правил:
- Настройте SPF и DKIM для вашего домена правильно и убедитесь, что DNS-записи опубликованы.
- Используйте отдельный поддомен для почты, например mail.yoursite.com.
- Не отправляйте слишком много писем за раз — соблюдайте лимиты Mailgun и требования к скорости.
- Проводите регулярный мониторинг статистики и отписок, чтобы не попасть в чёрные списки.
- Используйте проверку email на валидность перед отправкой, чтобы уменьшить количество bounce.
Правильная интеграция Mailgun с WordPress позволит вам наладить надежную систему email-коммуникаций, которая будет работать без сбоев и проблем с доставкой.
Если хотите использовать профессиональные инструменты для оптимизации отправки и управления письмами, обратите внимание на WP Mail SMTP на WPSHOP — он значительно упрощает работу с Mailgun и другими SMTP-сервисами.