您的位置:首页 > 编程语言 > Python开发

[Python]python3使用smtplib发送邮件,带xlsx附件

2018-11-05 17:50 85 查看

最近带学生给学校开发一套系统,后台为了简单起见把能见数据都全部导出成excel并根据每个人的权限不同保存成内容不同的xlsx文件通过邮件发送到指定邮箱。其实这都可以用java直接写完,只不过最近看了看python也本着学习的心态练习一下python 

[code]#encoding=utf8
import smtplib
from email.mime.multipart import MIMEMultipart
from email.header import Header
from email.mime.text import MIMEText
from email.mime.application import MIMEApplication
# 第三方 SMTP 服务
mail_host = "*******"  # 设置服务器
mail_user = "*******"  # 用户名
mail_pass = "********"  # 口令

sender = '*****'
receivers = ['*****']  # 接收邮件,可设置为你的QQ邮箱或者其他邮箱
content = MIMEText('test')
message = MIMEMultipart()
message.attach(content)
message['From'] = Header("Easy", 'utf-8')
message['To'] = Header("测试", 'utf-8')
subject = 'Python SMTP 邮件测试'
message['Subject'] = Header(subject, 'utf-8')
xlsx = MIMEApplication(open('test.xlsx', 'rb').read())
xlsx["Content-Type"] = 'application/octet-stream'
xlsx.add_header('Content-Disposition', 'attachment', filename='test.xlsx')
message.attach(xlsx)
try:
smtpObj = smtplib.SMTP()
smtpObj.connect(mail_host, 25)  # 25 为 SMTP 端口号
smtpObj.login(mail_user, mail_pass)
smtpObj.sendmail(sender, receivers, message.as_string())
print("邮件发送成功")
except  Exception as e:
print(e)

 写完了以后,又在网上看到一个yagmail的第三方工具,可以更加方便的发送邮件

使用之前需要先进行安装

pip install yagmail

github项目地址: https://github.com/kootenpv/yagmail

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: