Освоение API Mailgun: подробное руководство по отправке электронной почты с примерами

Программная отправка электронных писем — важная функция для многих приложений: от простых уведомлений до сложных кампаний по электронной почте. Mailgun API предоставляет мощный и удобный способ интеграции возможностей отправки электронной почты в ваше приложение. В этой статье мы рассмотрим различные методы, предоставляемые API Mailgun, и продемонстрируем, как их использовать, с разговорными объяснениями и примерами кода.

  1. Использование интеграции SMTP:

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

import smtplib
from email.mime.text import MIMEText
def send_email_smtp(sender, recipient, subject, body):
    msg = MIMEText(body)
    msg['Subject'] = subject
    msg['From'] = sender
    msg['To'] = recipient
    with smtplib.SMTP('smtp.mailgun.org', 587) as server:
        server.login('your-mailgun-username', 'your-mailgun-password')
        server.send_message(msg)
  1. Использование API Mailgun через HTTP:

Другой популярный метод — прямое взаимодействие с API Mailgun с помощью HTTP-запросов. Такой подход обеспечивает большую гибкость и контроль над процессом отправки электронной почты. Вот пример использования cURL:

curl --request POST \
  --url https://api.mailgun.net/v3/your-domain.com/messages \
  --user 'api:your-mailgun-api-key' \
  --form from='sender@example.com' \
  --form to='recipient@example.com' \
  --form subject='Hello' \
  --form text='This is the content of the email.'
  1. Добавление вложений:

Mailgun API позволяет прикреплять файлы к электронным письмам. Вы можете включать изображения, документы или файлы любого другого типа. Вот пример использования Python:

import requests
def send_email_with_attachment(api_key, sender, recipient, subject, body, attachment_path):
    files = [('attachment', open(attachment_path, 'rb'))]
    data = {
        'from': sender,
        'to': recipient,
        'subject': subject,
        'text': body
    }
    response = requests.post(
        'https://api.mailgun.net/v3/your-domain.com/messages',
        auth=('api', api_key),
        files=files,
        data=data
    )
    return response.json()
  1. Отслеживание доставки электронной почты:

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

import requests
def check_email_delivery_status(api_key, message_id):
    response = requests.get(
        f'https://api.mailgun.net/v3/your-domain.com/events/{message_id}',
        auth=('api', api_key)
    )
    return response.json()

В этой статье мы рассмотрели несколько способов отправки электронных писем с помощью API Mailgun. Мы рассмотрели отправку электронных писем через интеграцию SMTP, использование API Mailgun через HTTP, прикрепление файлов к электронным письмам и отслеживание статуса доставки электронной почты. С помощью примеров кода и разговорных объяснений вы теперь должны иметь четкое представление о том, как использовать возможности API Mailgun в своих приложениях.