【selenium+Python unittest】之使用smtplib发送邮件错误:smtplib.SMTPDataError:(554)、smtplib.SMTPAuthenticationError(例:126邮箱)
原代码如下:
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()
不积跬步,无以致千里;不集小流,无以成江海。
如转载本文,请还多关注一下我的博客:https://www.cnblogs.com/Owen-ET/;
我的Github地址:https://github.com/Owen-ET————————————
无善无恶心之体, 有善有恶意之动, 知善知恶是良知, 为善去恶是格物。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统
· 【译】Visual Studio 中新的强大生产力特性
· 2025年我用 Compose 写了一个 Todo App