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)

在这里插入图片描述

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