中文字幕日韩精品一区二区免费_精品一区二区三区国产精品无卡在_国精品无码专区一区二区三区_国产αv三级中文在线

怎么用Python實(shí)現(xiàn)發(fā)郵件功能

這篇文章主要介紹“怎么用Python實(shí)現(xiàn)發(fā)郵件功能”,在日常操作中,相信很多人在怎么用Python實(shí)現(xiàn)發(fā)郵件功能問(wèn)題上存在疑惑,小編查閱了各式資料,整理出簡(jiǎn)單好用的操作方法,希望對(duì)大家解答”怎么用Python實(shí)現(xiàn)發(fā)郵件功能”的疑惑有所幫助!接下來(lái),請(qǐng)跟著小編一起來(lái)學(xué)習(xí)吧!

站在用戶(hù)的角度思考問(wèn)題,與客戶(hù)深入溝通,找到平谷網(wǎng)站設(shè)計(jì)與平谷網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗(yàn),讓設(shè)計(jì)與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個(gè)性化、用戶(hù)體驗(yàn)好的作品,建站類(lèi)型包括:成都網(wǎng)站設(shè)計(jì)、網(wǎng)站建設(shè)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣、域名申請(qǐng)、網(wǎng)站空間、企業(yè)郵箱。業(yè)務(wù)覆蓋平谷地區(qū)。

準(zhǔn)備

  • 編輯器:sublime text 3

  • 模塊:smtplib和email

項(xiàng)目實(shí)施

1.安裝

pip install smtplib pip install email

注:這里有一個(gè)小坑,就是安裝smtplib不能像上面那樣直接安裝,那樣會(huì)安裝不上的,你得先安裝PyEmail,因?yàn)槟鉺mtplib  集成在了這個(gè)模塊中了,就好比pillow模塊集成在PIL中一樣的,另一個(gè)正常安裝即可。

2.開(kāi)通pop3 SMTP imap 服務(wù)了解郵箱授權(quán)碼

任何一個(gè)郵箱你如果想要發(fā)郵件,你得先開(kāi)通以上服務(wù),讓郵件能夠通信,而且還得有郵箱授權(quán)碼,比如說(shuō)QQ郵箱:

打開(kāi)QQ郵箱,選擇設(shè)置--------賬戶(hù),然后開(kāi)啟服務(wù)。

怎么用Python實(shí)現(xiàn)發(fā)郵件功能
怎么用Python實(shí)現(xiàn)發(fā)郵件功能

開(kāi)啟服務(wù)后,點(diǎn)擊生成授權(quán)碼,保存好授權(quán)碼。獲取授權(quán)碼只需要你用注冊(cè)手機(jī)號(hào)發(fā)短信或者動(dòng)態(tài)令牌即可。

3.構(gòu)建郵件端口,建立連接

import smtplib sm=smtp.SMTP()  # 初始化連接 sm.connect('郵件服務(wù)器地址','端口')  #建立連接 sm.login('郵箱賬號(hào)','郵箱密碼/授權(quán)碼')  #登陸賬戶(hù) sm.sendmail('郵件發(fā)送方','郵件接受方','郵件內(nèi)容') #發(fā)送郵件 sm.quit() #關(guān)閉連接,結(jié)束郵件服務(wù)

了解了以上的知識(shí)后,我們來(lái)試著登陸一下吧,我以QQ郵箱為例:

怎么用Python實(shí)現(xiàn)發(fā)郵件功能

有這樣的標(biāo)識(shí)表示登陸成功,順便強(qiáng)調(diào)一句,在這里我為什么沒(méi)有配置郵件服務(wù)器端口,因?yàn)榉?wù)器已經(jīng)幫我們配置好了,默認(rèn)的都是25號(hào)端口,如果你擔(dān)心郵件的安全問(wèn)題,比如會(huì)被黑客截胡,你也可以使用ssl鏈接傳輸:

怎么用Python實(shí)現(xiàn)發(fā)郵件功能

同樣它的端口也是默認(rèn)配置好了,他的端口號(hào)為465,為了安全,咱們選擇這項(xiàng)。

4.構(gòu)建郵件內(nèi)容部分

這里我們需要用到email模塊,我們都知道,郵件一般可以發(fā)很多東西,比如說(shuō)文本,圖片,文件等等,那么我們來(lái)看看吧。

一、文本

導(dǎo)入模塊

from email.mime.text import MIMEText

填充文本

在此之前我們得知道它的具體用法:

  • MIMEText(‘郵件內(nèi)容’,‘類(lèi)型’, '編碼')

  • 郵件內(nèi)容為字符串

  • 類(lèi)型: text/plain text/html

  • 編碼 : utf-8 gbk

構(gòu)造文本

MIMEText('hello','text/plain','utf-8')

構(gòu)造超文本

MIMEText('<a href='www.baidu.com'>點(diǎn)擊此處有驚喜</a>','text/html','utf-8')

下面我們來(lái)實(shí)際操作下吧。

怎么用Python實(shí)現(xiàn)發(fā)郵件功能

怎么用Python實(shí)現(xiàn)發(fā)郵件功能

非常成功收到了郵件了。正是2091500484這個(gè)郵箱給我發(fā)的。當(dāng)然我們這樣只是實(shí)現(xiàn)了最簡(jiǎn)單的功能,

我們需要將它格式規(guī)范下,比如給它添加個(gè)開(kāi)頭結(jié)尾什么的。我們需要導(dǎo)入構(gòu)建郵件完整內(nèi)容的模塊:

