Python 3.7通过SMTP发送邮件时出现AttributeError错误
解决AttributeError: module 'smtplib' has no attribute 'SMTP'
这个错误的核心原因几乎都是你的脚本文件名和Python内置的smtplib模块重名了,导致import时导入的是你自己的脚本,而非系统自带的smtplib模块,自然找不到SMTP类。
解决步骤:
- 检查你的脚本文件名,绝对不能叫
smtplib.py,如果是,立刻改成其他名字(比如send_email.py)。 - 检查当前目录下是否存在
smtplib.pyc文件(编译后的字节码文件),如果有,直接删除它。 - 验证导入的模块是否正确,在代码开头添加以下代码确认:
正常输出应该是Python安装路径下的smtplib文件(类似import smtplib print(smtplib.__file__)/usr/lib/python3.x/smtplib.py),如果输出的是当前目录下的文件,说明还是文件名的问题。
额外注意(针对Gmail配置):
你用应用专用密码是正确的,但要确保:
- 已经给你的Google账号开启了两步验证。
- 应用专用密码是在Google账号的「安全性」设置里,选择「邮件」类应用生成的。
内容的提问来源于stack exchange,提问作者Sentinal
相关产品推荐
相关产品推荐

