截至今年 5 月,谷歌已停止允許“不太安全的應用程式”使用“簡單”的用戶名和密碼資訊訪問 Gmail 帳戶的選項。這意味著我用來提取電子郵件的 Python 代碼(見下文使用的一些模塊/元素)現在會導致以下錯誤:
imaplib.IMAP4.error: b'[AUTHENTICATIONFAILED] 無效憑據(失敗)'
還有一種可靠的方法可以使用 Python 模塊從 Gmail 中提取電子郵件資訊嗎?非常感謝任何建議
從當前程式中選擇的代碼
import smtplib
import time
import imaplib
import email
import traceback
import re
from bs4 import BeautifulSoup
import datetime
import pandas as pd
import requests
import env
ORG_EMAIL = "@gmail.com"
FROM_EMAIL = "xxxx" ORG_EMAIL
FROM_PWD = "xxx"
SMTP_SERVER = "imap.gmail.com"
SMTP_PORT = 993
emails_regex_2= r'[\w\.-] @[\w\.-] (?:\.[\w] ) '
time_format = '%d %b %Y'
mail = imaplib.IMAP4_SSL(SMTP_SERVER)
mail.login(FROM_EMAIL,FROM_PWD)
mail.select('inbox')
data = mail.search(None, 'ALL')
uj5u.com熱心網友回復:
我有同樣的問題。我也懶得重寫我的實用程式腳本。此外,我不想這樣做,因為我的意思是它們是檢查電子郵件帳戶的腳本,而不是專門的 gmail 帳戶(我知道谷歌會想要廢除協議的標準化,但周圍還有其他電子郵件提供商)。
與我合作的方式(到目前為止。谷歌現在說這種方法也“不太安全”,這通常是他們在停用它之前 2 年所說的),是創建應用程式密碼。
為此,您需要啟用兩步驗證(我知道,對于您嘗試做的事情,這似乎是朝著錯誤方向邁出的一步,但事實并非如此)。然后轉到您的谷歌帳戶,“安全”部分并創建一個應用密碼。該密碼僅供應用程式使用。您可以創建其中的許多,為使用您的電子郵件的每個應用程式創建一個。然后,您可以在腳本中使用它,就像之前使用用戶密碼一樣。
我猜這個想法(因為谷歌認為使用一個密碼而不是另一個密碼不安全的協議可能很奇怪,即使你基本上可以用它做任何事情)是這個密碼應該是特定于應用程式的。因此,您可以在需要時輕松撤銷它。另外,它是生成的,你不能選擇它。而且,好吧,你基本上可以用它做任何事情......除了谷歌特定的操作。例如,獲取您的應用密碼的黑客無法更改您的谷歌密碼,或關閉您的帳戶。但是,好吧,它仍然非常簡單(我至少希望在創建應用程式密碼時,您可以精細限制使用該密碼可以做什么)
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/513305.html
標籤:Python电子邮件邮箱
