zoukankan      html  css  js  c++  java
  • 使用Python发送邮件

    发送邮件
    在生成报告后我们希望框架能自动把报告发送到我们的邮箱中。和outlook,foxmail等邮件客户端一样,Python中发送邮件需要通过Email的smtp服务发送。

    使用Python发送邮件

    首先需要登录自己的邮箱,在设置中开启smtp服务,并记住授权密码。

    发送邮件分3步

    1. 编写邮件内容(Email邮件需要专门的MIME格式)
    2. 组装Email头(发件人,收件人,主题)
    3. 连接smtp服务器并发送邮件
    import smtplib  # 用于建立smtp连接
    from email.mime.text import MIMEText  # 邮件需要专门的MIME格式
    
    # 1. 编写邮件内容(Email邮件需要专门的MIME格式)
    msg = MIMEText('this is a test email', 'plain', 'utf-8')  # plain指普通文本格式邮件内容
    
    # 2. 组装Email头(发件人,收件人,主题)
    msg['From'] = '你的邮箱地址'  # 发件人
    msg['To'] = '收件人邮箱地址'  # 收件人
    msg['Subject'] = '邮件主题'  # 邮件主题
    
    # 3. 连接smtp服务器并发送邮件
    smtp = smtplib.SMTP_SSL('smtp.qq.com')  # smtp服务器地址 使用SSL模式
    smtp.login('你的邮箱地址', '邮箱授权密码')  # 用户名和密码
    smtp.sendmail("你的邮箱地址", "收件人邮箱地址", msg.as_string())
    smtp.quit()
    

    携带附件

    import smtplib
    from email.mime.text import MIMEText
    from email.mime.multipart import MIMEMultipart  # 混合MIME格式,支持上传附件
    from email.header import Header  # 用于使用中文邮件主题
    
    # 1.  编写邮件内容
    with open('report.html', encoding='utf-8') as f:  # 打开html报告
        email_body = f.read()  # 读取报告内容
    
    msg = MIMEMultipart()  # 混合MIME格式
    msg.attach(MIMEText(email_body, 'html', 'utf-8'))  # 添加html格式邮件正文(会丢失css格式)
    
    # 2. 组装Email头(发件人,收件人,主题)
    msg['From'] = 'test_results@sina.com'  # 发件人
    msg['To'] = '2375247815@qq.com'  # 收件人
    msg['Subject'] = Header('接口测试报告', 'utf-8')  # 中文邮件主题,指定utf-8编码
    
    # 3. 构造附件1,传送当前目录下的 test.txt 文件
    att1 = MIMEText(open('report.html', 'rb').read(), 'base64', 'utf-8')  # 二进制格式打开
    att1["Content-Type"] = 'application/octet-stream'
    att1["Content-Disposition"] = 'attachment; filename="report.html"'  # filename为邮件中附件显示的名字
    msg.attach(att1)
    
    # 4. 连接smtp服务器并发送邮件
    smtp = smtplib.SMTP_SSL('smtp.qq.com')  # smtp服务器地址 使用SSL模式
    smtp.login('你的邮箱', '邮箱授权码')  # 用户名和密码
    smtp.sendmail("你的邮箱", "收件人邮箱", msg.as_string())
    smtp.quit()
    
  • 相关阅读:
    git整理
    oracle中utl_raw
    mysqltest语法整理
    oracle存储过程中拼接字符串及转义逗号
    oracle存储过程中循环游标,变量的引用
    oracle触发器
    oracle序列相关
    编译1
    面向对象的脚本语言的类的实现
    词法分析器
  • 原文地址:https://www.cnblogs.com/superhin/p/13950653.html
Copyright © 2011-2022 走看看