簡體   English   中英

使用 imaplib 使用文件中的憑據登錄 Gmail

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM