python發送正文和附件帶圖片的郵件

python發送正文和附件帶圖片的郵件

MIMEImage

內容形式爲圖片

import smtplib      #發郵件smtplib
#發送文本內容用email.mime.text模塊
#MIMEText:內容形式爲純文本、HTML頁面
#MIMEImage:內容形式爲圖片
#MIMEMutipart:多形式組合,可包含文本和附件
from email.mime.text import MIMEText
from email.mime.image import MIMEImage
from email.mime.multipart import MIMEMultipart
from email.header import Header #Header是用來構建郵件
from email.mime.base import MIMEBase
from email import encoders
import time      #時間模塊
import os,sys
import jinja2

# 發送郵件
def sendEmail(msg):

    try:
        server=smtplib.SMTP()

        server.connect(smtpserver)
        server.login(username,password)
        server.sendmail(sender,receiver,msg.as_string())
        server.sendmail(sender,cc, msg.as_string())
        server.quit()
        print("發送成功")
    except:
        print("發送失敗")



#<pre> 標籤可定義預格式化的文本。
#被包圍在 <pre> 標籤 元素中的文本通常會保留空格和換行符。而文本也會呈現爲等寬字體。
#<img> 標籤的 src 屬性是必需的。它的值是圖像文件的 URL,也就是引用該圖像的文件的的絕對路徑或相對路徑。

def addPicture(receiver,subject,path):
    #加入圖片
    msg = MIMEMultipart()
    msg['Subject'] = Header(subject)
    msg['From'] = Header('動漫圖片推送')
    msg['To'] = Header(";".join(receiver))
    msg['cc'] = Header(";".join(cc))
    
    #正文-圖片 只能通過html格式來放圖片
    htmlFile = """\
    <html>
        <head></head>
        <body>
            <pre style="font-family:arial;margin:left;">
            Dears all:
                下圖是火影鳴人的圖片
            <img src="cid:image1">
            </pre>
        </body>
    </html>
    """
    htmlpart = MIMEText(htmlFile,'html','utf-8')
    msg.attach(htmlpart)
    
    os.chdir(path)
    #在正文中顯示圖片
    File1 = 'D:/tmp/火影.jpg'
    image = MIMEImage(open(File1,'rb').read(),File1.split('.')[-1])
    # 定義圖片 ID,在 HTML 文本中引用
    image.add_header('Content-ID','<image1>')
    msg.attach(image)
    
    # 附件中含有圖片
    image_file = open(r'D:/tmp/火影.jpg','rb').read()
    pic = MIMEImage(image_file)
    pic.add_header('Content-Disposition','attachment',filename='火影.jpg')
    msg.attach(pic)
    return msg

if __name__=='__main__':

    sender = '[email protected]'
    receiver = ['[email protected]']
    subject = '動漫主題郵件'
    smtpserver = '10.176.218.30'
    username = 's-dwh'
    password = '123456!a'
    dir = 'D:/tmp/'
    cc=['[email protected]']
    msg=addPicture(receiver,subject,dir)
    sendEmail(msg)

在這裏插入圖片描述

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