You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python smtplib发送邮件报错SMTP AUTH extension not supported求解决方案

问题解决方法

你的代码存在几个关键问题,对应解决办法如下:

1. 错误匹配SMTP服务器

你使用的是Gmail邮箱,但连接的是Yahoo的SMTP服务器,两者不兼容。Gmail官方SMTP服务器地址为smtp.gmail.com,对应端口用587(TLS加密)或465(SSL加密)。

2. 未启用加密连接

当前主流邮件服务器均要求加密传输,直接裸连SMTP会被拒绝认证,必须启用TLS或SSL加密协议。

3. 邮件内容不完整

sendmail方法需要完整的邮件头(主题、收发件人)和正文内容,否则会被服务器拦截或无法正常投递。

修正后的代码示例

方式一:TLS加密(端口587)

import smtplib
from email.message import EmailMessage

# 配置账号信息
sender_email = "smtpsender1001@gmail.com"
app_password = "ksarvsqstghnvbou"  # 需确保是Gmail两步验证生成的App密码
receiver_email = "smtpsender1001@gmail.com"

# 构建完整邮件
msg = EmailMessage()
msg["From"] = sender_email
msg["To"] = receiver_email
msg["Subject"] = "Python测试邮件"
msg.set_content("这是通过Python脚本发送的测试邮件内容")

# 发送邮件(用with语句自动管理连接)
with smtplib.SMTP("smtp.gmail.com", 587) as connection:
    connection.starttls()  # 启用TLS加密
    connection.login(user=sender_email, password=app_password)
    connection.send_message(msg)

方式二:SSL加密(端口465)

import smtplib
from email.message import EmailMessage

sender_email = "smtpsender1001@gmail.com"
app_password = "ksarvsqstghnvbou"
receiver_email = "smtpsender1001@gmail.com"

msg = EmailMessage()
msg["From"] = sender_email
msg["To"] = receiver_email
msg["Subject"] = "Python测试邮件"
msg.set_content("测试内容")

with smtplib.SMTP_SSL("smtp.gmail.com", 465) as connection:
    connection.login(user=sender_email, password=app_password)
    connection.send_message(msg)

额外注意事项

  • 必须确保你的Gmail账号已开启两步验证,只有生成的App密码才能通过SMTP认证,普通登录密码无法使用。
  • 若仍报错,检查Gmail账号的"不安全应用访问"是否处于关闭状态(当前Gmail默认关闭,必须依赖App密码登录)。

内容的提问来源于stack exchange,提问作者santino larris

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.27 21:37:13