python读取文本以邮件发送方法

#-*- coding:utf-8 -*-

# 倒包
# 使用的协议 smtp
import smtplib
# 导入body需要的模块
from email.mime.text import MIMEText
# 导入上传附件的类
from email.mime.multipart import MIMEMultipart
# 导入 head 设置标题用的
from email.header import Header
import datetime
import codecs
# 声明类

# 定义封装发送邮件的方法
def send_email():


# 指定发送邮件和接收邮件的邮箱
# 发送邮件的用户
    sender = "***@163.com"

    # 接收邮件的用户,可以是一个人也可以是多个人,以逗号隔开
    recever = "***@***.com,***@***.com"

    # 登陆 smtp服务器邮箱的用户名 和 密码 (注意这里是授权码)

    username = "***@163.com"
    password = "***"

    # 发送邮件服务器
    smtpserver = "smtp.163.com"
    # 获取当前日期
    day = datetime.date.today().strftime("%Y-%m-%d")
    创建一个文本文件
    s =  day + "\\" + "***.txt"
    f = codecs.open(s, 'r+', encoding='utf-8')
    # f = open(s, "r")
    str = f.read()
    f.close()


    # 读取传入报告的时候的方法
    # 读取测试报告的内容
    # with open(filename, "rb") as f:
    #     # 作为一个字符串读取出来,这俩句话等价于下面两句话
    #     mail_body = f.read()
    #     # 关流
    #     f.close()
    # # 以只读的方式打开
    # f = open(filename, 'rb')
    # # 进行读取
    # mail_body = f.read()

    ret = True
    try:
    # 实例化 MIMEMultipart 对象,将文件传入进去

        # 定义邮件内容
        msg = MIMEMultipart()
        # 将自动化测试报告添加到正文里面
        # body = MIMEText(mail_body, _subtype='html', _charset='utf-8')
        msg['Subject'] = 'result'
        msg['from'] = sender
        msg['to'] = recever
        # 加上时间戳,好像没什么卵用
        # msg["date"] = time.strftime('%a, %d %b %Y %H:%M:%S %z')
        # 加入到 MIMEMultipart 里面
        # msg.attach(body)

        # 设置body的信息
        thebody = MIMEText(str, 'plain', 'utf-8')
        msg.attach(thebody)

        #添加附件 
        att = MIMEText(open(s).read(), "base64", "gbk")
        att["Content-Type"] = "application/octet-stream"
        att["Content-Disposition"] = 'attachment; filename="printlog.txt"'
        msg.attach(att)
        #登录邮箱
        # smtp = smtplib.SMTP()
        smtp=smtplib.SMTP_SSL()
        #连接邮箱服务器
        smtp.connect(smtpserver, 465)
        #用户名密码
        smtp.login(username, password)

        smtp.sendmail(sender, recever.split(','), msg.as_string())
        smtp.quit()
    except Exception:
        ret = False

    return ret

send_email()

你可能感兴趣的:(自动化测试)