我正在使用django-anymail(sendgrid)在我的网络应用程序中发送电子邮件。我想让电子邮件以异步方式发送而不让用户等待一段时间。所以,我怎么能用django-anymail配置django-celery-email。
现在,我的电子邮件配置。是:
ANYMAIL = {
"SENDGRID_API_KEY": os.environ.get('SENDGRID_API_KEY')
}
EMAIL_BACKEND = "anymail.backends.sendgrid.EmailBackend"
来自django-celery-email readme:
默认情况下,django-celery-email将使用Django的内置SMTP电子邮件后端...如果您想使用另一个后端,您可以在
CELERY_EMAIL_BACKEND
中设置它,就像您在使用Celery之前通常设置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中的更多信息。)