Python 发送带附件的邮件

以下代码发送附件-文本文件和图片

#!/usr/bin/env python
#-*-coding:utf-8-*-

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

_user = "yy@qq.com"
_pwd = "授权码"
# _to = "ft_clover@163.com"
_recer=["aa@qq.com","bb@163.com",]


#创建一个带附件的实例
msg=MIMEMultipart()
msg["Subject"] = " don't panic"
msg["From"] = _user
msg["To"] = ",".join(_recer)#区别与给一个人发,指定某个人用 msg["To"] = _to 多个人用.join


#邮件正文内容
msg.attach(MIMEText('假如你立志要能言善辩,请先学会专注聆听。做一个有趣的人,并对他人感兴趣。问对方乐于回答的问题,鼓励他们谈论自己的经历。'
                    '请记住,你的谈话对象并不关心你和你的问题,而对他们自己、他们的欲望和烦恼要感兴趣得多。他的牙疼远比异国饿殍遍地的饥荒更重要,他脖子上的疖子也远比非洲的四十次地震更让人心烦。所以下次开口之前,请先想想这一点。','plain', 'utf-8'))
#构造附件1,传输当前目录下的图片.txt文件
att1=MIMEText(open('jmeter.txt','rb').read(),'base64','utf-8')
att1['Content-Type']='application/octet-stream'
att1['Content-Disposition']='attachment;filename="demo.txt"' #filename 填什么,邮件里边展示什么

#构造附件2,传输当前目录下的图片.jpg文件
att2=MIMEText(open('图片.jpg','rb').read(),'base64','utf-8')
att2['Content-Type']='application/octet-stream'
att2['Content-Disposition']='attachment;filename="demo.jpg"' #filename填什么,邮件里边展示什么

msg.attach(att1)
msg.attach(att2)


try:
    s=smtplib.SMTP_SSL("smtp.qq.com",465)
    s.login(_user,_pwd)
    s.sendmail(_user,_recer,msg.as_string())
    s.quit()
    print("Success!")
except smtplib.SMTPException as e:
    print("Failed,%s"%e)

执行结果:

原文地址:https://www.cnblogs.com/eosclover/p/15568657.html