20.13. smtpd — SMTP 服务器 — Python 文档
来自菜鸟教程
Python/docs/2.7/library/smtpd
20.13. smtpd — SMTP 服务器
该模块提供了几个类来实现 SMTP 服务器。 一个是通用的什么都不做的实现,它可以被覆盖,而另外两个提供特定的邮件发送策略。
20.13.1. SMTPServer 对象
- class smtpd.SMTPServer(localaddr, remoteaddr)
- 创建一个新的 SMTPServer 对象,该对象绑定到本地地址 localaddr。 它将 remoteaddr 视为上游 SMTP 中继器。 localaddr 和 remoteaddr 都应该是一个 (host, port) 元组。 该对象继承自 asyncore.dispatcher,因此将在实例化时将自身插入到 asyncore 的事件循环中。
- process_message(peer, mailfrom, rcpttos, data)
- 引发
NotImplementedError
异常。 在子类中覆盖它以对该消息做一些有用的事情。 在构造函数中作为 remoteaddr 传递的任何内容都可以作为_remoteaddr
属性使用。 peer 是远程主机的地址,mailfrom 是信封发起者,rcpttos 是信封收件人,data 是包含内容的字符串电子邮件(应采用 RFC 2822 格式)。
20.13.2. 调试服务器对象
- class smtpd.DebuggingServer(localaddr, remoteaddr)
- 创建一个新的调试服务器。 参数按照 SMTPServer。 消息将被丢弃,并打印在标准输出上。
20.13.3. 纯代理对象
- class smtpd.PureProxy(localaddr, remoteaddr)
- 创建一个新的纯代理服务器。 参数按照 SMTPServer。 一切都将中继到 remoteaddr。 请注意,运行此操作很有可能使您成为开放中继,因此请小心。
20.13.4. MailmanProxy 对象
- class smtpd.MailmanProxy(localaddr, remoteaddr)
- 创建一个新的纯代理服务器。 参数按照 SMTPServer。 一切都将中继到 remoteaddr,除非本地邮递员配置知道地址,在这种情况下,它将通过邮递员处理。 请注意,运行此操作很有可能使您成为开放中继,因此请小心。