python selenium2示例 - email發(fā)送

前言

在進行日常的自動化測試實踐中趁尼,我們總是需要將測試過程中的記錄、結果等等等相關信息通過自動的手段發(fā)送給相關人員涨共。python的smtplib、email模塊為我們提供了很好的email發(fā)送等功能的實現椒舵。

純文本郵件

在通常情況下,我們需要發(fā)送大量的純文本類的郵件通知约谈,或是發(fā)送概要性測試報告時笔宿,會用到此類發(fā)送方式,示例代碼如下:

#-*- coding:utf-8 -*-

__author__ = u'苦葉子'

import smtplib

from email.mime.text import MIMEText

from email.header import Header

if __name__ == '__main__':

??? sender?= u'sender@163.com'????? # 發(fā)送人郵件地址

??? receiver?= u'receiver@163.com'???? # 接收人郵件地址

??? subject?= u'python email文本郵件發(fā)送測試'

??? smtpserver?= u'smtp.163.com'?? # smtp服務

??? username?= u'testname'? # 發(fā)送人郵件用戶名或專用于smtp賬戶用戶名

??? password?= u'testpassword'? # 發(fā)送人郵件密碼或專用于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())? # 發(fā)送郵件

??? smtp.quit()? # 發(fā)送完成后關閉連接

HTML形式的郵件

通常情況下窗宇,我們經常生成html格式的測試報告或記錄措伐,如果采用文本郵件方式發(fā)送,則html格式的報告或記錄會將html標簽也顯示出來军俊,那么為了讓郵件接收者能夠正常的看到html格式的報告侥加,則需要在郵件發(fā)送時,對相應的參數進行配置粪躬,以便郵件客戶端能正常解析html格式的郵件担败,示例如下:

#-*- coding:utf-8 -*-

__author__ = u'苦葉子'

import smtplib

from email.mime.text import MIMEText

from email.header import Header

if __name__ == '__main__':

??? sender = u'sender@163.com'? ? ? # 發(fā)送人郵件地址

??? receiver = u'receiver@163.com'? ? # 接收人郵件地址

??? subject?= u'python email HTML形式郵件發(fā)送測試'

??? smtpserver?= u'smtp.163.com'?? # smtp服務

??? username?= u'testname'? # 發(fā)送人郵件用戶名或專用于smtp賬戶用戶名

??? password = u'testpassword'? # 發(fā)送人郵件密碼或專用于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())? # 發(fā)送郵件

??? smtp.quit()? # 發(fā)送完成后關閉連接

帶附件的郵件

文本和html格式的郵件能滿足您的需要嘛提前?仔細回顧下吗货,測試過程中是不是還有很多的附件要進行發(fā)送?在自動化測試過程中是不是有很多截圖狈网?等等....是的宙搬,我們還需要發(fā)送帶附件的郵件來滿足我們日常的測試需要,下面看看帶附件的郵件發(fā)送示例:

#-*- coding:utf-8 -*-

__author__ = u'苦葉子'

import smtplib

from email.mime.text import MIMEText

from email.header import Header

if __name__ == '__main__':

??? sender = u'sender@163.com'? ? ? # 發(fā)送人郵件地址

??? receiver = u'receiver@163.com'? ? # 接收人郵件地址

??? subject = u'python email 附件郵件發(fā)送測試'

??? smtpserver = u'smtp.163.com'? # smtp服務

??? username = u'testname'? # 發(fā)送人郵件用戶名或專用于smtp賬戶用戶名

??? password = u'testpassword'? # 發(fā)送人郵件密碼或專用于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()

群發(fā)郵件

在上述幾個示例中拓哺,所有的郵件接收都是單個人勇垛,實際的應用中,我們則需要給一群人進行郵件發(fā)送士鸥,下面看看示例:

#-*- coding:utf-8 -*-

__author__ =u'苦葉子'

importsmtplib

fromemail.mime.textimportMIMEText

fromemail.headerimportHeader

if__name__ =='__main__':

??? # 發(fā)送人郵件地址

??? sender =u'sender@163.com'

??? # 群發(fā)接收人郵件地址 !!!!!

??? receiver = [u'receiver@163.com',u'**@xx.com',u'**@yy.com']

??? # 郵件標題 ? ?

??? subject =u'python email群發(fā)郵件發(fā)送測試'

??? # smtp服務

??? smtpserver =u'smtp.163.com'

??? # 發(fā)送人郵件用戶名或專用于smtp賬戶用戶名

??? username =u'testname'

??? # 發(fā)送人郵件密碼或專用于smtp賬戶的密碼

??? password =u'testpassword'

??? # 文本格式郵件 正文內容

??? msg = MIMEText(u'你好群發(fā)','text','utf-8')

??? # 郵件標題

??? msg['Subject'] = Header(subject,'utf-8')

??? # 初始化一個smtp對象

??? smtp = smtplib.SMTP()

??? # 連接至smtp服務器

??? smtp.connect('smtp.163.com')

??? # 登錄smtp服務

??? smtp.login(username, password)

??? # 發(fā)送郵件

??? smtp.sendmail(sender, receiver, msg.as_string())

??? # 發(fā)送完成后關閉連接

??? 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"DeepTest@xx.com"? ?

