[英]Using imaplib to log into Gmail using credentials from a file
我提前道歉,我知道這將是一個簡單的答案,但我沒有運氣,它開始困擾我。
我只想使用 imaplib 和從文件中提取的憑據登錄到我的 Gmail 帳戶。 我可以登錄 Gmail 不用擔心使用:
srv = imaplib.IMAP_SSL("imap.gmail.com")
srv.login("bob@gmail.com", "mypassword")
但相反,我嘗試使用文本文件(credentials.dat)。 文件里面有 2 行:
bob@gmail.com
mypassword
我的代碼如下:
import imaplib
CREDS = open("credentials.dat", "r")
account = CREDS.readline()
password = CREDS.readline()
srv = imaplib.IMAP4_SSL("imap.gmail.com")
srv.login(account, password)
當我運行它時,我收到以下錯誤:
Traceback (most recent call last):
File "<stdin>", line 1, in ?
File "/usr/lib64/python2.4/imaplib.py", line 480, in login
typ, dat = self._simple_command('LOGIN', user, self._quote(password))
File "/usr/lib64/python2.4/imaplib.py", line 1028, in _simple_command
return self._command_complete(name, self._command(name, *args))
File "/usr/lib64/python2.4/imaplib.py", line 865, in _command_complete
raise self.error('%s command error: %s %s' % (name, typ, data))
imaplib.error: LOGIN command error: BAD ['Failed to parse your command r13if7033890ebd.47']
我認為它不喜歡輸入 srv.login 的數據類型,但我不知道該怎么做。
一旦我進入 Gmail(閱讀電子郵件、發帖等),我想做的事情還有很多,但如果我什至無法登錄,這看起來就像一場艱苦的戰斗:(
謝謝你的時間。
readline()
在行尾包含換行符,因此您實際上是在說:使用'bob@gmail.com\n'
登錄
嘗試readline().strip()
從行的兩側去除空白字符。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.