【问题标题】:How to send mass mail in Django and get status for every message?如何在 Django 中发送群发邮件并获取每条消息的状态?
【发布时间】:2011-07-07 22:24:40
【问题描述】:

我正在创建一个用于处理各种调查的网络应用程序。管理员可以创建自己的调查并要求用户填写。用户由分配给调查的目标群体定义(因此只有调查目标群体中的用户才能填写调查)。

定义目标组的方法之一是“令牌目标组”。管理员可以决定生成例如25个代币。之后,任何使用特殊链接(当然包含令牌)的人都可以访问调查。

现在回到主要问题: 每个令牌都可能有一个与其自身关联的电子邮件地址。如何安全地发送包含调查访问链接的电子邮件?我可能需要发送几千封电子邮件(我相信最多 10 000 封)。这是一个极端的例子,如此庞大的邮件只是偶尔需要。 但我也希望能够跟踪电子邮件消息的状态(是已发送还是有任何错误?)。我还想确保 SMTP 服务器不会阻止此邮件。如果应用程序保持响应也很好:)(任务应该在后台运行)。

解决这个问题的最佳方法是什么?

就我而言,标准的 Django 邮件功能在这里不会有太大帮助。人们报告说,建立连接并循环通过对他们调用 send() 的消息需要很长时间。它不会“在后台”运行,所以我相信这可能会对应用程序的响应能力产生负面影响,对吧?

我阅读了有关 django-mailer 的信息,但据我了解文档 - 它不允许跟踪消息状态。还是这样?

我还有哪些其他选择?

【问题讨论】:

    标签: django email massmail


    【解决方案1】:

    不确定其余的,但无论是后台任务(无论您最终如何执行),您都需要寻找Celery

    【讨论】:

    • 如果我决定编写自己的应用程序来处理这个问题,Celery 肯定会非常有用。谢谢!这不是整个问题的答案,但仍然为您 +1 :)
    【解决方案2】:

    这里的关键是重复使用连接并且不要为每封电子邮件再次打开它。 Here is a documentation 关于这个主题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-08
      • 2018-02-18
      • 1970-01-01
      • 2017-10-28
      • 2022-12-02
      • 1970-01-01
      相关资源
      最近更新 更多