sendmail-MIMEText-MIMEImage-MIMEMultipart.py——發送帶圖片的HTML格式報表

#!/usr/bin/env python

#coding:utf-8

# 通過MIMEText類來實現HTML格式的郵件,當要求包含圖片數據的郵件內容時,需要引用MIMEImage類

# 若郵件主體由多個MIME對象組成,則同時需引用MIMEMultipart類來進行組裝

import smtplib

from email.mime.multipart import MIMEMultipart    # 導入MIMEMultipart類

from email.mime.text import MIMEText    # 導入MIMEText類

from email.mime.image import MIMEImage    # 導入MIMEImage類

HOST = "smtp.126.com"

SUBJECT = u"業務性能數據報表"

TO = "[email protected]"

FROM = "[email protected]"

def addimg(src, imgid):    # 添加圖片函數,參數1:圖片路徑,參數2:圖片id

    fp = open(src, 'rb')    # 打開文件

    msgImage = MIMEImage(fp.read())    # 創建MIMEImage對象,讀取圖片內容並作爲參數

    fp.close()    # 關閉文件

    msgImage.add_header('Content-ID', imgid)    # 指定圖片文件的Content-ID,imgid,<img>標籤中的src用到

    return msgImage    # 返回msgImage對象

msg = MIMEMultipart('related')    # 創建MIMEMultipart對象,採用related定義內嵌資源的郵件體

# 創建一個MIMEText對象,HTML元素包括表格<table>及圖片<img>

msgtext = MIMEText("""    

        <table width="600" border="0" cellspacing="0" cellpadding="4">

            <tr bgcolor="#CECFAD" height="20" style="font-size:14px">

                <td colspan=2>*官網性能數據  <a href="monitor.domain.com">更多>></a></td>

            </tr>

            <tr bgcolor="#EFEBDE" height="100" style="font-size:13px">

                <td>

                    <img src="cid:io"></td><td>

                    <img src="cid:key_hit"></td>

            </tr>

            <tr bgcolor="#EFEBDE" height="100" style="font-size:13px">

                <td>

                    <img src="cid:men"></td><td>

                    <img src="cid:swap"></td>

            </tr>

        </table>""","html","utf-8")    # <img>標籤的src屬性是通過Content-ID來引用的

msg.attach(msgtext)    # MIMEMultipart對象附加MIMEText的內容

# 使用MIMEMultipart對象附加MIMEImage的內容

msg.attach(addimg("img/bytes_io.png","io"))    

msg.attach(addimg("img/myisam_key_hit.png","key_hit"))

msg.attach(addimg("img/os_mem.png","men"))

msg.attach(addimg("img/os_swap.png","swap"))

msg['Subject'] = SUBJECT

msg['From'] = FROM

msg['To'] = TO

try:

    server = smtplib.SMTP(HOST, "25")

    server.starttls()

    server.login("[email protected]", "passwd")

    server.sendmail(FROM, TO, msg.as_string())

    server.quit()

    print "郵件發送成功!"

except Exception, e:

    print "失敗: "+str(e)


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章