Python基础-46-邮件发送(带附件)

前言

前面一篇主要是只发送纯文本情况,很多时候我们发送邮件都是带附件发的,比如带doc、xlsx、MP3等等

 

MIMEMultipart/ MIMEApplication带附件发送

import smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
from email.mime.application import MIMEApplication


def send_enclosure():
    # 1.发件人、授权码,收件人信息
    from_addr = "[email protected]"
    pwd = "aqinirkcqyxubdbf"
    to_addr = "[email protected]"

    # 2.创建实例对象,设置主题等信息
    msg = MIMEMultipart()
    msg["Subject"] = "收到一张美图"
    msg["From"] = from_addr
    msg["To"] = to_addr

    # 邮件内容(按每个部分)
    part1 = MIMEText("邮件的内容是一张美女图片")
    msg.attach(part1)

    # 添加图片附件
    part2 = MIMEApplication(open('meimei.jpg', 'rb').read())
    part2.add_header('Content-Disposition', 'attachment', filename="meimei.jpg")
    msg.attach(part2)


    # 3.连接smtp服务器,登录服务器并发送文本
    smtp_server = "smtp.qq.com"
    server = smtplib.SMTP(smtp_server,25)
    server.login(from_addr,pwd)
    server.sendmail(from_addr,to_addr,msg.as_string()) # as_string()把MIMEText变成一个str
    server.close()

if __name__ == '__main__':

    send_enclosure()

 

执行后,接收到邮件,并打开邮件查看

Python基础-46-邮件发送(带附件)_第1张图片

 

Python基础-46-邮件发送(带附件)_第2张图片

其他类型的附件如doc、xlsx等与图片一致

 

多个附件

import smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
from email.mime.application import MIMEApplication


def send_enclosure():
    # 1.发件人、授权码,收件人信息
    from_addr = "[email protected]"
    pwd = "aqinirkcqyxubdbf"
    to_addr = "[email protected]"

    # 2.创建实例对象,设置主题等信息
    msg = MIMEMultipart()
    msg["Subject"] = "收到一个文档文件和图片文件"
    msg["From"] = from_addr
    msg["To"] = to_addr

    # 邮件内容(按每个部分)
    part1 = MIMEText("这是一个word文件和图片")
    msg.attach(part1)

    # 添加图片附件
    part2 = MIMEApplication(open("meimei.jpg", "rb").read())
    part2.add_header("Content-Disposition", "attachment", filename="meimei.jpg")
    msg.attach(part2)

    # 添加word附件
    part3 = MIMEApplication(open("1.docx","rb").read())
    part3.add_header("Content-Disposition", "attachment", filename="1.docx")
    msg.attach(part3)


    # 3.连接smtp服务器,登录服务器并发送文本
    smtp_server = "smtp.qq.com"
    server = smtplib.SMTP(smtp_server,25)
    server.login(from_addr,pwd)
    server.sendmail(from_addr,to_addr,msg.as_string()) # as_string()把MIMEText变成一个str
    server.close()

if __name__ == '__main__':
    send_enclosure()

 

执行后,接收到邮件,并打开邮件查看

Python基础-46-邮件发送(带附件)_第3张图片

Python基础-46-邮件发送(带附件)_第4张图片

你可能感兴趣的:(Python基础)