接口测试框架学习实践-发送邮件(问题记录2020-2-21)

1.outlook在本机无法发邮件

解决方法:寻找其它可发邮件的的邮箱及实现方式

1.使用网易邮箱进行发送,在网上找到对应实现方法,根据自己的框架修改为变量配置及读取的方式

2.过程遇到问题:

a.本文件调试通过,在其它程序中调用无法正常发送邮件;

原因:变量是在class类之前,所以在本文件中可以正常使用,但在外部文件中调用此class方法时,class外部变量未初始化,所以无法使用;

解决:将使用到的变量移入到class内部,并在方法中使用变量的前面加上self.(如self.a)

b.前面能正常发送邮件,中途调试修改后不能在正常发送邮件,且改回之前调试通过的样子依然无法发送

原因:错误码554,发送邮件过多,被限制

解决:暂无彻底解决方案,目前只能是重启电脑,一段时间不发送

c.使用本文件中定义的变量,可正常发送邮件,改为从配置文件中读取变量值时,无法正常发送邮件

原因:配置文件中变量后面加了注释(同本文件中定义的变量一样),读取变量时把注释也当成变量的一部分

解决:将变量去掉,或放到变量 的前一行

d.自己写的文件依赖导入标红(失败)

原因:导入的文件在另一个文件夹中

解决:使用from 文件夹 import 文件名

3.代码如下:

# -- coding: utf-8 --

import smtplib  # smtp服务器
from email.mime.text import MIMEText  # 邮件文本
import datetime
import os
import getpathInfo
import win32com.client as win32
from common.Log import logger
import readConfig

class send_email():

    read_conf = readConfig.ReadConfig()
    sender = read_conf.get_email('sender')  # 从配置文件中读取,邮件发件人
    password = read_conf.get_email('password')  # 从配置文件中读取,发件人邮箱密码
    subject = read_conf.get_email('subject')  # 从配置文件中读取,邮件主题
    #app = str(read_conf.get_email('app'))  # 从配置文件中读取,邮件类型
    recver = read_conf.get_email('recver')  # 从配置文件中读取,邮件收件人
    cc = read_conf.get_email('cc')  # 从配置文件中读取,邮件抄送人
    mail_path = os.path.join(getpathInfo.get_Path(), 'result', 'report.html')  # 获取测试报告路径
    logger = logger

    def outlook(self):
        olook = win32.Dispatch("outlook.application")
        mail = olook.CreateItem(win32.constants.olMailItem)
        mail.To = "Ally-0308@outlook.com" # 收件人
        mail.CC = self.cc # 抄送
        mail.Subject = str(datetime.datetime.now())[0:19]+'%s' %self.subject#邮件主题
        mail.Attachments.Add(self.mail_path, 1, 1, "myFile")
        content = """
                    执行测试中……
                    测试已完成!!
                    生成报告中……
                    报告已生成……
                    报告已邮件发送!!
                    """
        mail.Body = content
        mail.Send()
        print('send email ok!!!!')
        logger.info('send email ok!!!!')

    def mail_163(self):
        content="""测试已完成!!
                    测试结果:成功!
                    """+"测试报告地址:"+self.mail_path
        message = MIMEText(content, "plain", "utf-8")  # content 发送内容     "plain"文本格式   utf-8 编码格式
        message['Subject'] =str(datetime.datetime.now())[0:19]+'%s' %self.subject#邮件主题
        message['To'] = self.recver  # 收件人
        message['From'] = self.sender  # 发件人
        smtp = smtplib.SMTP_SSL("smtp.163.com", 465)  # 实例化smtp服务器
        smtp.login(self.sender,self. password)  # 发件人登录
        #smtp.sendmail(self.sender, [self.recver] + [self.cc], message.as_string())  # as_string 对 message 的消息进行了封装,收件人+抄送
        smtp.sendmail(self.sender, [self.recver], message.as_string())  # as_string 对 message 的消息进行了封装
        print("邮件发送成功")
        #smtp.close()
        smtp.quit()


if __name__ == '__main__':# 运营此文件来验证写的send_email是否正确
    #send_email().outlook()
    send_email().mail_163()
    print("send email ok!!!!!!!!!!")

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值