首页 > 解决方案 > Python - 连接到 Gmail 并发送邮件 - 错误 534 InvalidSecondFactor

问题描述

我想在我的 python 代码中包含通过 gmail 发送通知邮件。

我按照所有步骤进行操作:

我仍然遇到同样的错误:

(534,b'5.7.9 需要特定于应用程序的密码。了解详情,请访问\n5.7.9 https://support.google.com/mail/?p=InvalidSecondFactor h25sm8001063qkg.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)

我读过这些其他帖子:

我不是专业的编码员,所以也许我缺少一些简单的东西。

我不知道我还能做什么。有人可以帮我吗?

标签: pythongmailsmtplib

解决方案


问题是“两步验证”在您的帐户中。

解决方案:

  1. 关闭两步验证并在您的应用中使用您的普通密码帐户(有关详细信息,请参阅此链接)
  2. 使用 App Passwords 登录,App Password 是一个 16 位数的密码,可授予安全性较低的应用或设备访问您的 Google 帐户的权限。应用密码只能用于已开启两步验证的帐户(请参阅此链接链接2 )。 在此处输入图像描述

推荐阅读