SMTP

python发邮件报错SMTP AUTH extension not supported by server."

在login(username,password)之前添加
smtp.ehlo()
smtp.starttls()

d ={'smtp_server': '','smtp_email': '','smtp_helo': '','smtp_port': '25',}
e = Email(d)
e.smtp = smtplib.SMTP(e.smtp_server,e.smtp_port)
e.smtp.ehlo()
e.smtp.starttls() 
e.smtp.helo(e.smtp_helo)
e.smtp.set_debuglevel(1)
e.smtp.login('username','password')

还有一种情况是客户环境的邮箱配置限制了helo()指令,可以尝试注释掉解决问题

还有一种情况是客户环境限制了starttls 把这行注释了试下

多人员发送(中文) 邮件客户端显示异常,多信息粘连

msg['To']时 不能简单的传入,如果包含中文,需要通过Header对象进行编码

def _format_addr(s):
    name, addr = parseaddr(s)
    return formataddr((Header(name, 'utf-8').encode(), addr))

在msg['From'] msg['To'] 都加上 _format_addr
posted @   π=3.1415926  阅读(2537)  评论(0编辑  收藏  举报
编辑推荐:
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
点击右上角即可分享
微信分享提示