當前位置: 首頁>>編程示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。