python selenium2示例 - email發送
前言
在進行日常的自動化測試實踐中,我們總是需要將測試過程中的記錄、結果等等等相關信息通過自動的手段發送給相關人員。python的smtplib、email模塊為我們提供了很好的email發送等功能的實現。
純文本郵件
在通常情況下,我們需要發送大量的純文本類的郵件通知,或是發送概要性測試報告時,會用到此類發送方式,示例代碼如下:
#-*- coding:utf-8 -*-
__author__ = u‘苦葉子‘
import smtplib
from email.mime.text import MIMEText
from email.header import Header
if __name__ == ‘__main__‘:
sender = [email protected] # 發送人郵件地址
receiver = [email protected] # 接收人郵件地址
subject = u‘python email文本郵件發送測試‘
smtpserver = u‘smtp.163.com‘ # smtp服務
username = u‘testname‘ # 發送人郵件用戶名或專用於smtp賬戶用戶名
password = u‘testpassword‘ # 發送人郵件密碼或專用於smtp賬戶的密碼
msg = MIMEText(u‘你好‘,‘text‘,‘utf-8‘) # 文本格式郵件 正文內容
msg[‘Subject‘] = Header(subject,‘utf-8‘) # 郵件標題
smtp = smtplib.SMTP() # 初始化一個smtp對象
smtp.connect(‘smtp.163.com‘) # 連接至smtp服務器
smtp.login(username, password) # 登錄smtp服務
smtp.sendmail(sender, receiver, msg.as_string()) # 發送郵件
smtp.quit() # 發送完成後關閉連接
HTML形式的郵件
通常情況下,我們經常生成html格式的測試報告或記錄,如果采用文本郵件方式發送,則html格式的報告或記錄會將html標簽也顯示出來,那麽為了讓郵件接收者能夠正常的看到html格式的報告,則需要在郵件發送時,對相應的參數進行配置,以便郵件客戶端能正常解析html格式的郵件,示例如下:
#-*- coding:utf-8 -*-
__author__ = u‘苦葉子‘
import smtplib
from email.mime.text import MIMEText
from email.header import Header
if __name__ == ‘__main__‘:
sender = [email protected] # 發送人郵件地址
receiver = [email protected] # 接收人郵件地址
subject = u‘python email HTML形式郵件發送測試‘
smtpserver = u‘smtp.163.com‘ # smtp服務
username = u‘testname‘ # 發送人郵件用戶名或專用於smtp賬戶用戶名
password = u‘testpassword‘ # 發送人郵件密碼或專用於smtp賬戶的密碼
msg = MIMEText(u‘<html><h1>你好,這是html格式的郵件,哇哢哢</h1></html>‘,‘html‘,‘utf-8‘) # html格式郵件
msg[‘Subject‘] = Header(subject,‘utf-8‘) # 郵件標題
smtp = smtplib.SMTP() # 初始化一個smtp對象
smtp.connect(‘smtp.163.com‘) # 連接至smtp服務器
smtp.login(username, password) # 登錄smtp服務
smtp.sendmail(sender, receiver, msg.as_string()) # 發送郵件
smtp.quit() # 發送完成後關閉連接
帶附件的郵件
文本和html格式的郵件能滿足您的需要嘛?仔細回顧下,測試過程中是不是還有很多的附件要進行發送?在自動化測試過程中是不是有很多截圖?等等....是的,我們還需要發送帶附件的郵件來滿足我們日常的測試需要,下面看看帶附件的郵件發送示例:
#-*- coding:utf-8 -*-
__author__ = u‘苦葉子‘
import smtplib
from email.mime.text import MIMEText
from email.header import Header
if __name__ == ‘__main__‘:
sender = [email protected] # 發送人郵件地址
receiver = [email protected] # 接收人郵件地址
subject = u‘python email 附件郵件發送測試‘
smtpserver = u‘smtp.163.com‘ # smtp服務
username = u‘testname‘ # 發送人郵件用戶名或專用於smtp賬戶用戶名
password = u‘testpassword‘ # 發送人郵件密碼或專用於smtp賬戶的密碼
msg = MIMEMultipart(‘附件‘)
msg[‘Subject‘] = Header(subject,‘utf-8‘)
#構造附件
att = MIMEText(open(‘C:\\1.jpg‘,‘rb‘).read(),‘base64‘,‘utf-8‘) # 讀取附件
att["Content-Type"] =‘application/octet-stream‘
att["Content-Disposition"] =‘attachment; filename="1.jpg"‘
msg.attach(att) # 關聯附件
##############################################
smtp = smtplib.SMTP()
smtp.connect(‘smtp.163.com‘)
smtp.login(username, password)
smtp.sendmail(sender, receiver, msg.as_string())
smtp.quit()
群發郵件
在上述幾個示例中,所有的郵件接收都是單個人,實際的應用中,我們則需要給一群人進行郵件發送,下面看看示例:
#-*- coding:utf-8 -*-
__author__ =u‘苦葉子‘
importsmtplib
fromemail.mime.textimportMIMEText
fromemail.headerimportHeader
if__name__ ==‘__main__‘:
# 發送人郵件地址
sender [email protected]
# 群發接收人郵件地址 !!!!!
receiver = [[email protected],[email protected],[email protected]]
# 郵件標題
subject =u‘python email群發郵件發送測試‘
# smtp服務
smtpserver =u‘smtp.163.com‘
# 發送人郵件用戶名或專用於smtp賬戶用戶名
username =u‘testname‘
# 發送人郵件密碼或專用於smtp賬戶的密碼
password =u‘testpassword‘
# 文本格式郵件 正文內容
msg = MIMEText(u‘你好群發‘,‘text‘,‘utf-8‘)
# 郵件標題
msg[‘Subject‘] = Header(subject,‘utf-8‘)
# 初始化一個smtp對象
smtp = smtplib.SMTP()
# 連接至smtp服務器
smtp.connect(‘smtp.163.com‘)
# 登錄smtp服務
smtp.login(username, password)
# 發送郵件
smtp.sendmail(sender, receiver, msg.as_string())
# 發送完成後關閉連接
smtp.quit()
綜合示例
在上述所有的示例都是按功能分類來進行一一演示,接下來的示例,則是包含了上述所有功能:
#-*- coding:utf-8 -*-
__author__ = u‘苦葉子‘
import smtplib
form email.mime.multipart import MIMEMultpart
from email.mime.text import MIMEText
from email.image import MIMEImage
if __name__ == ‘__main__‘:
# 定義一些連接數據
sender = u"[email protected]"
receiver = [[email protected], [email protected]]
subject = u"郵件綜合示例"
username = u"username"
password = u"password"
# 創建message
msg = MIMEMultipart(‘alternative‘)
msg[‘Subject‘] = u"測試"
# 發送內容
text = u"你好,這是文本內容"
html = u"""
測試報告
測試結果概述
"""
# 添加MIME類型
partText = MIMEText(text, u‘plain‘)
partHTML = MIMEText(html, u‘html‘)
msg.attach(partText)
msg.attach(partHTML)
#構造附件
attach = MIMEText(open(‘c:\\demo.jpg‘).read(), ‘base64‘, ‘utf-8‘)
attach[‘Content-Type‘] = ‘application/octet-stream‘
attach[‘Content-Disposition‘] = ‘attachment;filename="demo.jpg"‘
msg.attach(attach)
# 發送郵件
smtp =smtplib.SMTP()
smtp.connect(‘smtp.163.com‘)
smtp.login(username,password)
smtp.sendmail(sender, receiver, msg.as_string())
smtp.quit()
結束語
本文從文本郵件、html格式郵件、附件郵件以及三者綜合一起使用的方式闡述了利用python email模塊進行郵件發送。
python selenium2示例 - email發送