Настройка электронной почты django-сельдерея с помощью django-anymail
Я использую django-anymail(sendgrid) для отправки электронных писем в своем веб-приложении. Я хотел бы разрешить отправку электронных писем в асинхронном режиме, не давая пользователям ждать некоторое время. Итак, как я могу настроить django-celery-email с помощью django-anymail.
Теперь мой почтовый конфиг. является:
ANYMAIL = {
"SENDGRID_API_KEY": os.environ.get('SENDGRID_API_KEY')
}
EMAIL_BACKEND = "anymail.backends.sendgrid.EmailBackend"
0 ответов
Из django-сельдерея по электронной почте readme:
По умолчанию django-celery-email будет использовать встроенный бэкэнд электронной почты SMTP Django… Если вы хотите использовать другой бэкэнд, вы можете установить его в
CELERY_EMAIL_BACKEND
так же, как вы бы обычно установилиEMAIL_BACKEND
прежде чем вы использовали сельдерей.
Итак, в ваших settings.py:
EMAIL_BACKEND = "djcelery_email.backends.CeleryEmailBackend"
CELERY_EMAIL_BACKEND = "anymail.backends.sendgrid.EmailBackend" # your setting from before
Также обратите внимание, что django-celery-email не знает о дополнительных параметрах отправки Anymail, таких как metadata
, tags
, template_id
, envelope_sender
и т. д. Если вы используете какой-либо из них, вам нужно сообщить о них в ваших настройках django-celery-email:
CELERY_EMAIL_MESSAGE_EXTRA_ATTRIBUTES = ['metadata', 'tags'] # or whatever you use
(Подробнее в этом выпуске.)