原代码如下:

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()

最新文章

  1. Android-Eclipse-INSTALL_FAILED_UPDATE_INCOMPATIBLE错误
  2. [转]Code! MVC 5 App with Facebook, Twitter, LinkedIn and Google OAuth2 Sign-on (C#)
  3. 如何重复使用IEnumerable对象来枚举?
  4. hdu 1078 FatMouse and Cheese (dfs+记忆化搜索)
  5. golang 学习笔记
  6. 个性A标签
  7. NSString 去掉前后空格或回车符
  8. 后台特殊字符处理,ajax
  9. log4net使用流程
  10. StackExchange.Redis 使用-发布订阅 (二)
  11. BZOJ 4195: [Noi2015]程序自动分析 [并查集 离散化 | 种类并查集WA]
  12. JSON(五)——同步请求中使用JSON格式字符串进行交互(不太常见的用法)
  13. Django-restframework 源码之认证组件源码分析
  14. 变量 range while for input
  15. L2-024. 部落
  16. 初识dubbo
  17. NC 5导出Excel
  18. 过滤器中处理multipart/form-data头部的post请求request.getParameter(&quot;)获取不到参数问题
  19. linux RPM包安装、更新、删除等操作命令简明总结, 如何查看yum安装的软件路径 ?
  20. 任务02——安装 Intellj IDEA,编写一个简易四则运算小程序,并将代码提交到 GitHub

热门文章

  1. IPC最快的方式----共享内存(shared memory)
  2. Codeforces 586D Phillip and Trains(DP)
  3. codevs——2853 方格游戏(棋盘DP)
  4. [TJOI2014] Alice and Bob
  5. log4j(一)
  6. ios开发小结之app发布升级
  7. 非常有用的开发工具之Android Studio插件
  8. SpringMVC项目中web.xml中的节点载入顺序问题
  9. masm学习
  10. 【性能优化】——前端性能优化之DOM