我正在使用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"
答案 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,例如metadata
,tags
,template_id
,envelope_sender
等。如果使用其中任何一种,则需要在设置中让django-celery-email知道它们:
CELERY_EMAIL_MESSAGE_EXTRA_ATTRIBUTES = ['metadata', 'tags'] # or whatever you use
(this issue中的更多信息。)