16.2.1 连接到 SMTP 服务器
如果你曾設(shè)置了 Thunderbird、Outlook 或其他程序,連接到你的電子郵件賬戶,
你可能熟悉配置 SMTP 服務(wù)器和端口。這些設(shè)置因電子郵件提供商而不同,但在網(wǎng)上搜索“<你的提供商> SMTP 設(shè)置”,應(yīng)該能找到相應(yīng)的服務(wù)器和端口。
SMTP 服務(wù)器的域名通常是電子郵件提供商的域名,前面加上 SMTP。例如, Gmail 的 SMTP 服務(wù)器是 smtp.gmail.com。表 16-1 列出了一些常見的電子郵件提供商及其?
SMTP 服務(wù)器(端口是一個整數(shù)值,幾乎總是 587,該端口由命令加密標準 TLS 使用)。
?
得到電子郵件提供商的域名和端口信息后,調(diào)用 smtplib.SMTP()創(chuàng)建一個 SMTP
對象,傳入域名作為一個字符串參數(shù),傳入端口作為整數(shù)參數(shù)。SMTP 對象表示與 SMTP 郵件服務(wù)器的連接,它有一些發(fā)送電子郵件的方法。例如,下面的調(diào)用創(chuàng)建了一個 SMTP 對象,連接到Gmail:
>>> ?smtpObj ?= ?smtplib.SMTP('smtp.gmail.com', ?587)
>>> ?type(smtpObj)
<class ?'smtplib.SMTP'>
輸入 type(smtpObj)表明,smtpObj 中保存了一個 SMTP 對象。你需要這個 SMTP對象,以便調(diào)用它的方法,登錄并發(fā)送電子郵件。如果 smtplib.SMTP()調(diào)用不成功,你的?
SMTP ?服務(wù)器可能不支持 TLS ?端口 587。在這種情況下,你需要利用 smtplib.SMTP_SSL()和 465 端口,來創(chuàng)建SMTP 對象。
>>> ?smtpObj ?= ?smtplib.SMTP_SSL('smtp.gmail.com', ?465)
意 ? ? ? 如果沒有連接到因特網(wǎng),Python 將拋出 socket.gaierror: [Errno 11004] getaddrinfo failed 或類似的異常。
對于你的程序,TLS 和 SSL 之間的區(qū)別并不重要。只需要知道你的 SMTP 服務(wù)器使用哪種加密標準,這樣就知道如何連接它。在接下來的所有交互式環(huán)境示例中, smtpObj?
變量將包含smtplib.SMTP()或smtplib.SMTP_SSL()函數(shù)返回的SMTP 對象。
?
總結(jié)
以上是生活随笔為你收集整理的16.2.1 连接到 SMTP 服务器的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 主动轮廓模型——Snake分割算法 ma
- 下一篇: honeywell1900扫描枪的使用说