我在这个问题中隐藏了ID和密码。但是,gmail密码是在之后生成的 打开两步验证并生成应用程序密码。
错误-- 属性错误:模块“smtplib”没有属性“SMTP”
import smtplib
email = "*****@gmail.com"
password = "*****"
with smtplib.SMTP("smtp.gmail.com", port=587) as connection:
connection.starttls()
connection.login(user=email, password=password)
connection.sendmail(from_addr=email,
to_addrs="*****@yahoo.com",
msg="Subject:Hello\n\nThis is the body of the email"
)
当 Python 发现与
smtplib
模块的循环依赖时,通常会发生此错误。
如果您的Python脚本名为
smtplib.py
或email.py
,Python会在执行smtplib
库的导入语句时尝试导入您的文件。
因此,它创建了一个部分初始化的模块,如果您的脚本没有名为 smtp 的属性,您将遇到此错误。
解决方案:
将发送 python 脚本的电子邮件重命名为除
smtplib.py
或 email.py
之外的名称