python发送邮件带附件

1、代码如下:

复制代码
import smtplib
from email.header import Header
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from urllib.parse import quote

# 创建邮件主体对象
email = MIMEMultipart()
# 设置发件人、收件人和主题
email['From'] = 'southpoet@163.com'
email['To'] = '563233615@qq.com'
email['Subject'] = Header('请查收离职证明文件', 'utf-8')
# 添加邮件正文内容(带HTML标签排版的内容)
content = """<p>亲爱的前同事:</p>
<p>你需要的离职证明在附件中,请查收!</p>
<br>
<p>祝,好!</p>
<hr>
<p>孙美丽 即日</p>"""
email.attach(MIMEText(content, 'html', 'utf-8'))
# 读取作为附件的文件
with open(f'resources/王大锤离职证明.docx', 'rb') as file:
    attachment = MIMEText(file.read(), 'base64', 'utf-8')
    # 指定内容类型
    attachment['content-type'] = 'application/octet-stream'
    # 将中文文件名处理成百分号编码
    filename = quote('王大锤离职证明.docx')
    # 指定如何处置内容
    attachment['content-disposition'] = f'attachment; filename="{filename}"'

# 创建SMTP_SSL对象(连接邮件服务器)
smtp_obj = smtplib.SMTP_SSL('smtp.163.com', 465)
# 通过用户名和授权码进行登录
smtp_obj.login('southpoet@163.com', 'NJvDQspqXvHAtgNg')
# 发送邮件(发件人、收件人、邮件内容(字符串))
smtp_obj.sendmail(
    'southpoet@163.com',
    '563233615@qq.com',
    email.as_string()
)

2、执行结果:

邮件发送了,但是TO邮箱收到的邮件里面,没有看到附件

3、解决问题的过程,使用trae帮我解决问题

自动帮我把代码改正了。再次运行,收到的邮件有附件了,而且能正常打卡附件。

相关推荐
zhanghaha13141 小时前
Python进阶教程:28_queue 队列模块 零基础超详细教程
java·开发语言·python
小柯南敲键盘1 小时前
跨马翻译AI工具,批量图片视频翻译与智能抠图一站式解决
人工智能·python·音视频
veminhe1 小时前
python对象的序列化和反序列化
python
weixin199701080161 小时前
[特殊字符]《闲鱼 + 淘宝 + 1688 三平台库存同源:二手ERP主数据治理与超卖防御》(附Python源码)
开发语言·python
yan418290dgjkv1 小时前
2026年汽车贴膜获客新思路:3步锁定精准客户
python·汽车
甜辣uu1 小时前
2026计算机毕设选题避坑指南 (2)
python·课程设计·计算机毕设·计算机毕设选题·算法毕设
张铁霖2 小时前
进阶玩法:AI项目中数据验证的实战经验分享
python
Li Ming&2 小时前
基于OpenCV+MediaPipe+PyGame的手势控制音乐播放器(Python实现)
人工智能·python·计算机视觉
后台模板学习2 小时前
Rust vs Python 在用户认证模块中的实现:底层
开发语言·python·rust