wpmail.ru wordpress WP Mail

Как отправлять письма через API MailerCloud в WordPress

В современном WordPress-сайте часто возникает задача надежной и быстрой отправки email-сообщений — будь то уведомления, рассылки или системные письма. В этой статье мы подробно разберем, как настроить отправку писем через API сервиса MailerCloud, который предлагает удобный REST API для работы с почтой. Это позволит обойти ограничения стандартной функции wp_mail() и SMTP-серверов, повысить доставляемость и контролировать процесс отправки.

Почему использовать API MailerCloud для отправки писем в WordPress

MailerCloud — современный сервис email-маркетинга с мощным API, поддерживающим отправку транзакционных писем. В отличие от SMTP, API обеспечивает более быструю и надежную доставку, позволяет отслеживать статус писем и интегрируется с любыми приложениями.

Преимущества использования MailerCloud API в WordPress:

  • Высокая скорость отправки и масштабируемость.
  • Отслеживание доставки, открытия и кликов.
  • Отсутствие необходимости настраивать SMTP-сервер.
  • Гибкость в формировании запросов и шаблонов писем.
  • Поддержка HTML и вложений.

Используя API, вы можете интегрировать отправку писем напрямую из вашего плагина или темы WordPress с минимальной нагрузкой и максимальной надежностью.

Регистрация и получение API ключа MailerCloud

Для начала работы зайдите на сайт MailerCloud и зарегистрируйтесь. После подтверждения аккаунта выполните следующие шаги:

  1. Перейдите в раздел API Settings (Настройки API).
  2. Создайте новый API ключ с нужными правами (обычно достаточно для отправки почты).
  3. Скопируйте ключ — он понадобится для аутентификации запросов.

Важно хранить ключ в безопасности и не выкладывать в публичный доступ.

Пример функции для отправки email через MailerCloud API в WordPress

Ниже приведен пример простой функции wpmail_send_mailercloud_email(), которая отправляет письмо через API. Используется стандартный PHP cURL для выполнения POST-запроса.

function wpmail_send_mailercloud_email($to, $subject, $html_content, $from_email, $from_name) {
    $api_key = 'ВАШ_API_КЛЮЧ_ЗДЕСЬ';
    $api_url = 'https://api.mailercloud.com/v1/email/send';

    $data = [
        'personalizations' => [
            [
                'to' => [
                    ['email' => $to]
                ],
                'subject' => $subject
            ]
        ],
        'from' => [
            'email' => $from_email,
            'name' => $from_name
        ],
        'content' => [
            [
                'type' => 'text/html',
                'value' => $html_content
            ]
        ]
    ];

    $ch = curl_init($api_url);
    curl_setopt($ch, CURLOPT_HTTPHEADER, [
        'Authorization: Bearer ' . $api_key,
        'Content-Type: application/json'
    ]);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_POST, true);
    curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));

    $response = curl_exec($ch);
    $httpcode = curl_getinfo($ch, CURLINFO_HTTP_CODE);

    curl_close($ch);

    if ($httpcode == 202) {
        return true; // Письмо принято сервисом
    } else {
        error_log('MailerCloud API error: ' . $response);
        return false;
    }
}

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

Подключение функции отправки писем к WordPress хукам

Для интеграции с существующими механизмами WordPress можно заменить дефолтную функцию wp_mail() или использовать хуки. Пример замены:

add_filter('wp_mail', function($args) {
    $sent = wpmail_send_mailercloud_email($args['to'], $args['subject'], $args['message'], $args['headers']['From'], 'Ваш сайт');
    if ($sent) {
        return true;
    } else {
        return false;
    }
});

Однако такой подход требует аккуратности, так как wp_mail может ожидать определенного поведения. Часто лучше использовать собственные вызовы функции отправки.

Пример отправки письма при регистрации нового пользователя

Добавим отправку приветственного письма через MailerCloud при регистрации пользователя.

add_action('user_register', function($user_id) {
    $user = get_userdata($user_id);
    $to = $user->user_email;
    $subject = 'Добро пожаловать на наш сайт!';
    $message = '<p>Здравствуйте, ' . $user->display_name . '!</p><p>Спасибо за регистрацию.</p>';
    $from_email = 'no-reply@вашдомен.ru';

    wpmail_send_mailercloud_email($to, $subject, $message, $from_email, 'Команда сайта');
});

Отладка и логирование ошибок отправки

При работе с API важно вести логирование ошибок для быстрого выявления проблем. В примерах выше используется error_log(), но можно настроить запись в отдельный файл или использовать плагины для логирования.

Также проверяйте ответ API — MailerCloud возвращает подробные сообщения об ошибках в JSON формате. Для расширенной обработки можно декодировать ответ и анализировать поля errors.

Рекомендации по безопасности и производительности

  • API ключ храните в wp-config.php или используйте функцию get_option() для безопасного доступа.
  • Не храните ключ в публичном репозитории.
  • Для массовой рассылки используйте отдельные очереди и фоновые задачи, чтобы не блокировать работу сайта.
  • Рассмотрите использование плагинов, которые интегрируются с MailerCloud, если хотите обойтись без собственного кода.

Альтернативные плагины и решения для MailerCloud

На данный момент специальных плагинов для интеграции MailerCloud в WordPress немного. Однако вы можете использовать универсальные решения, позволяющие отправлять почту через API, например My Popup для сбора email и отправки уведомлений или создавать собственные расширения на базе приведенных примеров.

×

AI-плагин

WPGPT
Сам создает статьи для вашего сайта WordPress

SEO и мета-теги

Парсинг конкурентов

Изображения

Комментарии

Подробнее