1

poplibを使用してPOP3サーバーからメールを取得しています。

しかし、このエラーが発生しました:

*cmd* 'USER xxx@gmail.com'
*put* b'USER xxx@gmail.com'
*get* b'+OK send PASS\r\n'
*resp* b'+OK send PASS'
*cmd* 'PASS asdasd\n'
*put* b'PASS asdasd\n'
*get* b'-ERR bad command qj1pf12899100pbb.19\r\n'
*resp* b'-ERR bad command qj1pf12899100pbb.19'

これがPythonコードです:

import getpass, poplib
def LoginGmail( email, pa ):
    M = poplib.POP3_SSL('pop.googlemail.com', '995') 
    M.set_debuglevel(2)
    user = email
    try:
        M.user(user)
        M.pass_(pa)
    except:
        print('Invalid credentials')
    else:
        print('Successful login')

...
in main():
loginGmail('test@gmail.com','asdasd')

ただし、この関数で、パスワード('pa'と表示)を入力して直接入力しようとすると、機能します。ユーザーには起こりません。

助けてください、私はそれを理解するために一日努力してきましたが、私には不可能に思えます:(

ありがとうございました

4

1 に答える 1

0

パスワードを読み取ったときに問題が見つかりました:

*cmd* 'PASS asdasd\n'
*put* b'PASS asdasd\n'

どういうわけか、不正な文字を含む\nも読み取ります。各入力値の\nを削除して解決します。

于 2012-12-07T23:51:07.043 に答える