佳木斯湛栽影视文化发展公司

主頁(yè) > 知識(shí)庫(kù) > Python基于SMTP發(fā)送郵件的方法

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

熱門(mén)標(biāo)簽:Win7旗艦版 語(yǔ)音系統(tǒng) 企業(yè)做大做強(qiáng) 百度AI接口 呼叫中心市場(chǎng)需求 電話運(yùn)營(yíng)中心 客戶(hù)服務(wù) 硅谷的囚徒呼叫中心

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

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

因此我們?cè)汆]件測(cè)試發(fā)送的時(shí)候,可能需要的是 SMTP 郵件發(fā)送服務(wù),通常這個(gè)服務(wù)是所有郵件服務(wù)商都會(huì)提供的。

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

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

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

簡(jiǎn)單來(lái)說(shuō)按照下面的步驟來(lái)做就可以了。

構(gòu)建消息對(duì)象

在 Python 中有一個(gè)庫(kù)為 MIMEMultipart,我們可以使用這個(gè)來(lái)構(gòu)建消息對(duì)象。

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

然后再在這個(gè)對(duì)象中插入正文,你可以插入 HTML 也可以插入純文本。

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

發(fā)送郵件

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

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

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

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

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

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

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

在這一步完成后就可以調(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()

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

完整的測(cè)試代碼請(qǐng)參考 GitHub 上面的:python-tutorials/SendMailSMTP.py at master · cwiki-us-docs/python-tutorials · GitHub

要點(diǎn)

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

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

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

針對(duì)遇到的情況具體問(wèn)題具體分析就可以了。

遵循的原則步驟就是:

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

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

以上就是Python基于SMTP 發(fā)送郵件的方法的詳細(xì)內(nèi)容,更多關(guān)于Python SMTP 發(fā)送郵件的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

您可能感興趣的文章:
  • python實(shí)現(xiàn)自動(dòng)化辦公郵件合并功能
  • Python利用機(jī)器學(xué)習(xí)算法實(shí)現(xiàn)垃圾郵件的識(shí)別
  • Python 發(fā)送SMTP郵件的簡(jiǎn)單教程
  • Python一行代碼實(shí)現(xiàn)自動(dòng)發(fā)郵件功能
  • Python基礎(chǔ)詳解之郵件處理
  • Python 調(diào)用API發(fā)送郵件
  • python基于SMTP發(fā)送QQ郵件
  • python 自動(dòng)監(jiān)控最新郵件并讀取的操作
  • python實(shí)現(xiàn)發(fā)送郵件
  • python 實(shí)現(xiàn)網(wǎng)易郵箱郵件閱讀和刪除的輔助小腳本
  • python如何發(fā)送帶有附件、正文為HTML的郵件
  • python使用Windows的wmic命令監(jiān)控文件運(yùn)行狀況,如有異常發(fā)送郵件報(bào)警
  • 用python監(jiān)控服務(wù)器的cpu,磁盤(pán)空間,內(nèi)存,超過(guò)郵件報(bào)警
  • python郵件中附加文字、html、圖片、附件實(shí)現(xiàn)方法
  • Python用20行代碼實(shí)現(xiàn)完整郵件功能

標(biāo)簽:喀什 山西 安康 海南 長(zhǎng)沙 崇左 濟(jì)南 山西

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Python基于SMTP發(fā)送郵件的方法》,本文關(guān)鍵詞  ;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢(xún)

    • 400-1100-266
    澜沧| 湛江市| 清远市| 彰化县| 霍城县| 门头沟区| 宣武区| 乌什县| 定日县| 栾川县| 通山县| 睢宁县| 孟津县| 天祝| 崇州市| 海兴县| 寿宁县| 修文县| 财经| 醴陵市| 陇川县| 巩留县| 韶山市| 内黄县| 连城县| 宁海县| 满洲里市| 海兴县| 玉溪市| 长岭县| 敦化市| 蓝田县| 慈溪市| 攀枝花市| 从江县| 广宗县| 南木林县| 金川县| 天祝| 陕西省| 武功县|