2011-12-09 8 views

答えて

1

このコマンドはimaplibでは実装されていません。

これはちょっとしたハックだと知っていますが、まったく同じ理由でXLISTを実行する必要がありました。

imaplibソースでlist()がどのように実装されたかを見て、imaplibのIMAP4_SSLクラスを継承し、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の、私のために動作します。

1

これに対処する別の方法は、サードパーティのIMAPClientライブラリを使用することです。

XLIST out of the boxをサポートしています。

関連する問題