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

问题描述 投票:0回答:1

我正在使用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 email sendgrid django-celery django-anymail
1个回答
0
投票

来自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,如metadatatagstemplate_idenvelope_sender等。如果你使用其中任何一个,你需要让django-celery-email知道他们你的设置:

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

this issue中的更多信息。)

© www.soinside.com 2019 - 2024. All rights reserved.