On this page
20.13. smtpd-SMTP 服务器
源代码: Lib/smtpd.py
该模块提供了几种实现 SMTP 服务器的类。一种是通用的什么都不做的实现,可以将其重写,而其他两种则提供特定的邮件发送策略。
20.13.1. SMTPServer 对象
-
- class *
smtpd.
SMTPServer
(* localaddr , remoteaddr *)
- 创建一个新的SMTPServer对象,该对象绑定到本地地址* localaddr 。它将 remoteaddr *视为上游 SMTP 中继器。 * localaddr 和 remoteaddr *应该都是(host, port)Tuples。该对象继承自asyncore.dispatcher,因此将在实例化时将自身插入asyncore的事件循环中。
- class *
process_message
((peer , mailfrom , rcpttos , data *)- 引发NotImplementedError个 exception。在子类中重写此内容,以对此消息执行一些有用的操作。无论在构造函数中作为* remoteaddr *传递的内容,都可以用作
_remoteaddr
属性。 * peer 是远程主机的地址, mailfrom 是信封的始发者, rcpttos 是信封的收件人, data *是包含电子邮件内容的字符串(应为 RFC 2822格式)。
- 引发NotImplementedError个 exception。在子类中重写此内容,以对此消息执行一些有用的操作。无论在构造函数中作为* remoteaddr *传递的内容,都可以用作
20.13.2. 调试服务器对象
-
- class *
smtpd.
DebuggingServer
(* localaddr , remoteaddr *)
- 创建一个新的调试服务器。参数根据SMTPServer。消息将被丢弃,并在标准输出上打印。
- class *
20.13.3. PureProxy 对象
-
- class *
smtpd.
PureProxy
(* localaddr , remoteaddr *)
- 创建一个新的纯代理服务器。参数根据SMTPServer。一切都会中继到* remoteaddr *。请注意,运行此命令很有可能使您进入开放继电器,因此请小心。
- class *
20.13.4. MailmanProxy 对象
-
- class *
smtpd.
MailmanProxy
(* localaddr , remoteaddr *)
- 创建一个新的纯代理服务器。参数根据SMTPServer。除 nonlocal 邮递员配置知道地址,否则所有内容都将中继到* remoteaddr *,在这种情况下,它将pass邮递员处理。请注意,运行此命令很有可能使您进入开放继电器,因此请小心。
- class *