当前位置: 首页 > 知识库问答 >
问题:

使用python和imaplib登录gmail失败

池赞
2023-03-14

我正在寻求登录gmail帐户并使用python脚本下载一些电子邮件的帮助。我正在尝试采用这里找到的方法,但我在步骤1中遇到了一个问题,即通过imap访问帐户。

下面是我要开始的代码:

import email
import imaplib

m = imaplib.IMAP4_SSL("imap.gmail.com",993)
rc, resp = m.login('myemailaddress','mypassword')

我得到以下错误:

Traceback (most recent call last):
  File "email.py", line 1, in <module>
    import email, imaplib
  File "/home/will/wd/email.py", line 14, in <module>
     m.login('myemailaddress','mypassword')
  File "/usr/lib/python3.4/imaplib.py", line 538, in login
    raise self.error(dat[-1])
 imaplib.error: b'[ALERT] Please log in via your web browser: http://support.google.com/mail/accounts/bin/answer.py?answer=78754 (Failure)'

在gmail设置中确实启用了Imap。我已经查看了google支持链接上的说明,以及类似情况下有关此错误的问题,例如这里和这里,但我的情况与第一次不同,因为1)它从一开始就不起作用,2)我没有经常运行它而被阻止。它与第二个示例也不同,因为这是一个普通的gmail帐户,而不是一个带有谷歌应用程序帐户的自定义
使用https://accounts.google.com/DisplayUnlockCaptcha尝试并允许访问对我也不起作用。

唯一允许登录工作的是将我的谷歌帐户安全设置更改为“允许访问不太安全的应用程序”。

我的问题是:在不放松帐户安全设置的情况下,如何修复代码(或更一般的设置)以允许我登录?是否有某种方法可以使用libimap满足安全要求?

共有3个答案

邵星河
2023-03-14

随着新gmail的更新,一些邮件服务或应用程序由于新的gmail安全设置而被阻止。为了解决这个问题,我去了https://www.google.com/settings/security页面和“启用”访问不太安全的应用程序。

尉迟宇定
2023-03-14

如果要避免此错误而不影响帐户的安全性,请使用OAuth进行身份验证。这里记录了该协议,还有Python示例代码显示了XOAUTH2与imaplib的结合使用。

独立于此,您应该考虑在您的帐户上启用两步验证,以使其更安全。如果这样做,您可以使用应用程序密码连接到IMAP,这也可以避免上述警告。

阎德辉
2023-03-14

您可以尝试启用此选项:https://www.google.com/settings/security/lesssecureapps这一行动为我解决了同样的问题。

 类似资料:
  • 问题内容: 我正在寻求一些帮助,以登录gmail帐户并使用python脚本下载一些电子邮件。我正在尝试采用此处找到的方法,但是我遇到了第1步的问题,即通过imap访问帐户。 这是我开始的代码: 我收到以下错误: 在gmail设置中确实启用了Imap。我已经查看了Google支持链接上的说明以及在类似情况下有关此错误的问题,但是我的情况与第一种情况有所不同,因为 1)从一开始它就没有用, 2)我是不

  • 我目前正在开发一个需要gmail收件箱的应用程序。目前我正在使用带有凭据的Gmail API。json和令牌。pickle,虽然每次使用脚本时我都想使用其他凭据登录,但这很正常。我对这个API很陌生,想知道是否可以使用令牌所用凭据以外的其他凭据登录。泡菜。 Gmail API 要当前获取gmail收件箱,我使用以下代码: imaplib 我尝试获取某个用户收件箱的另一种方法是使用imaplib和电

  • 我知道很多人都问过类似的问题,但我想知道如何使用python登录gmail(或google帐户)。我已经有了一个代码(见下文),可以使用selenium将用户登录到gmail。然而,我注意到了一些问题。 程序停止/关闭时浏览器关闭。 它无法检测到失败的登录。 这两个问题都需要解决,我才能完成我的项目。我不介意使用像pyautogui这样的selenium以外的东西来打开google。但是,它需要能

  • 问题内容: 我正在尝试使用Selenium登录gmail。在新的gmail登录中,首先输入您的电子邮件ID,然后在下一页输入密码。电子邮件页面的URL和密码页面的URL不同。因此,当我在其中传递密码URL时,它将重新加载页面,并且如果您刷新URL而未输入密码,它将重定向到电子邮件页面。因此,它缺少密码字段选择器。仍然是先前的网址,即电子邮件页面的网址。这是我的代码。我正在使用Chrome驱动程序和

  • 问题内容: 我希望能够使用Python将GMail中的电子邮件从收件箱移动到另一个文件夹。我正在使用imaplib,无法弄清楚该怎么做。 问题答案: 没有针对IMAP的明确移动命令。您将必须先执行,后跟一个(带有适当的标志以指示删除),最后执行。下面给出的示例用于将消息从一个标签移动到另一个标签。您可能需要添加更多错误检查。

  • 我有一个硒服务,必须登录到我的gmail帐户作为第一步。这个功能几周前还在工作,但突然登录开始失败,我在浏览器中看到这个错误,在硒Chrome和Firefox驱动程序中都尝试过- 此错误发生在selenium服务插入电子邮件、密码并单击登录按钮之后。谷歌支持论坛也报告了类似的错误:https://support.google.com/accounts/thread/10916318?hl=en他们