0

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

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

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

1 回答 1

3

来自 django-celery-email自述文件

默认情况下,django-celery-email 将使用 Django 的内置 SMTP 电子邮件后端……如果您想使用另一个后端,您可以像使用 Celery 之前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 的额外发送选项,如metadata, tags, template_id,envelope_sender等。如果您使用其中任何一个,您需要让 django-celery-email 在您的设置中知道它们:

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

本期更多信息。)

于 2019-03-06T20:49:57.827 回答