python发邮件,添加附件

巢星纬
2023-12-01

需要用到smtp.SMTP_SSL(host,post)

# 设置邮箱账号
account = input('请输入邮箱账户:')
# 设置邮箱授权码
token = input('请输入邮箱授权码:')
# 设置邮箱服务器,端口
smtp = smtplib.SMTP_SSL('smtp.qq.com', 465)
# 登录qq邮箱
smtp.login(account, token)

还有MIMEText简单邮件对象,参数有(文本,‘plain’,编码格式)

email_content = MIMEText(content, 'plain', 'utf-8')

把读取出来的文件作为附件添加

# 读取工作表文件数据
with open('./04_月考勤表.xlsx', 'rb') as f:
    file_data = f.read()

# 设置内容类型为附件

attachment = MIMEText(file_data, 'base64', 'utf-8')  

#base64是压缩格式,附件  

#plain参数是正文内容,都需要带引号

设置附件标题以及附件

attachment.add_header('Content-Disposition', 'attachment', filename='04_月考勤表.xlsx')

整合发送

# 创建复合邮件对象
msg = MIMEMultipart()

# 添加正文到复合邮件对象中
msg.attach(email_content)

# 添加附件到复合邮件对象里
msg.attach(attachment)

# 设置发送者信息
msg['From'] = '陈知枫'
# 设置接受者信息
msg['To'] = '闪光金融的各位同事们' 
# 设置邮件标题
msg['Subject'] = '04_月考勤表'

发出邮件,关闭服务

# 发送邮件
smtp.sendmail(account, 'example@mail.com', msg.as_string())  

# account 是接收方
# example@mail.com 是发送方

# 关闭邮箱服务
smtp.quit()

 类似资料: