国产成人精品亚洲777人妖,欧美日韩精品一区视频,最新亚洲国产,国产乱码精品一区二区亚洲

您的位置:首頁技術(shù)文章
文章詳情頁

Python基于SMTP發(fā)送郵件的方法

瀏覽:98日期:2022-06-24 10:14:13

在很多時候,使用 Python 發(fā)送郵件可能沒有辦法使用郵件服務(wù)器提供的 API,因?yàn)椴皇撬械泥]件服務(wù)商都會提供 API 供客戶使用的。

通常使用郵件 API 的郵件發(fā)送服務(wù)都需要額外的收費(fèi)。

因此我們再郵件測試發(fā)送的時候,可能需要的是 SMTP 郵件發(fā)送服務(wù),通常這個服務(wù)是所有郵件服務(wù)商都會提供的。

要使用 SMTP 郵件發(fā)送服務(wù),你需要有下面的信息才可以完成和測試:

SMTP 郵件服務(wù)器的地址,端口,登錄用戶名和登錄用戶密碼 發(fā)送和接收郵件的地址 郵件的主題和正文

看起來是不是有點(diǎn)復(fù)雜,實(shí)際上,Python 提供了一個sendmail 的方法,這個方法在 smtplib 庫中。

Python基于SMTP發(fā)送郵件的方法

簡單來說按照下面的步驟來做就可以了。

構(gòu)建消息對象

在 Python 中有一個庫為 MIMEMultipart,我們可以使用這個來構(gòu)建消息對象。

Python基于SMTP發(fā)送郵件的方法

要做的事情也比較簡單,在定義 MIMEMultipart 對象后,你需要在這個對象中設(shè)置是誰發(fā)送的,發(fā)送給誰,主題是什么。

然后再在這個對象中插入正文,你可以插入 HTML 也可以插入純文本。

為了讓郵件比較美觀,通常我們都會插入 HTML 的文本,很多時候?yàn)榱瞬迦敫嗟臄?shù)據(jù),我們還可能會用到模板。

發(fā)送郵件

在定義完成消息對象后,我們就可以發(fā)送郵件了。

在發(fā)送郵件之前,我們需要初始化 SMTP 對象,通常使用的是 smtplib.SMTP(smtpserver) 方法。

在這個方法中,我們會定義發(fā)送郵件服務(wù)器的地址和端口。

隨后我們可能會調(diào)用一個 starttls 方法,這個方法是希望發(fā)送郵件服務(wù)器使用的是 TLS 模式。

隨著技術(shù)的進(jìn)步,和安全的考慮,很多郵件發(fā)送服務(wù)器都要求使用 TLS 模式來進(jìn)行發(fā)送。

然后使用 server.login(email_user, email_passwd) 方法來登錄服務(wù)器。

在上面的步驟完成后,我們就等于完成了你的 Python 代碼和郵件服務(wù)器的通信了,你的代碼在這個時候會拿到服務(wù)器的對象了,并且完成了對象的初始化了。

在這一步完成后就可以調(diào)用 sendmail 函數(shù)發(fā)送郵件。

當(dāng)郵件發(fā)送完成后,不要忘記關(guān)閉郵件服務(wù)器的連接。

# Connect to the SMTP server server = smtplib.SMTP(smtpserver) server.starttls() server.login(email_user, email_passwd) sending_response = server.sendmail(from_addr, to_addr, message.as_string()) print(sending_response) server.quit()

針對上面的發(fā)送服務(wù),請參考下上面提供的偽代碼。

完整的測試代碼請參考 GitHub 上面的:python-tutorials/SendMailSMTP.py at master · cwiki-us-docs/python-tutorials · GitHub

要點(diǎn)

Python 發(fā)送郵件的服務(wù)還是比較簡單的。

因?yàn)猷]件發(fā)送服務(wù)都需要和第三方的郵件服務(wù)器進(jìn)行通信,在這個通信的過程中,最重要的步驟就是先要獲得郵件服務(wù)器的鏈接。

通常這個鏈接因?yàn)橛蟹阑饓Γl(fā)送用戶名限制,密碼要求等等可能會導(dǎo)致連接獲得失敗而沒有辦法拿到連接服務(wù)器的對象。

針對遇到的情況具體問題具體分析就可以了。

遵循的原則步驟就是:

構(gòu)建消息 獲得服務(wù)器連接 發(fā)送郵件 關(guān)閉服務(wù)器連接

需要注意的是不要忘記關(guān)閉服務(wù)器連接。

以上就是Python基于SMTP 發(fā)送郵件的方法的詳細(xì)內(nèi)容,更多關(guān)于Python SMTP 發(fā)送郵件的資料請關(guān)注好吧啦網(wǎng)其它相關(guān)文章!

標(biāo)簽: Python 編程
相關(guān)文章:
主站蜘蛛池模板: 肥西县| 金乡县| 安仁县| 通州区| 东阳市| 呼和浩特市| 宜兰县| 西乌| 公安县| 陆丰市| 万源市| 蕉岭县| 金华市| 静安区| 且末县| 南木林县| 上蔡县| 措美县| 静海县| 镇雄县| 嵊泗县| 松潘县| 九寨沟县| 平利县| 两当县| 华宁县| 合水县| 东乌珠穆沁旗| 武清区| 敦煌市| 延庆县| 郸城县| 开封市| 海伦市| 电白县| 章丘市| 罗田县| 宽甸| 抚宁县| 勐海县| 老河口市|