imaplib 保存认证 python

imaplib save authenticate pythone

对不起我的英语。我使用 imaplib 进行电子邮件操作。我尝试保存身份验证,以保存我的密码。我找到了方法

IMAP4.login_cram_md5

但是怎么用呢?

这是我的例子

IMAP_SERVER = 'imap.gmail.com'
IMAP_PORT = '993'
IMAP_USE_SSL = True


    class MailBox(object):
        def __init__(self, user, password):
            print("MailBox __init__")
            self.user = user
            self.password = password
            if IMAP_USE_SSL:
                self.imap = imaplib.IMAP4_SSL(IMAP_SERVER, IMAP_PORT)
            else:
                self.imap = imaplib.IMAP4(IMAP_SERVER, IMAP_PORT)

        def __enter__(self):
            print("MailBox __enter__")
            self.imap.login_cram_md5(self.user, self.password)
            return self

起始码

class Main:
    main_box = MailBox('asdasd@gmail.com', 'wqeqwdsadwqeq==')
    main_box.__enter__()

我有错误

imaplib.error: Unsupported AUTHENTICATE mechanism. i188mb2545835lji

您的服务器不支持 CRAM_MD5。

在尝试使用扩展之前检查服务器的能力:

> a CAPABILITY   
< * CAPABILITY IMAP4rev1 UNSELECT IDLE NAMESPACE QUOTA ID XLIST CHILDREN X-GM-EXT-1 XYZZY SASL-IR AUTH=XOAUTH2 AUTH=PLAIN AUTH=PLAIN-CLIENTTOKEN AUTH=OAUTHBEARER AUTH=XOAUTH
< a OK Thats all she wrote!

Gmail 支持身份验证方法 XOAUTH2、PLAIN、PLAIN-CLIENTTOKEN、OAUTHBEARER 和 XOAUTH(加上基线非身份验证登录)。

PLAIN 是标准的。我不确定 PLAIN-CLIENTTOKEN 是什么。其余的是 OAUTH 的变体。