smtpd

源代码: Lib / smtpd.py

该模块提供了几个类来实现SMTP服务器。一种是通用的无所作为的实现,可以被覆盖,另外两种提供特定的邮件发送策略。

1. SMTPServer对象

class smtpd.SMTPServer(localaddr, remoteaddr)

创建一个SMTPServer绑定到本地地址localaddr的新对象。它会将remoteaddr视为上游SMTP中继。无论localaddrremoteaddr应该是(主机,端口)元组。该对象继承自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,在这种情况下,邮件将通过邮递员处理。请注意,运行这是一个很好的机会让你成为一个开放的继电器,所以请小心。

扫码关注云+社区

领取腾讯云代金券