当前位置: 首页>>编程示例 >>用法及示例精选 >>正文


Python smtplib.SMTP用法及代码示例

用法:

class smtplib.SMTP(host='', port=0, local_hostname=None, [timeout, ]source_address=None)

SMTP 实例封装了一个 SMTP 连接。它的方法支持完整的 SMTP 和 ESMTP 操作。如果给出了可选的主机和端口参数,则在初始化期间使用这些参数调用 SMTP connect() 方法。如果指定,local_hostname 将用作 HELO/EHLO 命令中本地主机的 FQDN。否则,使用 socket.getfqdn() 找到本地主机名。如果 connect() 调用返回的不是成功代码,则会引发 SMTPConnectError。可选的 timeout 参数指定连接尝试等阻塞操作的超时(以秒为单位)(如果未指定,将使用全局默认超时设置)。如果超时到期,则会引发 TimeoutError。可选的source_address 参数允许绑定到具有多个网络接口的机器中的某个特定源地址,和/或某个特定源 TCP 端口。在连接之前,套接字需要一个 2 元组(主机、端口)作为其源地址绑定。如果省略(或者如果主机或端口分别为 '' 和/或 0),将使用操作系统默认行为。

对于正常使用,您应该只需要初始化/连接、sendmail()SMTP.quit() 方法。下面包括一个示例。

SMTP 类支持with 语句。当这样使用时,SMTP QUIT 命令会在with 语句退出时自动发出。例如:

>>> from smtplib import SMTP
>>> with SMTP("domain.org") as smtp:
...     smtp.noop()
...
(250, b'Ok')
>>>

所有命令都将引发带有参数 selfdata 的审计事件 smtplib.SMTP.send ,其中 data 是即将发送到远程主机的字节。

在 3.3 版中更改:支持with添加了声明。

在 3.3 版中更改:添加了source_address 参数。

3.5 版中的新函数:SMTPUTF8 扩展名(RFC 6531) 现在支持。

在 3.9 版中更改:如果timeout参数设置为零,它将引发ValueError防止创建非阻塞套接字

相关用法


注:本文由纯净天空筛选整理自python.org大神的英文原创作品 smtplib.SMTP。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。