【问题标题】:Configuring django-celery-email with django-anymail使用 django-anymail 配置 django-celery-email
【发布时间】:2019-03-02 03:44:14
【问题描述】:

我正在使用 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】:

    来自 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。)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-06-30
      • 2015-04-30
      • 2011-10-01
      • 2015-06-04
      • 2018-08-02
      • 2011-06-19
      • 2014-10-05
      相关资源
      最近更新 更多