IMAP サーバーからメッセージを取得しようとしています。これは私のコードの短いバージョンです:
>>> import imaplib
>>> m = imaplib.IMAP4_SSL(host='my.host.com')
>>> m.login('username', 'password')
>>> m.select('INBOX')
python3.4 の imaplib モジュールは、RFC 2060標準と互換性があります。そこには次のように書かれています。
FETCH コマンドは、メールボックス内のメッセージに関連付けられたデータを取得します。フェッチされるデータ項目は、単一のアトムまたは括弧で囲まれたリストのいずれかです。
今、私は理解できないいくつかの異なる結果を得ます:
>>> m.fetch('1613', '(ALL)')
imaplib.error: FETCH command error: BAD [b'Invalid Fetch attribute ALL']
>>> m.fetch('1613', 'ALL')
('OK', [b'1613 (FLAGS (\\Seen) INTERNALDATE' ... etc ...
>>> m.fetch('1613', '(FLAGS)')
('OK', [b'1613 (FLAGS (\\Seen))'])
>>> m.fetch('1613', 'FLAGS')
('OK', [b'1613 (FLAGS (\\Seen))'])
>>> m.fetch('1613', '(FLAGS ENVELOPE)')
('OK', ... etc ...
>>> m.fetch('1613', '(FLAGS ALL)')
imaplib.error: FETCH command error: BAD [b'Invalid Fetch attribute ALL']
ALL
括弧付きのアイテムを使用できない理由を誰かに説明してもらえますか?
私が尋ねている理由は、パラメーターに括弧を自動的に追加するIMAPClientALL
モジュールを使用しているため、アイテムが機能しないためです。