原代码如下:

import smtplib
from email.mime.text import MIMEText
from email.header import Header #要发送的服务器
smtpserver = 'smtp.126.com'
#要发送的邮箱用户名/密码
user = 'XXX@126.com'
password = 'XXX'
#发送的邮箱
sender = 'XXX@126.com'
#接收的邮箱
receiver = 'XXX@qq.com'
#发送邮箱主题
subject = 'test_mail' #编写HTML类型的邮件正文
msg = MIMEText('<html><h1>大佬好!</h1></html>','html','utf-8')
msg['Subject'] = Header(subject,'utf-8') #连接发送邮件
smtp = smtplib.SMTP()
smtp.connect(smtpserver)
smtp.login(user,password)
smtp.sendmail(sender,receiver,msg.as_string())
smtp.quit()

一、现象:

发送邮件时,运行时报错smtplib.SMTPDataError,如下图:

二、解决办法

①经网上查询得知:因为126邮箱中没有开启【授权码】,如下图所示应该开启:

②但是再次运行代码还是报错:smtplib.SMTPAuthenticationError,如下图,提示登陆失败:

原因是:代码中的密码应该改为授权密码即可。

③继续运行后,但是代码还是报错:smtplib.SMTPDataError:(554, b'DT:SPM 126 smtp4

报错原因是没有加上下面的代码:

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

加上之后,终于解决发送邮件失败的问题了。

完整代码如下:(因保密自行替换)

import smtplib
from email.mime.text import MIMEText
from email.header import Header #要发送的服务器
smtpserver = 'smtp.126.com'
#要发送的邮箱用户名/密码
user = 'XXX@126.com'
password = 'XXX'
#发送的邮箱
sender = 'XXX@126.com'
#接收的邮箱
receiver = 'XXX@qq.com'
#发送邮箱主题
subject = 'test_mail' #编写HTML类型的邮件正文
msg = MIMEText('<html><h1>大佬好!</h1></html>','html','utf-8')
msg['Subject'] = Header(subject,'utf-8')
msg['from'] = 'XXX@126.com'
msg['to'] = 'XXX@qq.com' #连接发送邮件
smtp = smtplib.SMTP()
smtp.connect(smtpserver)
smtp.login(user,password)
smtp.sendmail(sender,receiver,msg.as_string())
smtp.quit()

【selenium+Python unittest】之使用smtplib发送邮件错误:smtplib.SMTPDataError:(554)、smtplib.SMTPAuthenticationError(例:126邮箱)的更多相关文章

  1. selenium+python+unittest实现自动化测试(入门篇)

    本文主要讲解关于selenium自动化测试框架的入门知识点,教大家如何搭建selenium自动化测试环境,如何用selenium+python+unittest实现web页面的自动化测试,先来看看se ...

  2. smtplib.SMTPDataError: (554, b'DT:SPM 126 smtp

    报错信息 smtplib.SMTPDataError: (554, b'DT:SPM 126 smtp7,DsmowAA3uguL7e1cyvkyFw--.22553S3 1559096715,ple ...

  3. selenium+python unittest实践过程之问题杂集

    1.列表选择项后直接获取文本内容获取不到,应该获取选择后显示的button的值 2.取值后的值带有空格,可以使用.strip()删除前后空格,以便断言 3.取值后有些值需要对类型进行转换才能断言成功 ...

  4. selenium+python+unittest:一个类中只执行一次setUpClass和tearDownClass里面的内容(可解决重复打开浏览器和关闭浏览器,或重复登录等问题)

    unittest框架是python自带的,所以直接import unittest即可,定义测试类时,父类是unittest.TestCase. 可实现执行测试前置条件.测试后置条件,对比预期结果和实际 ...

  5. 【selenium+Python unittest】之发送带中文附件的邮箱

    完整原码如下: import smtplib from email.mime.text import MIMEText #from email.header import Header from em ...

  6. 【Selenium】【BugList10】smtp发送邮件问题汇总:550/535/554

    [场景] 通过126邮箱向QQ邮箱发送HTML格式邮件 [代码1] from email.mime.text import MIMEText from email.header import Head ...

  7. python使用smtplib发送邮件

    python要实现发送邮件的功能,需要使用smtplib库. 1. 过程大致如下: 1. 建立和SMTP邮件服务器的连接 # 默认端口25 smtp = smtplib.SMTP(host, port ...

  8. python selenium 使用unittest 示例

    python selenium 使用unittest 示例 并等待某个元素示例 from selenium.webdriver.support.ui import WebDriverWait from ...

  9. selenium + python自动化测试unittest框架学习(二)

    1.unittest单元测试框架文件结构 unittest是python单元测试框架之一,unittest测试框架的主要文件结构: File >report >all_case.py &g ...

随机推荐

  1. CSS 黑魔法小技巧,让你少写不必要的JS,代码更优雅

    首页   登录注册         CSS 黑魔法小技巧,让你少写不必要的JS,代码更优雅 阅读 8113 收藏 927 2017-09-26 原文链接:github.com 腾讯云容器服务CSS,立 ...

  2. netbean下搭建mariadb数据库

    本人的操作系统Manjaro 最新版,mariadb版本为10.1.1,使用netbeasn开发java WEB,搭建过程如下: 1.安装数据库 pacman -S mariadb 2.启动数据库服务 ...

  3. 小型web项目的模块化(转)

    背景   目前团队中新的 Web 项目基本都采用了 Vue 或 React ,加上 RN,这些都属于比较重量级的框架,然而对于小型 Web 页面,又显得过大.早期的一些项目则使用了较原始的 HTML ...

  4. Day 1 MySQL数据库

    MySQL数据库_1 一.概述 1.数据(DATA) 描述事物的符号记录称为数据,描述事物的符号既可以是数字,也可以是文字.图片,图像.声音.语言等,数据由多种表现形式,它们都可以经过数字化后存入计算 ...

  5. javascript 动态添加城市

    匿名函数的使用 createTextnode 创建文本 createElement   创建元素 appendChild     将文本或元素追加 <!DOCTYPE html> < ...

  6. 前端优化之Combo Handler

    Combo Handler来合并CSS/JS文件 背景 Combo Handler是Yahoo!开发的一个Apache模块,它实现了开发人员简单方便地通过URL来合并JavaScript和CSS文件, ...

  7. FZU 1077 铁皮容器 【枚举/二分】

    Accept: 1040    Submit: 2314Time Limit: 1000 mSec    Memory Limit : 32768 KB Problem Description 使用白 ...

  8. 提升开发效率的一款mybatis开发神器

    文末附有完整案例的代码内容!! 以前在开发的时候,使用mybatis的时候,经常都需要先配置xml映射文件,然后每条sql操作都需要自己进行手动编写,对于一些复杂的sql这么来操作确实有必要,但是如果 ...

  9. spring-cloud集成mybatis-plus

    mybatis-plus插件是对mybatis做出系列增强插件,后面简称MP,MP可免去开发者重复编写xml.mapper.service.entity等代码,通过MP提供的实体注解来完成单表的CRU ...

  10. smartsvn学习(三) Error validating server certificate for

    Error validating server certificate for 'xxxxxxxxxxxx:443':  - The certificate is not issued by a tr ...