IMAP メールボックスを監視し、新しい受信メッセージをすべて「アーカイブ」フォルダに自動的にコピーするプログラムを作成しようとしています。IDLE コマンドを実装する imaplib2 を使用しています。これが私の基本的なプログラムです:
M = imaplib2.IMAP4("mail.me.com")
M.login(username,password)
lst = M.list()
assert lst[0]=='OK'
for mbx in lst[1]:
print "Mailboxes:",mbx
def process(m):
print "m=",m
res = M.recent()
print res
M.select('INBOX')
M.examine(mailbox='INBOX',callback=process)
while True:
print "Calling idle..."
M.idle()
print "back from idle"
M.close()
M.logout()
メールボックスを適切に出力し、メールボックスに最初の変更が発生したときに process() を実行します。しかし、recent() からの応答は意味がありません。また、最初のメッセージの後、他の通知を受け取ることはありません。
誰でもこれを行う方法を知っていますか?