smtpd
smtpd — SMTP Server
源代码:
Lib / smtpd.py
该模块提供了几个类来实现SMTP服务器。一种是通用的无所作为的实现,可以被覆盖,另外两种提供特定的邮件发送策略。
1. SMTPServer对象
class smtpd.SMTPServer(localaddr, remoteaddr)
创建一个SMTPServer
绑定到本地地址localaddr
的新对象。它会将remoteaddr
视为上游SMTP中继。无论localaddr
和remoteaddr
应该是(主机,端口)元组。该对象继承自asyncore.dispatcher
,并将自身插入asyncore
实例化的事件循环中。
process_message(peer, mailfrom, rcpttos, data)
引发NotImplementedError
异常。在子类中重写此操作以对此消息执行一些有用的操作。不管在构造函数中传递的是什么,remoteaddr
都将作为_remoteaddr
属性提供。peer
是远程主机的地址,mailfrom
是信封创建者,rcpttos
是信封收件人,data
是包含电子邮件内容(应该是RFC 2822
格式)的字符串。
2.调试服务器对象
class smtpd.DebuggingServer(localaddr, remoteaddr)
创建一个新的调试服务器。参数是按照SMTPServer
。消息将被丢弃,并打印在stdout上。
3. PureProxy对象
class smtpd.PureProxy(localaddr, remoteaddr)
创建一个新的纯代理服务器。参数是按照SMTPServer
。一切都会被传送到remoteaddr
。请注意,运行这是一个很好的机会让你成为一个开放的继电器,所以请小心。
4. MailmanProxy对象
class smtpd.MailmanProxy(localaddr, remoteaddr)
创建一个新的纯代理服务器。参数是按照SMTPServer
。除非本地邮递员配置知道地址,否则一切都会被转发到remoteaddr
,在这种情况下,邮件将通过邮递员处理。请注意,运行这是一个很好的机会让你成为一个开放的继电器,所以请小心。