57 lines
1.9 KiB
Python
57 lines
1.9 KiB
Python
# -*- coding: utf-8 -*-
|
|
from email.header import Header
|
|
from email.mime.text import MIMEText
|
|
from email.utils import parseaddr, formataddr
|
|
from email.mime.multipart import MIMEMultipart
|
|
from email.mime.application import MIMEApplication
|
|
import smtplib
|
|
import os
|
|
PATH = lambda p: os.path.abspath(
|
|
os.path.join(os.path.dirname(__file__), p)
|
|
)
|
|
|
|
|
|
|
|
def _format_addr(s):
|
|
name, addr = parseaddr(s)
|
|
return formataddr((Header(name, 'utf-8').encode(), addr))
|
|
|
|
def send_mail(**kwargs):
|
|
'''
|
|
:param f: 附件路径
|
|
:param to_addr:发给的人 []
|
|
:return:
|
|
'''
|
|
from_addr = kwargs["mail_user"]
|
|
password = kwargs["mail_pass"]
|
|
smtp_server = kwargs["mail_host"]
|
|
|
|
msg = MIMEMultipart()
|
|
|
|
# msg = MIMEText('hello, send by Python...', 'plain', 'utf-8')
|
|
msg['From'] = _format_addr('来自<%s>接口测试' % from_addr)
|
|
msg['To'] = _format_addr(' <%s>' % kwargs["to_addr"])
|
|
msg['Subject'] = Header(kwargs["header_msg"], 'utf-8').encode()
|
|
msg.attach(MIMEText(kwargs["attach"], 'plain', 'utf-8'))
|
|
|
|
if kwargs.get("report", "0") != "0":
|
|
part = MIMEApplication(open(kwargs["report"], 'rb').read())
|
|
part.add_header('Content-Disposition', 'attachment', filename=('gb2312', '', kwargs["report_name"]))
|
|
msg.attach(part)
|
|
|
|
server = smtplib.SMTP_SSL(smtp_server, kwargs["port"])
|
|
server.set_debuglevel(1)
|
|
server.login(from_addr, password)
|
|
server.sendmail(from_addr, kwargs["to_addr"], msg.as_string())
|
|
server.quit()
|
|
if __name__ == '__main__':
|
|
to_addr = ["xxxxx@qq.com"]
|
|
mail_host = "smtp.qq.com"
|
|
mail_user = "xxxxx@qq.com"
|
|
mail_pass = "xxxx"
|
|
port = "465"
|
|
header_msg = "接口测试"
|
|
attach = "接口测试"
|
|
report = PATH("../Runner/report.xlsx")
|
|
send_mail(to_addr = to_addr, mail_host = mail_host, mail_user=mail_user, port=port, mail_pass=mail_pass, header_msg=header_msg, report=report, attach=attach, report_name="接口测试报告")
|