使用过程成出现的如下错误

smtplib.SMTPDataError: (554, 'DT:SPM 126 smtp5错误解决办法

 

1.自动化测试中,调用邮件模块自动发送邮件时,运行脚本报错:

smtplib.SMTPDataError: (554, 'DT:SPM 126 smtp5,jtKowAD3MJz2c1JXLcK2AA--.52114S2 1465021431,please see http://mail.163.com/help/help_spam_16.htm?ip=123.114.121.110&hostid=smtp5&time=1465021431')

2.解决方法(这里已python为例):

#定义发送邮件
def send_mail(file_new):
f = open(file_new, 'rb')
mail_body = f.read()
f.close()

msg = MIMEText(mail_body, 'html', 'utf-8')
msg = MIMEText('请查看附件内容!','plain','utf-8')
msg['Subject'] = Header("自动化测试报告", 'utf-8')

#报错原因是因为“发件人和收件人参数没有进行定义
msg['from'] = 'test_bug@126.com'
msg['to'] = 'testyao@163.com'

smtp = smtplib.SMTP()
smtp.connect("smtp.126.com")
smtp.login("test_bug@126.com", "登录密码")
smtp.sendmail("test_bug@126.com","testyao@163.com", msg.as_string())
smtp.quit()
print('邮件发送成功email has send out !')

3.利用此种方法(绿色代码部分)即可解决相关邮箱的554, 'DT:SPM的错误。

本文为"测试那点事_TestYao"博客整理收集,转载请注明出处,谢谢!

以下代码是通过python3实现了 邮件的发送

# coding:utf-8

import os, sys
import smtplib
import time
from email.header import Header
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart reportPath = os.path.join(os.getcwd(), 'report') # 测试报告的路径 print("打印路径:") print(reportPath) # reportPath = os.path.join(os.path.dirname(os.path.abspath(sys.argv[0])),'report') class SendMail(object):
def __init__(self, recver=None):
"""接收邮件的人:list or tuple"""
if recver is None:
self.sendTo = ['chinayyj2010@163.com'] # 收件人这个参数,可以是list,或者tulp,以便发送给多人
else:
self.sendTo = recver def get_report(self): # 该函数的作用是为了在测试报告的路径下找到最新的测试报告
dirs = os.listdir(reportPath)
dirs.sort()
newreportname = dirs[-1]
print('The new report name: {0}'.format(newreportname))
return newreportname # 返回的是测试报告的名字 def take_messages(self): # 该函数的目的是为了 准备发送邮件的的消息内容
newreport = self.get_report()
self.msg = MIMEMultipart()
self.msg['Subject'] = '测试报告主题' # 邮件的标题
self.msg['date'] = time.strftime('%a, %d %b %Y %H:%M:%S %z') with open(os.path.join(reportPath, newreport), 'rb') as f:
mailbody = f.read() # 读取测试报告的内容
html = MIMEText(mailbody, _subtype='html', _charset='utf-8') # 将测试报告的内容放在 邮件的正文当中
self.msg.attach(html) # 将html附加在msg里 # html附件 下面是将测试报告放在附件中发送
att1 = MIMEText(mailbody, 'base64', 'gb2312')
att1["Content-Type"] = 'application/octet-stream'
att1["Content-Disposition"] = 'attachment; filename="TestReport.html"' # 这里的filename可以任意写,写什么名字,附件的名字就是什么
self.msg.attach(att1) def send(self):
self.take_messages()
self.msg['from'] = 'wmXXXXXt@163.com' # 发送邮件的人
self.msg['to'] = 'cXXXXXXX@163.com' # 收件人和发送人必须这里定义一下,执行才不会报错。
#smtp = smtplib.SMTP('smtp.163.com', 25) # 连接服务器
smtp = smtplib.SMTP()
smtp.connect('smtp.163.com')
smtp.login('wmqyyj_test@163.com', 'XXXXXXX') # 登录的用户名和密码(注意密码是设置客户端授权码,因为使用用户密码不稳听,有时无法认证成功,导致登录不上,故无法发送邮件。)
smtp.sendmail(self.msg['from'], self.msg['to'], self.msg.as_string()) # 发送邮件
smtp.close()
print('sendmail success') if __name__ == '__main__':
sendMail = SendMail()
sendMail.send()

python 测试报告发送邮件的更多相关文章

  1. python大法好——Python SMTP发送邮件

    Python SMTP发送邮件 SMTP(Simple Mail Transfer Protocol)即简单邮件传输协议,它是一组用于由源地址到目的地址传送邮件的规则,由它来控制信件的中转方式. py ...

  2. Python——SMTP发送邮件

    一.定义 SMTP(Simple Mail Transfer Protocol)即简单邮件传输协议,它是一组用于由源地址到目的地址传送邮件的规则,由它来控制信件的中转方式.python的smtplib ...

  3. 用Python自动发送邮件

    用Python自动发送邮件     最近需要在服务器上处理一些耗时比较长的任务,因此想到利用python写一个自动发送邮件的脚本,在任务执行完毕后发送邮件通知我.以下代码以163邮箱为例: 开通163 ...

  4. python之发送邮件~

    在之前的工作中,测试web界面产生的报告是自动使用python中发送邮件模块实现,在全部自动化测试完成之后,把报告自动发送给相关人员 其实在python中很好实现,一个是smtplib和mail俩个模 ...

  5. Appium+python 自动发送邮件(1)(转)

    (原文:https://www.cnblogs.com/fancy0158/p/10056091.html) SMTP:简单传输协议,实在Internet上传输Email的事实标准. Python的s ...

  6. python+selenium 发送邮件

    import time from selenium import webdriver from selenium.webdriver import ChromeOptions from seleniu ...

  7. [python]Robotframework+Git+jenkins实现持续集成并生成测试报告发送邮件

    1.环境需求 &robotframework(不写搭建,自行百度) & git(不写安装,自行百度) &jenkins 2.安装jenkins 官网下载最新版本https:// ...

  8. python自动发送邮件

    Python 的 smtplib 模块提供了发送电子邮件的功能.测试报告出来后,然后就把报告发送到邮箱. 一.先来看简单的列子 使用QQ邮箱发送邮件,使用的是授权码,需要先到QQ邮箱申请授权码. 邮箱 ...

  9. Python自动发送邮件(可带附件)

    Python内置对SMTP的支持,可以发送纯文本邮件.HTML邮件以及带附件的邮件. Python对SMTP支持有smtplib和email两个模块,email负责构造邮件,smtplib负责发送邮件 ...

随机推荐

  1. (转)Apache转发配置

    本文转载自:http://blog.csdn.net/leshjmail/article/details/6163581 安装文件 1.httpd-2.2.15-win32-x86-no_ssl.ms ...

  2. Python if-elif-else

    alien_color = ['green','yellow','red']for color in alien_color: if color == 'green': print 'alien_co ...

  3. 1074 Reversing Linked List

    题意: 每k个元素反转链表,不足k个就不反转.如原链表为1→2→3→4→5→6,k=3,则反转后的链表为3→2→1→6→5→4:若k=4,则反转后的链表为4→3→2→1→5→6. 思路: 这题会比较烦 ...

  4. php中的move_uploaded_file

    1.定义和用法 move_uploaded_file() 函数将上传的文件移动到新位置. 若成功,则返回 true,否则返回 false. 2.语法 move_uploaded_file(file,n ...

  5. MFC学习(七) 单文档程序

    1 MFC单文档程序的主要类 (1)文档类(Document) 即应用程序处理的数据对象,文档一般从 MFC 中 CDocument 中派生.CDocument 类用于相应数据文件的读取以及存储 Cv ...

  6. DOM对象与JQuery对象

    在初学JAVA时,经常会迷惑,分不清DOM/JQuery对象,以及可以调用的方法. 1.什么是DOM/JQuery对象 DOM对象,即是我们用传统的方法(javascript)获得的对象: eg:va ...

  7. python's fifteenth day for me 递归函数

    递归... def age(n): if n == 1: return 18 else: return age(n-1)+2 # 反复调用函数age() print(age(4)) l = [1,3, ...

  8. pandas数据对齐

    Pandas的对齐运算 是数据清洗的重要过程,可以按索引对齐进行运算,如果没对齐的位置则补NaN,最后也可以填充NaN Series的对齐运算 1. Series 按行.索引对齐 示例代码: s1 = ...

  9. python学习——练习题(3)

    """ 题目:一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少? """ import math d ...

  10. IIS监控应用程序池和站点假死,自动重启IIS小工具

    文章技术适合初学者.高级的C#开发工程师这些估计都熟悉到烂了,望不要喷. 第一.C#代码要操作IIS 就必须先导入 Microsoft.Web.Administration.dll ,方便控制台程序做 ...