Python 发送带有中文附件的邮件

之前在网上找了半天没找到解决方案,后来通过看源码偶然找到了一种解决方法,如有相同问题的,不妨试试!

# coding=gbk
import os
import sys
import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText

path = r'D:\test'
file_name = '测试.xlsx'

msg = MIMEMultipart('related')
msg['From'] = '*******@cardvalue.cn'
msg['To'] = '*******@qq.com'
msg['Subject'] = os.path.basename(file_name)

# 邮件正文
text = MIMEText('测试!', 'plain', 'gbk')
msg.attach(text)

# 邮件附件
att = MIMEText(open(os.path.join(path, file_name), 'rb').read(), 'base64', 'gbk')
att["Content-Type"] = 'application/octet-stream'
att.add_header('Content-Disposition', 'attachment', filename=('gbk', '', file_name))
msg.attach(att)
smtp = smtplib.SMTP()
smtp.connect('smtp.ym.163.com', '25')
smtp.login('*******@cardvalue.cn', '******')
smtp.sendmail(msg['From'], msg['To'], msg.as_string())
smtp.quit()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值