【问题标题】:Creating Python Email (receiving) server创建 Python 电子邮件(接收)服务器
【发布时间】:2012-06-06 16:36:41
【问题描述】:

我正在尝试为 Linux VPS 生成一个简单的 python 脚本,该脚本将允许我接收邮件,(然后我可以在 python 中对其进行处理,例如将其打印到标准输出)。没有比这更复杂的了。

我不想使用“繁重”的解决方案或服务器程序,我真的只是在追求一个可以运行并且能够接收邮件的简单 python 脚本。

Pythons 的 smtpd 模块是否足以完成这项任务?到目前为止,我听到了相互矛盾的意见。如果没有,你还有什么建议?也许您自己编写了一些代码?

在这个阶段,即使像 lamson 这样的项目也显得过于繁重(尽管如果我找不到更好的解决方案,这可能是不可避免的)。

【问题讨论】:

标签: python linux email smtp


【解决方案1】:

Pythons smtpd 就足够了。

您可能还想看看inbox.pythis example

【讨论】:

  • 谢谢。这正是我所追求的信息。当我阅读 inbox.py 并看到“这是您所见过的最简单的 SMTP 服务器。一个实例每秒应处理超过一千封电子邮件”时。我爆炸了。
【解决方案2】:

是的 SMTPD 模块将提供完整的帮助。 Example code is here

import smtpd
import asyncore

class CustomSMTPServer(smtpd.SMTPServer):

    def process_message(self, peer, mailfrom, rcpttos, data):
        print 'Receiving message from:', peer
        print 'Message addressed from:', mailfrom
        print 'Message addressed to  :', rcpttos
        print 'Message length        :', len(data)
        return

server = CustomSMTPServer(('127.0.0.1', 1025), None)
asyncore.loop()

【讨论】:

  • 如何测试它??什么邮件地址正在收听,我应该使用它来接收邮件??
  • 我意识到我可以使用 telnet 连接到它。远程登录 127.0.0.1 1025
  • 方法签名应该是def process_message(self, peer, mailfrom, rcpttos, data, mail_options=None, rcpt_options=None):,以防止出现一些异常。
猜你喜欢
  • 1970-01-01
  • 2011-02-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-11-27
  • 2017-08-13
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多