python的smtplib发送带附件邮件
#!/usr/bin/python# -*- coding: UTF-8 -*-# @author:import smtplib,logging# 加载smtplib模块from email.mime.text import MIMETextfrom email.utils import formataddrfrom email.mime.multipart import MIMEMultipar
·
#!/usr/bin/python
# -*- coding: UTF-8 -*-
# @author:
import smtplib,logging # 加载smtplib模块
from email.mime.text import MIMEText
from email.utils import formataddr
from email.mime.multipart import MIMEMultipart
from email.mime.application import MIMEApplication
logging.basicConfig(level = logging.INFO,format = '%(asctime)s - %(name)s - %(levelname)s - %(message)s')
class SendMail(object):
def __init__(self,sender,sender_pass,receivers,title,content):
self.sender = sender #发送地址
self.title = title # 标题
self.content = content # 发送内容
self.sys_sender = sender # 系统账户
self.receivers = receivers
self.sys_pwd = sender_pass # 系统账户密码
def send(self,file_list):
"""
发送邮件
:param file_list: 附件文件列表
:return: bool
"""
try:
# 创建一个带附件的实例
msg = MIMEMultipart()
# 发件人格式
msg['From'] = formataddr(["安全大数据分析", self.sys_sender])
# 收件人格式
msg['To'] = formataddr(["", self.sender])
# 邮件主题
msg['Subject'] = self.title
# 邮件正文内容
msg.attach(MIMEText(self.content, 'plain', 'utf-8'))
# 多个附件
for file_name in file_list:
print("file_name",file_name)
# 构造附件
xlsxpart = MIMEApplication(open(file_name, 'rb').read())
# filename表示邮件中显示的附件名
xlsxpart.add_header('Content-Disposition','attachment',filename = '%s'%file_name)
msg.attach(xlsxpart)
print("AAAAAAAAAAAA")
smtpObj = smtplib.SMTP()
print("BBBBBBBBBBB")
smtpObj.connect("211.10.10.276", 25) # 25 为 SMTP 端口号
print("CCCCCCCCCC")
try:
smtpObj.login(self.sys_sender, self.sys_pwd)
logging.info("smtpObj.user:%s", smtpObj.user)
except Exception as e:
logging.error("login error: %s",e)
# 发送邮件
smtpObj.sendmail(self.sys_sender, receivers, msg.as_string())
# 退出账户
smtpObj.quit()
return True
except Exception as e:
print(e)
return False
if __name__ == '__main__':
# 发送地址
sender = "wang###@***.com.cn"
sender_pass = "##2@"
receivers = ['wang###@***.com.cn']
# 标题
title = "1400自定义标题:A类风险事件告警"
# 发送内容
content = "自定义内容:A类风险事件统计,见附件!"
# 附件列表
file_list = ["a.xlsx","b.xlsx"]
ret = SendMail(sender,sender_pass,receivers,title, content).send(file_list)
if ret:
print(ret,type(ret))
logging.info("send success")
else:
logging.error(" 邮件发送错误")
更多推荐
已为社区贡献16条内容
所有评论(0)