【发布时间】:2020-07-02 21:07:18
【问题描述】:
我想在我的 python 代码中包含通过 gmail 发送通知邮件。
我按照所有步骤去做:
- 导入 smtplib
- 启用安全性较低的应用程序
- 等待 1 天
- 设置二次验证权限
- 创建 16 位应用密码
- 用 16 位应用密码更改我的 gmail 密码
- 登录我的 gmail 帐户
- 解锁显示验证码
- 在 10 分钟内运行代码
我仍然遇到同样的错误:
(534,b'5.7.9 需要特定于应用程序的密码。了解更多信息:\n5.7.9 https://support.google.com/mail/?p=InvalidSecondFactorh25sm8001063qkg.87 - gsmtp')
这是我的代码:
import smtplib, ssl
port = 465 # For SSL or 465
smtp_server = "smtp.gmail.com"
sender_email = "my_mail@gmail.com" # Enter your address
receiver_email = "my_mail@gmail.com" # Enter receiver address
password = '16digtisapppass' # i've checked I can log in to my gmail account with it
message = """\
Subject: Hi there
This message is sent from Python."""
try:
server = smtplib.SMTP_SSL('smtp.gmail.com', port)
server.ehlo()
server.login(sender_email, password)
server.sendmail(sender_email, receiver_email, message)
except Exception as e:
print(e)
# or
context = ssl.create_default_context()
with smtplib.SMTP_SSL(smtp_server, port, context=context) as server:
server.login(sender_email, password)
server.sendmail(sender_email, receiver_email, message)
我已经阅读了这些其他帖子:
- https://stackabuse.com/how-to-send-emails-with-gmail-using-python/
- http://stackoverflow.com/a/27515833/2684304
我不是专业的编码员,所以也许我缺少一些简单的东西。
我不知道我还能做什么。有人可以帮我吗?
【问题讨论】:
-
Google 似乎阻止了从不太安全的来源登录您的帐户的尝试。按照此处的说明启用访问:stackoverflow.com/questions/16512592/…
-
还要检查您的密码是否正确。
-
谢谢你们的cmets。但是stackoverflow链接指向我已经发布的相同。我已经列举了它建议的所有步骤,但它一直不起作用。密码没问题,我是故意更改的,显示的错误是另一个错误。此外,我通过从我的代码中复制 16 位密码并将其粘贴到密码输入框中来登录我的 gmail 帐户,并且它有效。
-
我很高兴它成功了,我们最终到达了那里。