#! /bin/env python
# encoding: utf-8
import datetime
import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from email.header import Header
from_addr = 'xx@qq.cn'
password = 'xxx'
to_addr = 'xx@qq.cn'
smtp_server = 'smtp.qq.com'
#创建一个带附件的实例
def send_mail(filename):
file_path="/root/scripts/{}".format(filename)
format_day = filename.split('.')[0]
message = MIMEMultipart()
message['From'] = Header("xxx", 'utf-8')
message['To'] = Header("测试", 'utf-8')
subject = '数据_{}'.format(format_day)
message['Subject'] = Header(subject, 'utf-8')
#邮件正文内容
message.attach(MIMEText('附件是', 'plain', 'utf-8'))
# 构造附件1,传送当前目录下的 test.txt 文件
att = MIMEText(open(file_path, 'rb').read(), 'base64', 'utf-8')
att["Content-Type"] = 'application/octet-stream'
# 这里的filename可以任意写,写什么名字,邮件中显示什么名字,这里必须写,不然附件名字很奇怪
att["Content-Disposition"] = 'attachment; filename={}'.format(filename)
message.attach(att)
server = smtplib.SMTP_SSL()
server.connect(smtp_server,465)
server.login(from_addr, password)
server.sendmail(from_addr, to_addr, message.as_string())
server.quit()
if __name__ == '__main__':
filename = "{}.xls".format((datetime.datetime.now() + datetime.timedelta(days=-1)).strftime("%Y%m%d"))
send_mail(filename)