使用django-anymail配置django-celery-email

时间:2019-03-02 03:44:14

标签: django email sendgrid django-celery django-anymail

我正在使用django-anymail(sendgrid)在我的Web应用程序中发送电子邮件。我想让电子邮件以异步方式发送而不让用户等待一段时间。因此,如何用django-anymail配置django-celery-email。

现在,我的电子邮件配置。是:

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

1 个答案:

答案 0 :(得分:0)

来自django-celery-email readme

  

默认情况下,django-celery-email将使用Django的内置SMTP电子邮件后端...如果您想使用另一个后端,则可以像通常设置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的extra sending options,例如metadatatagstemplate_idenvelope_sender等。如果使用其中任何一种,则需要在设置中让django-celery-email知道它们:

CELERY_EMAIL_MESSAGE_EXTRA_ATTRIBUTES = ['metadata', 'tags']  # or whatever you use

this issue中的更多信息。)