import smtplib from email.header import Header from email.mime.multipart import MIMEMultipart from email.mime.text import MIMEText from email.utils import formataddr, parseaddr
class Mailsconnect: def __init__(self): # 设置服务器:这个是qq邮箱服务器,直接复制就可以 self.__mail_host = "smtp.qq.com" # 我们获取的授权码 self.__mail_pass = "XXXXXX" # 你的邮箱地址 self.__sender = 'XXXXX@vip.qq.com' # 收件人的邮箱地址,可设置为你的QQ邮箱或者其他邮箱,可多个 self.__receivers = ['XXXXX@qq.com', 'XXXXXX@qq.com'] def send_mail(self, file_new): # 读取html文件内容 f = open(file_new, 'rb') # HTML文件默认和当前文件在同一路径下,若不在同一路径下,需要指定要发送的HTML文件的路径 mail_body = f.read() f.close() # 邮件内容, 格式, 编码 msg = MIMEMultipart() msg['From'] = formataddr(["标题", self.__sender]) for to_addr in self.__receivers: msg['To'] = formataddr(parseaddr(to_addr)) msg['Subject'] = Header('IHRM自动化测试报告', 'utf-8') msg.attach(MIMEText(mail_body, 'html', 'utf-8')) msg_file = MIMEText(mail_body, 'html', 'utf-8') msg_file['Content-Type'] = 'application/octet-stream' msg_file.add_header('Content-Disposition', 'attachment', filename='《HRM》自动化测试报告.html') msg.attach(msg_file) try: smtp = smtplib.SMTP() smtp.connect(self.__mail_host) # smtp.set_debuglevel(1) smtp.login(self.__sender, self.__mail_pass) smtp.sendmail(self.__sender, self.__receivers, msg.as_string()) smtp.quit() print("\n\033[36;0m--------------------- 发送成功 ---------------------\033[0m") except smtplib.SMTPException as e: print(e)