Настройка электронной почты 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

(Подробнее в этом выпуске.)

Другие вопросы по тегам