国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

python使用電子郵件模塊smtplib的方法

2020-01-04 17:25:18
字體:
來源:轉載
供稿:網友

Smptp類定義:smtplib.SMTP(host[,port[,local_hostname[,,timeout]]]),作為SMTP的構造函數(shù),功能是與smtp服務器建立連接,在連接成功后,就可以向服務器發(fā)送相關請求,比如登陸,校驗,發(fā)送,退出等。host參數(shù)為遠程smtp主機地址,比如stmp.163.com;port為連接端口,默認為25;local_hostname的作用是在本地的FQDN(完整的域名)發(fā)送HELO/EHLO指令,timeout為連接或嘗試在多數(shù)秒超時,SMTP類具有如下方法:
SMTP.connect([host[,port]])方法,連接遠程smtp主機方法,host為遠程主機地址,port為遠程主機smtp端口,默認25,也可以直接使用host:port形式表示,例如:SMTP.connect("smtp.163.com","25').
SMTP.login(user,password)方法,遠程smtp主機的校驗方法,參數(shù)為用戶名與密碼,如SMTP.login("18801457794@139.com",'123456').
SMTP.sendmail(from_addr,to_addrs,msg[,mail_options,rcpt_options])方法,實現(xiàn)郵件的發(fā)送功能,參數(shù)依次為發(fā)件人,收件人,郵件內容,例如:SMTP.sendmail("python@163.com",'404408853@qq.com',body),其中body內容定義如下:
"""From:python@163.com
To:404408853@qq.com
Subject:test mail
test mail body"""
SMTP.starttls([keyfile[,certfile]])方法,啟用TLS(安全傳輸)模式,所有SMTP指令都講加密傳輸,例如使用gmail的stmp服務器時需要啟動此項才能正常發(fā)送郵件
SMTP.quit()方法,端口smtp服務器的連接

下面通過實例列子來了解python是怎么發(fā)送郵件

[root@localhost smtplib]# cat simple1.py #!/usr/bin/env python# -*- coding: utf-8 -*-import smtplibimport stringHOST = "smtp.139.com" #定義smtp主機SUBJECT = "test" #定義郵件主題TO = "404408853@qq.com" #定義郵件收件人FROM = "18801457794@139.com" #定義郵件發(fā)件人text = "python test mail" #郵件的內容BODY=string.join(( #組裝sendmail方法的郵件主體內容,各段以"/r/n"進行分隔  "From:%s" %FROM,  "To:%s" %TO,  "Subject:%s"%SUBJECT,  "",  text),"/r/n")   server = smtplib.SMTP() #創(chuàng)建一個SMTP對象server.connect(HOST,"25") #通過connect方法連接smtp主機server.starttls() #啟動安全傳輸模式server.login("18801457794@139.com","123456") #郵件賬戶登錄校驗server.sendmail(FROM,TO,BODY) #郵件發(fā)送server.quit() #斷開smtp連接

執(zhí)行這段代碼,我們將受到一封郵件

python,smtplib

實現(xiàn)HTML格式的數(shù)據(jù)報表郵件
純文本的郵件內容已經不能滿足我們多樣化的需求,本示例通過引入email.mime的MIMETex類來實現(xiàn)支持HTML格式的郵件,支持所有HTML元素,包含表格,圖片,動畫,CSS樣式,表單等。本示例使用HTML的表格定制完美的業(yè)務流量報表,實現(xiàn)代碼如下:

#!/usr/bin/env python#coding:utf-8import smtplibfrom email.mime.text import MIMEText #導入MIMEText類HOST = "smtp.139.com"SUBJECT = u"官網流量數(shù)據(jù)報表"TO = "404408853@qq.com"FROM = "18801457794@139.com"msg = MIMEText("""  <table width="800" border="0" cellspacing="0" cellpadding="4">    <tr>      <td bgcolor="#CECFAD" height="20" style="font-size:14px">*官網數(shù)據(jù)<a href="monitor.domain.com">更多</a></td>    </tr>    <td bgcolor="#EFEBDE" height="100" style="font-size:13px">    1)日訪問量:<font color=read>152433</font>訪問次數(shù):23651 頁面瀏覽量:45123 點擊數(shù):545122 數(shù)據(jù)流量:504Mb<br>    2)狀態(tài)碼消息<br>      500:105 404;3264 503;214<br>    3)訪客瀏覽器信息<br>      IE:50% firefox:10% chrome:30% other:10%<br>    4)頁面信息<br>      /index.php 42153<br>      /view.php 21451<br>    </td>    </tr>  </table>""","html","utf-8")msg['Subject'] = SUBJECTmsg['FROM'] = FROMmsg['To'] = TOtry:  server = smtplib.SMTP()  server.connect(HOST,'25')  server.starttls()  server.login('18801457794@139.com','123456')  server.sendmail(FROM,TO,msg.as_string())  server.quit()  print "郵件發(fā)送成功"except Exception,e:  print "失敗:" + str(e)

運行代碼結果如圖,

python,smtplib

示例2:實現(xiàn)圖文格式的服務器性能報表郵件
當要求包含圖片數(shù)據(jù)的郵件內容時,需要引用MIMEImage類,若郵件主體由多個MIME對象組成,則同時需要引用MIMEMultipart類來進行封裝。本示例通過MIMEText與MIMEImage類的組合來實現(xiàn)圖文格式的服務器性能報表郵件的定制,實現(xiàn)代碼如下

#!/usr/bin/env python#coding: utf-8import smtplib,stringfrom email.mime.multipart import MIMEMultipartfrom email.mime.text import MIMETextfrom email.mime.image import MIMEImageHOST ="smtp.139.com" #定義smtp主機SUBJECT = "金美美平臺系統(tǒng)狀態(tài)報表" #定義郵件主題TO = "404408853@qq.com,302803690@qq.com" #定義郵件收件人FROM = "18801457794@139.com" #定義郵件發(fā)件人TO_list = TO.split(TO)def addimg(src,imgid): #添加圖片函數(shù),參數(shù)1:圖片路徑,參數(shù)2:圖片ID  fp = open(src,'rb') #打開文件  msgImage = MIMEImage(fp.read()) #創(chuàng)建MIMEImage對象,讀取圖片內容并作為參數(shù)  fp.close() #關閉文件  msgImage.add_header('Content-ID',imgid) #指定圖片文件的Content-ID,<img>標簽src用到  return msgImage #返回msgImage對象 msg = MIMEMultipart('related') #創(chuàng)建MIMEMultipart對象,采用related定義內嵌資源的郵件體msgtext = MIMEText("""<table width="600" border="0" cellspacing="0" cellspacing="4">  <tr bgcolor="#CECFAD" height="20" style="font-size:14px">  <td colspan=2>以下是211.157.111.41系統(tǒng)狀態(tài)圖</td>  </tr>  <tr bgcolor="#EFEBDE" height="100" style="font-size:13px">  <td>  <img src="cid:io"></td><td>  <img src="cid:load"></td>  </tr>  <tr bgcolor="#EFEBDE" height="100" style="font-size:13px">  <td>  <img src="cid:mem"></td><td>  <img src="cid:disk"></td>  </tr>  </table>""","html","utf-8") #<img>標簽的src屬性是通過Content-ID來引用的 msg.attach(msgtext) #MIMEMultipart對象附加MIMEText的內容msg.attach(addimg("img/bytes_io.png","io")) #使用MIMEMultipart對象附加MIMEImage的內容msg.attach(addimg("img/os_load.png","load"))msg.attach(addimg("img/os_mem.png","mem"))msg.attach(addimg("img/os_disk.png","disk")) msg['Subject'] = SUBJECTmsg['FROM']=FROMmsg['To'] = TOtry:  server = smtplib.SMTP()  server.connect(HOST,"25")  server.starttls()  server.login('18801457794@139.com','123456')  server.sendmail(FROM,TO_list,msg.as_string())  server.quit()  print "郵件發(fā)送成功!"except Exception,e:  print "失敗:"+ str(e)

代碼運行效果如圖

python,smtplib

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 霍城县| 云龙县| 沧州市| 长岭县| 岑巩县| 澄城县| 花莲市| 固安县| 铁岭市| 综艺| 东宁县| 福海县| 孟连| 嘉兴市| 聂荣县| 娱乐| 屏东市| 阿图什市| 盖州市| 鄂托克旗| 锦州市| 盈江县| 沈丘县| 尉氏县| 太仆寺旗| 伊吾县| 成都市| 江阴市| 海宁市| 铜鼓县| 永靖县| 慈溪市| 含山县| 古丈县| 特克斯县| 买车| 宁乡县| 奉新县| 比如县| 泰兴市| 永昌县|