from email.header import Header

然后設(shè)置頭部,內(nèi)容,尾部

msg1['From']=Header('你是豬嗎')  #設(shè)置發(fā)件人昵稱(chēng) msg1['To']=Header('hwhrr123321@163.com') #設(shè)置收件人昵稱(chēng) msg1['Subject'] = Header('我是豬') #設(shè)置標(biāo)題

 怎么用Python實(shí)現(xiàn)發(fā)郵件功能

可以看到,是不是覺(jué)得很有趣了,快來(lái)試試吧,哈哈哈。。。

二、圖片

發(fā)了文本后我們還想發(fā)一張圖片,那該怎么辦呢?莫慌,此時(shí)需要先導(dǎo)入發(fā)圖片的模塊:

from email.mime.image import MIMEImage

然后我們?cè)谧x取圖片文件將它添加到郵件中去。

ff=open('1.jpg','rb').read() #打開(kāi)文件 fd=MIMEImage(ff,'subtype')    #初始化 fd.add_header('Content-ID','1.jpg')  #添加到頭部

 怎么用Python實(shí)現(xiàn)發(fā)郵件功能

可以看到圖片并沒(méi)有顯示出來(lái),那么這是怎么回事,哦,原來(lái)圖片是依托附件而存在的,要么是html要么是附件,但是兩者都需要附件模塊的支持,下面我們導(dǎo)入附件模塊:

from email.mime.multipart import MIMEMultipart

1.將圖片插入到html中

也就是將圖片插入到正文部分,而非附件的形式。

msg3 = MIMEMultipart('related') msg3['From'] = '你是豬嗎' msg3['To'] = 'hwhrr123321@163.com' msg3['Subject'] = '我是豬' msg4 = MIMEMultipart('alternative') #構(gòu)建一個(gè)附件 msg3.attach(msg4)  #將附件引入到另一個(gè)附件 text="""    <html>    <body>    <img src='cid:img' tittle='I am  pig'>    </body>    </html> """ msg4.attach(MIMEText(text, 'html', 'utf-8')) #將html插入到附件中 ff=open('2.jpg','rb') img = MIMEImage(ff.read())  #將圖片讀取到附件中 ff.close() img.add_header('Content-ID','<img>') #添加圖片頭部 msg3.attach(img)   #將圖片添加到附件 sm.sendmail('2091500484@qq.com','hwhrr123321@163.com',msg3.as_string()) #發(fā)送 sm.quit()

可以看出,過(guò)程還是比較復(fù)雜的,比單純附件添加圖片麻煩點(diǎn),主要是嵌套了一層附件結(jié)構(gòu)。

怎么用Python實(shí)現(xiàn)發(fā)郵件功能

2.將圖片引入到附件中

這個(gè)比較好實(shí)現(xiàn)。如圖:

怎么用Python實(shí)現(xiàn)發(fā)郵件功能

三、文件

在發(fā)送文件前,我們要考慮的一個(gè)問(wèn)題是,我們讀取它要以二進(jìn)制的形式,然后再將它添加到附件中,搞懂了這個(gè)就好辦了。

1.讀取文件

這里我們需要構(gòu)造一個(gè)base64的一個(gè)數(shù)據(jù)流讀取文件:

msg6=MIMEMultipart() txt=MIMEText(open('fd.txt','rb').read(), 'base64', 'utf-8')

2.設(shè)置傳輸類(lèi)型

txt["Content-Type"] = 'application/octet-stream'

3.設(shè)置附件名稱(chēng)

txt["Content-Disposition"] = 'attachment; filename = "fd.txt" '

4.將文件添加到附件中

msg6.attach(txt)

最后就成功將文件添加到了附件中了。

怎么用Python實(shí)現(xiàn)發(fā)郵件功能

項(xiàng)目總結(jié)

以上便是我對(duì)郵件發(fā)送的所有感悟了,另外如果你想將郵件傳輸時(shí)的過(guò)程直觀展示出來(lái)的話(huà)只需在郵件服務(wù)器登陸的前一句加上:

sm.set_debuglevel(1)

到此,關(guān)于“怎么用Python實(shí)現(xiàn)發(fā)郵件功能”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識(shí),請(qǐng)繼續(xù)關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編會(huì)繼續(xù)努力為大家?guī)?lái)更多實(shí)用的文章!

新聞名稱(chēng):怎么用Python實(shí)現(xiàn)發(fā)郵件功能
文章轉(zhuǎn)載:http://www.rwnh.cn/article25/jipcji.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供微信小程序網(wǎng)站導(dǎo)航、用戶(hù)體驗(yàn)、網(wǎng)站內(nèi)鏈、云服務(wù)器、App設(shè)計(jì)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

搜索引擎優(yōu)化
通州市| 祁阳县| 通城县| 读书| 海兴县| 冷水江市| 康保县| 大邑县| 望江县| 万源市| 剑川县| 唐河县| 丹凤县| 西盟| 亳州市| 卢龙县| 甘孜| 黑河市| 钟山县| 衡山县| 乾安县| 绥阳县| 阳信县| 温泉县| 梁平县| 大姚县| 万荣县| 茶陵县| 仪陇县| 山东| 壶关县| 东阿县| 紫云| 仙桃市| 上饶市| 曲阜市| 广灵县| 巫山县| 铜梁县| 龙陵县| 宾川县|