wpmail.ru wordpress WP Mail

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

MailerLite — популярный сервис email-маркетинга, который предлагает удобный API для интеграции с различными платформами, включая WordPress. В этой статье мы подробно рассмотрим, как отправлять письма через API MailerLite непосредственно из WordPress, используя собственный код и плагины. Это оптимальное решение для тех, кто хочет управлять рассылками и уведомлениями без использования сторонних плагинов для массовых рассылок.

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

Использование API MailerLite дает несколько преимуществ:

  • Гибкость и контроль над рассылками и уведомлениями
  • Возможность интеграции с другими функциями WordPress — формами, событиями и пользовательскими триггерами
  • Отслеживание статистики доставки и открытия писем через личный кабинет MailerLite
  • Минимизация нагрузки на сервер WordPress при массовых рассылках

По сравнению с SMTP, API более надежен и позволяет использовать дополнительные возможности сервиса.

Получение API ключа MailerLite и подготовка окружения WordPress

Для работы с API необходимо получить ключ:

  1. Зарегистрируйтесь или войдите в личный кабинет на MailerLite.
  2. Перейдите в раздел IntegrationsAPI.
  3. Скопируйте свой API ключ — он понадобится для аутентификации запросов.

В WordPress рекомендуем создавать собственный плагин или использовать файл functions.php вашей темы (лучше дочерней), чтобы не потерять изменения при обновлениях.

Пример функции для отправки письма через API MailerLite

Ниже приведён пример функции wpmail_send_mailerlite_email, которая отправляет письмо через API MailerLite. Она использует cURL для отправки POST запроса с параметрами письма:

function wpmail_send_mailerlite_email($to, $subject, $html_content) {
    $api_key = 'ВАШ_API_КЛЮЧ'; // Замените на ваш ключ
    $group_id = 'ID_ГРУППЫ_ПОЛУЧАТЕЛЕЙ'; // Можно использовать для сегментации

    $url = 'https://api.mailerlite.com/api/v2/email/send';

    $postData = [
        'to' => [$to],
        'subject' => $subject,
        'html' => $html_content,
        'from' => ['email' => 'no-reply@вашдомен.ru', 'name' => 'Ваш сайт'],
    ];

    $headers = [
        'Content-Type: application/json',
        'X-MailerLite-ApiKey: ' . $api_key,
    ];

    $ch = curl_init($url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_POST, true);
    curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($postData));
    curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);

    $response = curl_exec($ch);
    $http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
    curl_close($ch);

    if ($http_code === 200) {
        return true;
    } else {
        error_log('MailerLite API error: ' . $response);
        return false;
    }
}

Обратите внимание:

  • В параметре to указывайте email получателя.
  • Параметр from должен содержать email и имя отправителя, зарегистрированные в MailerLite.
  • Вам может потребоваться настроить группу подписчиков и использовать её ID для массовых рассылок.

Интеграция отправки писем с формой на сайте

Частая задача — отправить письмо после заполнения формы на сайте. Рассмотрим пример обработки формы с отправкой письма через MailerLite API.

add_action('admin_post_nopriv_wpmail_process_form', 'wpmail_process_form');
add_action('admin_post_wpmail_process_form', 'wpmail_process_form');

function wpmail_process_form() {
    if (!isset($_POST['wpmail_nonce']) || !wp_verify_nonce($_POST['wpmail_nonce'], 'wpmail_form')) {
        wp_die('Ошибка безопасности');
    }

    $email = sanitize_email($_POST['email']);
    $name = sanitize_text_field($_POST['name']);

    $subject = 'Спасибо за вашу заявку';
    $message = "<p>Здравствуйте, " . esc_html($name) . "!</p><p>Спасибо, что связались с нами. Мы свяжемся с вами в ближайшее время.</p>";

    $sent = wpmail_send_mailerlite_email($email, $subject, $message);

    if ($sent) {
        wp_redirect(home_url('/thank-you'));
        exit;
    } else {
        wp_die('Ошибка при отправке письма. Попробуйте позже.');
    }
}

И в HTML форме обязательно добавьте поле nonce и укажите action:

<form action="<?php echo esc_url(admin_url('admin-post.php')); ?>" method="post">
    <input type="hidden" name="action" value="wpmail_process_form">
    <?php wp_nonce_field('wpmail_form', 'wpmail_nonce'); ?>
    <input type="text" name="name" placeholder="Ваше имя" required>
    <input type="email" name="email" placeholder="Ваш email" required>
    <button type="submit">Отправить</button>
</form>

Использование плагинов для упрощения интеграции MailerLite

Если хочется упростить работу, можно использовать официальный плагин MailerLite – Signup forms (official). Он позволяет:

  • Подключать формы подписки через виджеты и шорткоды
  • Автоматически синхронизировать подписчиков с MailerLite
  • Интегрировать с популярными конструкторами форм

Однако, для отправки транзакционных писем через API потребуется кастомная реализация, описанная выше.

Советы по отладке и безопасности при работе с MailerLite API

При работе с API важно:

  • Хранить API ключ в защищённом месте, например, в wp-config.php или в настройках плагина, а не в открытом коде.
  • Обрабатывать ошибки и логировать неудачные попытки отправки, чтобы своевременно реагировать на проблемы.
  • Использовать nonce и проверку прав доступа для форм, чтобы избежать CSRF атак.
  • Ограничивать частоту отправки писем, чтобы не попасть под ограничения MailerLite.

Заключение

Умение отправлять письма через API MailerLite из WordPress открывает широкие возможности по кастомизации email-рассылок и уведомлений. Такой подход повышает надежность доставки и позволяет интегрировать email-сервис с любыми событиями сайта. Воспользуйтесь приведенными примерами, чтобы быстро начать работу и создавать свои решения.

Для удобства можно использовать и готовые инструменты от WPSHOP — они помогут оптимизировать процесс и расширить функционал.

×

AI-плагин

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

SEO и мета-теги

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

Изображения

Комментарии

Подробнее