python发送带中文附件名的邮件

简介: 写项目练手时遇到的一个有趣事

话不多说直接上代码吧,如有不当请大佬指点一二:


import smtplib

from email.mime.text import MIMEText

from email.mime.multipart import MIMEMultipart

from email.mime.image import MIMEImage

#设置登录及服务器信息

mail_host = 'smtp.163.com'

mail_user = 'USER'

mail_pass = 'PASS'

sender = 'SEND'

receivers = ['recive']

#设置eamil信息

#添加一个MIMEmultipart类,处理正文及附件

message = MIMEMultipart()

message["Accept-Language"] = "zh-CN"

message['From'] = sender

message['To'] = receivers[0]

message['Subject'] = 'title'

#推荐使用html格式的正文内容,这样比较灵活,可以附加图片地址,调整格式等

with open('ce.html','r',encoding='utf-8') as f:

   content = f.read()

#设置html格式参数

part1 = MIMEText(content,'html','utf-8')

#添加一个txt文本附件

with open('文本.txt','r')as h:

   content2 = h.read()

#设置txt参数

part2 = MIMEText(content2,'plain','utf-8')

#附件设置内容类型,方便起见,设置为二进制流

part2['Content-Type'] = 'application/octet-stream'

#设置附件头,添加文件名

part2.add_header("Content-Disposition", "attachment", filename=("gbk", "", "测试结果.txt"))

#part2['Content-Disposition'] = 'attachment;filename="demo.txt"'

#添加照片附件

with open('无标题2.png','rb')as fp:

   picture = MIMEImage(fp.read())

   #与txt文件设置相似

   picture['Content-Type'] = 'application/octet-stream'

   picture['Content-Disposition'] = 'attachment;filename="picture.png"'

#将内容附加到邮件主体中

message.attach(part1)

message.attach(part2)

message.attach(picture)

#登录并发送

try:

   smtpObj = smtplib.SMTP()

   smtpObj.connect(mail_host,25)

   smtpObj.login(mail_user,mail_pass)

   smtpObj.sendmail(

       sender,receivers,message.as_string())

   print('success')

   smtpObj.quit()

except smtplib.SMTPException as e:

   print('error',e)


目录
相关文章
|
4月前
|
存储 搜索推荐 数据安全/隐私保护
python实战讲解之使用Python批量发送个性化邮件
python实战讲解之使用Python批量发送个性化邮件
|
6天前
|
运维 Shell Linux
第十四章 Python发送邮件(常见四种邮件内容)
第十四章 Python发送邮件(常见四种邮件内容)
|
7天前
|
监控 Python
Python监控主机是否存活,并发报警邮件
Python监控主机是否存活,并发报警邮件
|
11天前
|
数据安全/隐私保护 Python
Python Flask-Mail实现邮件发送
Python Flask-Mail实现邮件发送
|
3月前
|
存储 安全 计算机视觉
用 Python 脚本实现电脑唤醒后自动拍照 截屏并发邮件通知
用 Python 脚本实现电脑唤醒后自动拍照 截屏并发邮件通知
|
4月前
|
存储 Shell API
Python 自动化指南(繁琐工作自动化)第二版:十八、发送电子邮件和短信
Python 自动化指南(繁琐工作自动化)第二版:十八、发送电子邮件和短信
59 0
|
4月前
|
移动开发 Python HTML5
Python办公自动化【发送普通邮件、发送HTML邮件、发送附件邮件-smtplib、批量发送邮件-smtplib、发送邮件-zmail】(八)-全面详解(学习总结---从入门到深化)
Python办公自动化【发送普通邮件、发送HTML邮件、发送附件邮件-smtplib、批量发送邮件-smtplib、发送邮件-zmail】(八)-全面详解(学习总结---从入门到深化)
50 0
|
6月前
|
人工智能 安全 程序员
使用 ChatGPT 帮助小学生编程入门系列之二:使用 Python 编程发送电子邮件
使用 ChatGPT 帮助小学生编程入门系列之二:使用 Python 编程发送电子邮件
57 0
|
9月前
|
测试技术 数据安全/隐私保护 Python
Python快速上手系列--邮件发送--详解篇
Python快速上手系列--邮件发送--详解篇
101 0