??? receiver = [u'xxx@xx.com', u'xx@yy.com']? ?

??? subject = u"郵件綜合示例"? ?

??? username = u"username"? ?

??? password = u"password"? ? ? ?

??? # 創(chuàng)建message? ?

??? msg = MIMEMultipart('alternative')? ?

??? msg['Subject'] = u"測試"? ? ? ?

??? # 發(fā)送內容? ?

??? 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)? ? ? ?

???? # 發(fā)送郵件? ?

???? smtp =smtplib.SMTP()? ?

???? smtp.connect('smtp.163.com')? ?

???? smtp.login(username,password)? ?

???? smtp.sendmail(sender, receiver,? ? msg.as_string())? ?

???? smtp.quit()

結束語

本文從文本郵件讼积、html格式郵件、附件郵件以及三者綜合一起使用的方式闡述了利用python email模塊進行郵件發(fā)送脚仔。

獲取授權

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
  • 序言:七十年代末勤众,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子玻侥,更是在濱河造成了極大的恐慌决摧,老刑警劉巖亿蒸,帶你破解...
    沈念sama閱讀 221,695評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件凑兰,死亡現場離奇詭異,居然都是意外死亡边锁,警方通過查閱死者的電腦和手機姑食,發(fā)現死者居然都...
    沈念sama閱讀 94,569評論 3 399
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來茅坛,“玉大人音半,你說我怎么就攤上這事」北停” “怎么了曹鸠?”我有些...
    開封第一講書人閱讀 168,130評論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長斥铺。 經常有香客問我彻桃,道長,這世上最難降的妖魔是什么晾蜘? 我笑而不...
    開封第一講書人閱讀 59,648評論 1 297
  • 正文 為了忘掉前任邻眷,我火速辦了婚禮眠屎,結果婚禮上,老公的妹妹穿的比我還像新娘肆饶。我一直安慰自己改衩,他們只是感情好,可當我...
    茶點故事閱讀 68,655評論 6 397
  • 文/花漫 我一把揭開白布驯镊。 她就那樣靜靜地躺著葫督,像睡著了一般。 火紅的嫁衣襯著肌膚如雪板惑。 梳的紋絲不亂的頭發(fā)上候衍,一...
    開封第一講書人閱讀 52,268評論 1 309
  • 那天,我揣著相機與錄音洒放,去河邊找鬼蛉鹿。 笑死,一個胖子當著我的面吹牛往湿,可吹牛的內容都是我干的妖异。 我是一名探鬼主播,決...
    沈念sama閱讀 40,835評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼领追,長吁一口氣:“原來是場噩夢啊……” “哼他膳!你這毒婦竟也來了?” 一聲冷哼從身側響起绒窑,我...
    開封第一講書人閱讀 39,740評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎肢预,沒想到半個月后,有當地人在樹林里發(fā)現了一具尸體,經...
    沈念sama閱讀 46,286評論 1 318
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 38,375評論 3 340
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現自己被綠了揍瑟。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,505評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡槐瑞,死狀恐怖祠挫,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤蝶柿,帶...
    沈念sama閱讀 36,185評論 5 350
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發(fā)生泄漏例获。R本人自食惡果不足惜榨汤,卻給世界環(huán)境...
    茶點故事閱讀 41,873評論 3 333
  • 文/蒙蒙 一蠕搜、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧收壕,春花似錦妓灌、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,357評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至圃验,卻和暖如春掉伏,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背澳窑。 一陣腳步聲響...
    開封第一講書人閱讀 33,466評論 1 272
  • 我被黑心中介騙來泰國打工岖免, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人照捡。 一個月前我還...
    沈念sama閱讀 48,921評論 3 376
  • 正文 我出身青樓颅湘,卻偏偏與公主長得像,于是被迫代替她去往敵國和親栗精。 傳聞我的和親對象是個殘疾皇子闯参,可洞房花燭夜當晚...
    茶點故事閱讀 45,515評論 2 359

推薦閱讀更多精彩內容

  • 一、相關模塊介紹 發(fā)送郵件主要用到了smtplib和email兩個模塊悲立,這里首先就兩個模塊進行一下簡單的介紹: 1...
    LizPL閱讀 1,353評論 0 3
  • 在公司里做的一個接口系統(tǒng)鹿寨,主要是對接第三方的系統(tǒng)接口,所以薪夕,這個系統(tǒng)里會和很多其他公司的項目交互脚草。隨之而來一個很蛋...
    蝴蝶蘭玫瑰閱讀 1,749評論 0 0
  • 背景 公司內網有個論壇,各種公司的前沿消息都會有人在討論原献。一忙起來馏慨,經常忘記逛論壇,所以寫了個爬蟲姑隅,爬取論壇前10...
    aialin閱讀 936評論 0 11
  • 在我們的工作中写隶,會有諸如這種需求: Q1:我的測試用例實現自動構建了,怎么在構建完讓程序通知我結果讲仰? Q2:我的監(jiān)...
    唐T唐X閱讀 512評論 3 0
  • 也許我愛的不是你慕趴,而是某個瞬間似曾相識的你,或許是通過你我要找到像你的那個她
    夢醒莊周閱讀 192評論 0 0