В этой статье мы рассмотрим различные способы настройки Django, популярной веб-инфраструктуры Python, для отправки электронных писем с помощью Mailgun, мощного поставщика услуг электронной почты. Мы предоставим примеры кода для каждого метода, чтобы помочь вам легко интегрировать функции электронной почты в ваши приложения Django.
Метод 1: использование почтового сервера Django
Django предоставляет встроенный почтовый сервер, который мы можем настроить для использования Mailgun в качестве поставщика услуг электронной почты. Чтобы настроить это, добавьте следующий код в файл settings.py вашего проекта Django:
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_HOST = 'smtp.mailgun.org'
EMAIL_PORT = 587
EMAIL_HOST_USER = 'your-mailgun-domain'
EMAIL_HOST_PASSWORD = 'your-mailgun-api-key'
EMAIL_USE_TLS = True
DEFAULT_FROM_EMAIL = 'your-email@example.com'
Обязательно замените 'your-mailgun-domain'
и 'your-mailgun-api-key'
на ваш фактический домен Mailgun и ключ API. Также установите 'your-email@example.com'
в качестве адреса электронной почты отправителя по умолчанию.
Метод 2: использование класса EmailMessage Django
Другой подход — использовать класс EmailMessage
Django для отправки электронных писем через Mailgun. Вот пример:
from django.core.mail import EmailMessage
email = EmailMessage(
'Hello',
'Body goes here',
'your-email@example.com',
['recipient1@example.com', 'recipient2@example.com'],
['bcc@example.com'],
reply_to=['another-email@example.com'],
headers={'Message-ID': 'foo'},
)
email.send()
Вы можете настроить тему, текст, отправителя, получателей, скрытую копию, адрес для ответа и заголовки в соответствии со своими требованиями.
Метод 3: прямое использование API Mailgun
Если вы предпочитаете больше контроля над процессом отправки электронной почты, вы можете использовать API Mailgun напрямую. Сначала установите библиотеку requests
, запустив pip install requests
в среде вашего проекта. Затем в качестве примера используйте следующий код:
import requests
def send_email(subject, body, sender, recipients):
return requests.post(
"https://api.mailgun.net/v3/your-mailgun-domain/messages",
auth=("api", "your-mailgun-api-key"),
data={"from": sender, "to": recipients, "subject": subject, "text": body}
)
response = send_email(
'Hello',
'Body goes here',
'your-email@example.com',
['recipient1@example.com', 'recipient2@example.com']
)
if response.status_code == 200:
print('Email sent successfully!')
else:
print('Failed to send the email.')
Убедитесь, что вы заменили 'your-mailgun-domain'
и 'your-mailgun-api-key'
на свой фактический домен Mailgun и ключ API.
В этой статье мы рассмотрели три различных метода настройки Django для отправки электронных писем с помощью Mailgun. Независимо от того, предпочитаете ли вы встроенный почтовый сервер Django, класс EmailMessage
или прямую интеграцию API, теперь у вас есть инструменты для легкого включения функций электронной почты в ваши приложения Django. Поэкспериментируйте с этими методами и выберите тот, который лучше всего соответствует требованиям вашего проекта.