Настройка электронной почты django-сельдерея с помощью django-anymail - PullRequest
0 голосов
/ 02 марта 2019

Я использую django-anymail (sendgrid) для отправки электронных писем в моем веб-приложении.Я хотел бы разрешить отправку электронных писем в асинхронном режиме, не давая пользователям ждать некоторое время. Итак, как я могу настроить django-celery-email с помощью django-anymail.

Теперь мой почтовый конфиг.это:

ANYMAIL = {
"SENDGRID_API_KEY": os.environ.get('SENDGRID_API_KEY')
}
EMAIL_BACKEND = "anymail.backends.sendgrid.EmailBackend"

1 Ответ

0 голосов
/ 06 марта 2019

Из электронной почты django-сельдерея readme :

По умолчанию django-celery-email будет использовать встроенный сервер электронной почты SMTP Django… Если вы хотите использовать другуюбэкэнд, вы можете установить его в CELERY_EMAIL_BACKEND так же, как вы обычно устанавливали бы EMAIL_BACKEND до того, как вы использовали Celery.

Так в ваших 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

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

...