Email-рассылка Mailgun в Django

категория: Django

Регистируем акк в www.mailgun.com и добавляем свой домен, желательно с поддомена: m.acman.ru, дальше прописываем все DNS записи для домена по инструкции. Потом нужно до двух суток ждать проверки домена пока он не станет активным в панели доменов Mailgun.

Дальше прописываем настройки:

EMAIL_HOST = 'smtp.mailgun.org'
EMAIL_PORT = 587
EMAIL_HOST_USER = 'postmaster@m.acman.ru'
EMAIL_HOST_PASSWORD = 'password'
DEFAULT_FROM_MAIL = 'noreply@m.acman.ru'
EMAIL_USE_TLS = True

и юзаем:

from django.conf import settings
from django.core.mail import send_mail

send_mail('subject', 'message', settings.DEFAULT_FROM_MAIL, ['girl@my.net'])

Можно и через пакет django-mailgun:

pip install django-mailgun
EMAIL_BACKEND = 'django_mailgun.MailgunBackend'
MAILGUN_ACCESS_KEY = 'ACCESS-KEY'
MAILGUN_SERVER_NAME = 'SERVER-NAME'

Еще можно использовать валидацию почтового ящика, если есть такая необходимость:

response = requests.get("https://api.mailgun.net/v3/address/validate",
                        params={'address': 'webasman@gmail.com'},
                        auth=('api', 'public_api_key'), timeout=10)
response.json().get('is_valid')

Ответ сервера:

{
    "address": "webasman@gmail.com",
    "did_you_mean": null,
    "is_disposable_address": false,
    "is_role_address": false,
    "is_valid": true,
    "mailbox_verification": "true",
    "parts": {
        "display_name": null,
        "domain": "gmail.com",
        "local_part": "webasman"
    }
}


blog comments powered by Disqus