我正在运行一个 cron 作业,它执行 python 脚本来读取 gmail(2 分钟间隔)。我使用 imaplib 来阅读新邮件。直到昨天为止,这一切都运行良好。突然它抛出以下错误
imaplib.error:[AUTHENTICATIONFAILED] 凭据无效(失败)
有时我会收到以下错误
raise self.abort(bye[-1]) imaplib.abort:[不可用]临时系统错误
当我在不同的机器上运行相同的脚本时。它工作正常。我假设主机已被列入黑名单或类似的情况。
我有什么选择?
我无法生成凭据(Gmail API),因为这是在公司域帐户下。
尝试:
1) https://myaccount.google.com/lesssecureapps?pli=1
2) Gmail 设置 -> 转发和 POP / IMAP -> IMAP 访问以启用 IMAP
某些应用程序和设备使用安全性较低的登录技术。所以我们需要从 gmail 帐户启用
Less secure app access
选项。
步骤:
Security
部分Less secure app access
Ensure you have entered the right password
Even after that if it is not working
- 启用 IMAP 访问:Gmail 设置 > 转发和 POP / IMAP > IMAP 访问
- 为Google帐户启用2因素身份验证
- 然后生成应用程序专用密码 (
https://myaccount.google.com/apppasswords)
- 使用这个新生成的密码进行 imap 登录
API and Services
中创建项目后,现在 Google 已经创建了一组用于读取 Gmail 数据的库。以下链接包含相同的 python 快速入门指南:https://developers.google.com/gmail/api/quickstart/python 按照步骤操作后,当我在登录后从脚本中获得一个链接以通过浏览器继续操作时,我收到“访问被阻止:项目尚未完成 Google 验证过程”。然后我找到了
this Youtube视频,也解决了这个问题。