Как запустить команду XLIST в python imap lib на сервере Google Imap? - PullRequest
2 голосов
/ 09 декабря 2011

Я хочу запустить команду XLIST из python lib, кто-нибудь знает как?(нет ничего об этой команде в документации по Python).Этот вопрос адрес этот вопрос .

Ответы [ 2 ]

1 голос
/ 04 мая 2012

Другим способом решения этой проблемы является использование сторонней библиотеки IMAPClient .

Он поддерживает XLIST из коробки .

1 голос
/ 16 января 2012

Эта команда не реализована imaplib.

Я знаю, что это что-то вроде хака, но мне действительно нужно было запустить XLIST по той же причине.

Глядя на то, как list () был реализован в источнике imaplib, я унаследовал класс IMAP4_SSL imaplib и добавил команду xlist ().Итак, в adv_imaplib.py добавьте:

import imaplib

imaplib.Commands['XLIST'] =  ('AUTH', 'SELECTED')

class ADV_IMAP4_SSL(imaplib.IMAP4_SSL):

  def xlist(self, directory='""', pattern='*'):
    """(X)List mailbox names in directory matching pattern. Using Google's XLIST extension

    (typ, [data]) = <instance>.xlist(directory='""', pattern='*')

    'data' is list of XLIST responses.
    """
    name = 'XLIST'
    typ, dat = self._simple_command(name, directory, pattern)
    return self._untagged_response(typ, dat, name)

, теперь просто создайте ADV_IMAP4_SSL вместо IMAP4_SSL и вызовите xlist (), у меня работает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...