Освоение доставки электронной почты с помощью Sendinblue: Руководство для программиста

Привет, коллеги-разработчики! Сегодня мы погружаемся в мир доставки электронной почты и исследуем один из самых мощных инструментов на рынке: Sendinblue. Независимо от того, создаете ли вы приложение, требующее транзакционных электронных писем, или проводите маркетинговые кампании, Sendinblue поможет вам. Итак, давайте засучим рукава и научимся отправлять электронные письма с помощью Sendinblue!

Метод 1: использование SMTP-сервера Sendinblue
Если вы предпочитаете работать с традиционным SMTP-сервером, Sendinblue предлагает простую настройку. Вы можете настроить свое приложение для отправки электронных писем через SMTP-сервер Sendinblue, указав учетные данные SMTP, предоставленные Sendinblue. Вот фрагмент кода на Python, который поможет вам начать:

import smtplib
from email.mime.text import MIMEText
def send_email():
    sender = 'your_email@example.com'
    receiver = 'recipient@example.com'
    subject = 'Hello from Sendinblue!'
    message = 'Hey there, this is a test email sent using Sendinblue.'
    msg = MIMEText(message)
    msg['Subject'] = subject
    msg['From'] = sender
    msg['To'] = receiver
    smtp_server = 'smtp-relay.sendinblue.com'
    smtp_port = 587
    username = 'your_sendinblue_username'
    password = 'your_sendinblue_password'
    with smtplib.SMTP(smtp_server, smtp_port) as server:
        server.login(username, password)
        server.sendmail(sender, receiver, msg.as_string())
        print('Email sent successfully!')
send_email()

Метод 2: использование API Sendinblue
Для более сложных вариантов использования и более глубокой интеграции вы можете использовать RESTful API Sendinblue. API позволяет отправлять транзакционные электронные письма, управлять списками контактов, создавать шаблоны электронной почты и выполнять различные другие операции программным способом. Вот пример использования API Sendinblue в Node.js:

const axios = require('axios');
async function sendEmail() {
    const apiKey = 'your_sendinblue_api_key';
    const sender = 'your_email@example.com';
    const receiver = 'recipient@example.com';
    const subject = 'Hello from Sendinblue!';
    const message = 'Hey there, this is a test email sent using Sendinblue.';
    try {
        const response = await axios.post('https://api.sendinblue.com/v3/smtp/email', {
            sender: { name: 'Your Name', email: sender },
            to: [{ email: receiver }],
            subject: subject,
            htmlContent: message
        }, {
            headers: { 'api-key': apiKey }
        });
        console.log('Email sent successfully!', response.data);
    } catch (error) {
        console.error('Failed to send email:', error.response.data);
    }
}
sendEmail();

Метод 3: рассылка кампаний по электронной почте с помощью Sendinblue
Sendinblue предназначен не только для транзакционных электронных писем. Он также предоставляет надежные функции для управления кампаниями по электронной почте. Вы можете создавать привлекательные шаблоны электронных писем, сегментировать свою аудиторию и отслеживать эффективность своих кампаний. Вот фрагмент на PHP для создания кампании по электронной почте с использованием API Sendinblue:

<?php
$apiKey = 'your_sendinblue_api_key';
$sender = 'your_email@example.com';
$subject = 'Check out our latest deals!';
$htmlContent = '<html><body><h1>Amazing Offers</h1><p>Check out our latest deals and discounts!</p></body></html>';
$curl = curl_init();
curl_setopt_array($curl, array(
  CURLOPT_URL => 'https://api.sendinblue.com/v3/emailCampaigns',
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => '',
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 0,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => 'POST',
  CURLOPT_POSTFIELDS => '{
    "name": "Spring Sale",
    "subject": "' . $subject . '",
    "htmlContent": "' . $htmlContent . '",
    "sender": {"name": "Your Name", "email": "' . $sender . '"},
    "recipients": {"listIds": [1, 2, 3]}
  }',
  CURLOPT_HTTPHEADER => array(
    'api-key: ' . $apiKey,
    'Content-Type: application/json'
  ),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;