日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
手把手教你使用Python輕松搞定發(fā)郵件

 前言

為鹽都等地區(qū)用戶提供了全套網(wǎng)頁設(shè)計(jì)制作服務(wù),及鹽都網(wǎng)站建設(shè)行業(yè)解決方案。主營業(yè)務(wù)為成都做網(wǎng)站、成都網(wǎng)站設(shè)計(jì)、鹽都網(wǎng)站設(shè)計(jì),以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務(wù)。我們深信只要達(dá)到每一位用戶的要求,就會得到認(rèn)可,從而選擇與我們長期合作。這樣,我們也可以走得更遠(yuǎn)!

現(xiàn)在生活節(jié)奏加快,人們之間交流方式也有了天差地別,為了更加便捷的交流溝通,電子郵件產(chǎn)生了,眾所周知,電子郵件其實(shí)就是客戶端和服務(wù)器端發(fā)送接受數(shù)據(jù)一樣,他有一個(gè)發(fā)信和一個(gè)收信的功能,電子郵件的通信協(xié)議為SMTP ,POP3,IMAP,而且他們都屬于tcp/ip協(xié)議,像我們經(jīng)常用到的QQ郵箱,網(wǎng)易郵箱,這些都是同樣的模式。

準(zhǔn)備

  • 編輯器:sublime text 3
  • 模塊:smtplib和email

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

1.安裝

 
 
 
 
  1. pip install smtplib 
  2. pip install email 

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

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

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

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

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

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

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

了解了以上的知識后,我們來試著登陸一下吧,我以QQ郵箱為例:

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

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

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

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

一、文本

導(dǎo)入模塊

 
 
 
 
  1. from email.mime.text import MIMEText 

填充文本

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

  • MIMEText(‘郵件內(nèi)容’,‘類型’, '編碼')
  • 郵件內(nèi)容為字符串
  • 類型: text/plain text/html
  • 編碼 : utf-8 gbk

構(gòu)造文本

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

構(gòu)造超文本

 
 
 
 
  1. MIMEText('點(diǎn)擊此處有驚喜','text/html','utf-8') 

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

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

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

 
 
 
 
  1. from email.header import Header 

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

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

 

可以看到,是不是覺得很有趣了,快來試試吧,哈哈哈。

二、圖片

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

 
 
 
 
  1. from email.mime.image import MIMEImage 

然后我們在讀取圖片文件將它添加到郵件中去。

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

 

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

 
 
 
 
  1. from email.mime.multipart import MIMEMultipart 

1.將圖片插入到html中

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

 
 
 
 
  1. msg3 = MIMEMultipart('related') 
  2. msg3['From'] = '你是豬嗎' 
  3. msg3['To'] = 'hwhrr123321@163.com' 
  4. msg3['Subject'] = '我是豬' 
  5. msg4 = MIMEMultipart('alternative') #構(gòu)建一個(gè)附件 
  6. msg3.attach(msg4)  #將附件引入到另一個(gè)附件 
  7. text=""" 
  8.     
  9.     
  10.     
  11.     
  12.     
  13. """ 
  14. msg4.attach(MIMEText(text, 'html', 'utf-8')) #將html插入到附件中 
  15. ff=open('2.jpg','rb') 
  16. img = MIMEImage(ff.read())  #將圖片讀取到附件中 
  17. ff.close() 
  18. img.add_header('Content-ID','') #添加圖片頭部 
  19. msg3.attach(img)   #將圖片添加到附件 
  20. sm.sendmail('2091500484@qq.com','hwhrr123321@163.com',msg3.as_string()) #發(fā)送 
  21. sm.quit() 

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

2.將圖片引入到附件中

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

三、文件

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

1.讀取文件

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

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

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

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

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

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

4.將文件添加到附件中

 
 
 
 
  1. msg6.attach(txt) 

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

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

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

 
 
 
 
  1. sm.set_debuglevel(1) 

這樣便可以將所有傳輸過程打印在終端了。通過對郵件的學(xué)習(xí),可以極大地便利我們的生活,你可以使用郵件來給你設(shè)置一個(gè)計(jì)劃表,通過程序?qū)崿F(xiàn),每天按時(shí)發(fā)送郵件,是不是很高逼格了,希望今天這篇文章能讓大家對郵件有個(gè)全新的認(rèn)識。


網(wǎng)頁標(biāo)題:手把手教你使用Python輕松搞定發(fā)郵件
網(wǎng)站地址:http://www.5511xx.com/article/cdihggo.html