欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

初探自动化测试框架(python)第五章——邮件

程序员文章站 2022-07-14 08:34:53
...

STEP1:

pip3 install smtplib
pip3 install email

STEP2:

原文链接:https://service.mail.qq.com/cgi-bin/help?subtype=1&&id=28&&no=1001256

什么是授权码?

授权码是QQ邮箱推出的,用于登录第三方客户端的专用密码。
适用于登录以下服务:POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务。
温馨提醒:为了你的帐户安全,更改QQ密码以及独立密码会触发授权码过期,需要重新获取新的授权码登录。

怎么获取授权码?

先进入设置-》帐户页面找到入口,按照以下流程操作。
(1)点击“开启”
初探自动化测试框架(python)第五章——邮件
(2)验证密保
初探自动化测试框架(python)第五章——邮件
(3)获取授权码
初探自动化测试框架(python)第五章——邮件

STEP3:

import os
import smtplib
from email.header import Header
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart

from config.pathes import REPORT_PATH, NOW, DAY


def new_report():
    '''筛选出最新的报告'''
    lists = os.listdir(REPORT_PATH)
    #获取路径下的文件
    lists.sort(key=lambda fn: os.path.getmtime(REPORT_PATH))
    #按照时间顺序排序
    new_report = os.path.join(REPORT_PATH,lists[-1])
    #获取最近时间的
    return new_report


def send_mail():

    senduser = 'aaa@qq.com'   #发送邮箱
    sendpswd = '124124124'   #授权码
    receusers = ['aaa@qq.com']    #收信邮箱

    report = new_report()   # 获取报告文件
    f = open(report, 'rb')
    body_main = f.read()
    msg = MIMEMultipart()
    msg['Subject'] = Header('今日情况' + NOW, 'utf-8')  # 邮件标题 
    text = MIMEText('%s '% body_main, 'html', 'utf-8') # 邮件内容
    msg.attach(text)
    att = MIMEText(open(report, 'rb').read(), 'base64', 'utf-8')    # 发送附件
    att['Content-Type'] = 'application/octet-stream'
    att.add_header('Content-Disposition', 'attachment', filename=('utf-8', '', DAY + "_report.html"))
    msg.attach(att)

    smtp = smtplib.SMTP()
    smtp.connect('smtp.qq.com')
    smtp.login(senduser, sendpswd)
    msg['From'] = senduser
    for receuser in receusers :
        msg['To'] = receuser
        smtp.sendmail(senduser, receuser, msg.as_string())



if __name__ == '__main__':
    send_mail()