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

使用Python smtplib连接Gmail SMTP发邮件无输出无报错问题求助

逐步骤排查解决方法

1. 优先修复代码中的基础配置与参数错误

  • 代码中所有写死的sender、reciever是无意义的字符串占位,不是可识别的真实邮箱,SMTP服务器无法定位发件/收件地址:
    • msg['From']、msg['To']、smtp.sendmail()方法里的发件人、收件人参数,全部要替换为完整的、带域名的真实邮箱地址(比如xxx@gmail.com)
    • smtp.login()方法里的'gmail'、'code'同样是占位值:第一个参数要填完整的发件人Gmail账号,第二个参数不能填账号日常登录密码,要填Gmail生成的应用专用密码
  • 原代码中smtp.sendmail()的第三个参数直接传入了msg对象,没有调用msg.as_string()方法把邮件对象转成符合RFC标准的字符串格式,服务器收到非标准格式的邮件内容会直接丢弃,不会给发件人返回明显的错误提示。

2. 解决“运行无任何输出”的静默问题

当前的代码没有加任何交互日志和异常捕获,哪怕连接失败、认证被拒、参数错误,也可能因为没有主动打印内容,让控制台看起来没有反应。只需做两处调整就能把所有问题暴露出来:

  • 打开SMTP模块的内置调试日志:在SMTP连接代码块里加上 smtp.set_debuglevel(1),运行后控制台会打印你和Gmail邮件服务器的每一步交互指令、返回结果,哪一步卡住或者被拒绝会直接显示在终端
  • 给所有SMTP操作套上异常捕获块,把错误信息打印到控制台,不要让异常静默吃掉

参考调整后的可直接定位问题的代码片段:

import smtplib
from email.message import EmailMessage

# 替换为真实值
SENDER = "你的完整gmail账号@gmail.com"
RECEIVER = "收件人完整邮箱地址"
APP_SPECIFIC_PASSWORD = "gmail生成的16位应用专用密码"

msg = EmailMessage()
msg['Subject'] = 'Product in Stock Alert'
msg['From'] = SENDER
msg['To'] = RECEIVER
msg.set_content(
    "Hey, {} is now available in stock\n"
    "Check it out soon : {}".format('hamza', 'google.com')
)

try:
    with smtplib.SMTP('smtp.gmail.com', 587, timeout=15) as smtp:
        smtp.set_debuglevel(1)
        smtp.ehlo()
        smtp.starttls()
        smtp.ehlo()
        smtp.login(SENDER, APP_SPECIFIC_PASSWORD)
        smtp.sendmail(SENDER, RECEIVER, msg.as_string())
        print("邮件发送请求已成功提交到服务器")
except Exception as e:
    print(f"发送流程出错,具体原因:{str(e)}")

3. 纠正Gmail账号的配置误区

之前提到的“开启低安全应用访问、关闭两步验证”的配置逻辑,现在已经不适用:

  • Gmail在2022年5月已永久下线全局的“低安全应用访问”开关,这个选项在当前的账号设置里已经找不到入口,老的认证规则完全失效
  • 现在哪怕关闭两步验证,Gmail也不支持直接用账号日常登录密码做SMTP客户端认证,必须通过账号安全页生成独立的16位应用专用密码,用这个密码完成SMTP登录,否则会被服务器静默拒绝,且因为原代码没有开调试日志,根本看不到认证失败的提示

4. 补充排查其他影响因素

  • 检查本地网络连通性:确认本地网络可以正常连通smtp.gmail.com的587端口,不要被本地防火墙、系统代理拦截出站连接,连接被拦时代码会卡在连接环节,没有日志的情况下就会表现为“运行没反应”
  • 检查收件箱的垃圾邮件文件夹:就算发送流程全部走通,这类库存提醒类的邮件很容易被邮箱服务商判定为垃圾邮件,不会出现在收件箱的默认位置

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.28 12:06:07