【问题标题】:How does reddit send email?reddit 如何发送电子邮件?
【发布时间】:2012-07-22 17:01:50
【问题描述】:

我正在尝试向使用 Python 的大型组织学习如何构建他们的代码,以便我可以将他们的一些理论应用到我自己的代码中。

目前我正在查看 reddit 的代码,并对他们如何实现发送作为应用程序操作的一部分生成的电子邮件感兴趣。请参阅:https://github.com/reddit/reddit/blob/master/r2/r2/lib/emailer.py(他们的电子邮件库)和https://github.com/reddit/reddit/blob/master/r2/r2/models/mail_queue.py

我认为 mail_queue.py 包含某种形式的 SqlAlchemy 表支持的电子邮件队列。 是不是这种情况。这是否意味着该表保存在内存中?有人可以让我更清楚一点吗?

来自澳大利亚的欢呼。

附:我可以建议是否有人试图很好地理解如何构建 python 应用程序,他们和我一样。阅读和理解其他人的代码使我能够构建和编写明显更好的代码.. :) 开源的东西很棒!

【问题讨论】:

    标签: python email queue message-queue reddit


    【解决方案1】:

    传统上,电子邮件服务器上的邮件队列是某种磁盘存储。这样做的原因是为了最大限度地减少邮件丢失的机会。例如,邮件服务器会收到一条消息,并且在整个消息通过同步写入成功写入磁盘之前,不会向发送邮件的客户端发送成功的返回码。

    是的,reddit 代码通过 SqlAlchemy 使用数据库作为电子邮件数据存储。

    就存储在内存中的表而言,我无法想象会是这样。通过阅读 SqlAchemy 文档,Table 对象是 SqlAlchemy 只是支持系统的任何数据库中底层表的代理。通常,您不希望该表在内存中,因为您不知道系统将处理多少消息、电子邮件消息有多大以及在临时邮件发送的情况下需要排队多少消息失败。

    【讨论】:

      猜你喜欢
      • 2018-05-31
      • 1970-01-01
      • 2017-01-16
      • 2019-01-09
      • 2011-01-01
      • 2020-01-24
      • 1970-01-01
      相关资源
      最近更新 更多