20.13. smtpdSMTP 服务器

源程序代码:Lib/smtpd.py


本模块提供几个类以实现SMTP服务器。其中一个是一个通用的什么也不做的实现,它可以被覆盖,而其他两个提供特定的邮件发送策略。

20.13.1. SMTPServer 对象

class smtpd.SMTPServer(localaddr, remoteaddr)

创建一个新的SMTPServer对象,并绑定到本地地址localaddr它将remoteadd作为上游的SMTP中继。它继承自asyncore.dispatcher,并在实例化时将自身插入到asyncore的事件循环。

process_message(peer, mailfrom, rcpttos, data)

引发NotImplementedError异常。在子类中重写此方法以对邮件做一些有用的事情。无论传递给构造函数的是什么remoteaddr,它将作为_remoteaddr属性提供。peer是远程主机的地址,mailfrom是信封发件人,rcpttos是信封收件人,data是一个包含电子邮件的内容字符串(应该为RFC 2822格式)。

20.13.2. DebuggingServer 对象

class smtpd.DebuggingServer(localaddr, remoteaddr)

创建一个新的调试服务器。参数与SMTPServer相同。邮件将被丢弃,并打印到标准输出。

20.13.3. PureProxy 对象

class smtpd.PureProxy(localaddr, remoteaddr)

创建一个新的纯代理服务器。参数与SMTPServer相同。一切都将传送到remoteaddr注意运行这有好的机会,令你变成一个开放中继,所以请小心些。

20.13.4. MailmanProxy 对象

class smtpd.MailmanProxy(localaddr, remoteaddr)

创建一个新的单纯的代理服务器。参数是按SMTPServer一切都将传送到remoteaddr,除非当地邮差配置知道关于一个地址,在这种情况下将处理通过邮递员。注意运行这有好的机会,令你变成一个开放中继,所以请小心些。