python 怎麼發送郵件

1、準備html

一、pop3 :python

  POP3是Post Office Protocol 3的簡稱,即郵局協議的第三個版本,他是規定怎樣將我的計算機鏈接到Internet的郵件服務器和下載電子郵件的協議。它是因特網電子郵件的第一個離線協議的標準。POP3容許用戶從服務器上把郵件存儲到本地計算機上,同時刪除保存在郵件服務器上的郵件,而POP3服務器則是遵循POP3協議的接受郵件服務器,用來接受電子郵件瀏覽器

二、smtp:安全

  SMTP的全稱是Simple Mail Transfer Protocol,即簡單的郵件傳輸協議。它是一組用於從源地址到目的地的地址傳輸郵件的規範,經過它控制郵件的中轉方式。SMTP協議屬於TCP/IP協議簇,它幫助每臺計算機在發送或者中轉信件時找到下個目的地。SMTP服務器就是遵循SMTP協議的發送郵件服務器。SMTP認證,簡單來講就是要求必須在提供了帳戶名和密碼以後才能登錄SMTP服務器。服務器

三、IMAP:app

  IMAP全稱是Iternet Mail Access Protocol,即交互式郵件存取協議,它是跟POP3相似的郵件訪問標準協議之一。不一樣的是,開啓了IMAP後,你在電子郵件客戶端收取的郵件仍然保存在服務器上,同時在客戶端上的操做都會反饋到服務器上,如:刪除郵件、標記郵件等,服務器上的郵件也會作相應的動做。不管從瀏覽器登錄仍是客戶端登錄郵箱看到的郵件以及狀態都是一致的。測試

所以:首先 開啓郵箱的 POP3/smtp/IMAP  ;  獲取郵箱的受權碼 編碼

四、python發郵件須要掌握兩個模塊的用法,smtplib和email,這倆模塊是python自帶的,只需import便可使用。smtplib模塊主要負責發送郵件,email模塊主要負責構造郵件。加密

  smtplib模塊主要負責發送郵件:是一個發送郵件的動做,鏈接郵箱服務器,登陸郵箱,發送郵件(有發件人,收信人,郵件內容)。spa

  email模塊主要負責構造郵件:指的是郵箱頁面顯示的一些構造,如發件人,收件人,主題,正文,附件等

2、 smtp 使用

  能夠經過3種方式登陸 , 明文  /   SSl  /  TLS

一、SSL安全郵件的支持有兩種方案,一種老的是專門開啓一個465端口來接收ssl郵件,另外一種更新的作法是在標準的25端口的smtp上增長一個starttls的命令來支持。#smtp = smtplib.SMTP_SSL(smtpHost,sslPort) 

smtp = smtplib.SMTP_SSL(smtpHost,sslPort)
smtp.ehlo
smtp.login(username,password)

2.tls 

 tls加密方式,通訊過程加密,郵件數據安全,使用正常的smtp端口

smtp = smtplib.SMTP(smtpHost,smtpPort)
smtp.set_debuglevel(True) smtp.ehlo() smtp.starttls() smtp.ehlo() smtp.login(username,password)

3、 emil 使用

email模塊下的mime模塊下有經常使用的三個模塊,三個模塊中有三個大類

MIMEText對象中有三個須要咱們設置的參數,正文內容,正文內容的類型,例如:」text/plain」和」text/html」,正文內容的編碼。

一、普通文本 

# 發送文本內容
text_info = 'hello world \nhahha\n  hahah\n ehhehehehe\nwww.baidu.com'
text_sub = MIMEText(text_info,'plain', 'utf-8')
smtp.send_message(from_addr=fromMail,to_addrs=toMail,msg=text_sub)
 

二、發送附件

#發送附件:
msg = MIMEMultipart('mixed')
file =open(r'D:\PycharmProjects\WechatHelper-master\easy_au\report\report.html','rb').read()
txt = MIMEText(file, 'base64', 'gbk32')
txt["Content-Type"] = 'application/octet-stream'
#如下代碼能夠重命名附件
time_ = str(datetime.datetime.now())
txt.add_header('Content-Disposition', 'attachment', filename='自動化測試報告'+time_+'.html')
msg.attach(txt)

 三、 代碼

----

 

 

 

 

  

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

參考:
https://blog.csdn.net/diyiday/article/details/81504647
https://www.jb51.net/article/167376.htm

http://www.javashuo.com/article/p-wfndkabw-c.html

http://www.javashuo.com/article/p-uizwmcqy-be.html

https://blog.csdn.net/qq_20417499/article/details/80566265

相關文章
相關標籤/搜索