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帮我解决问题

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

