Я использую imaplib2 ( документы ) для взаимодействия с сервером IMAP.
Я использую команду ожидания, время ожидания и обратный вызов.
Проблема в том, что я не вижу способа сказать, был ли обратный вызов вызван истечением времени ожидания, или если на сервере произошло изменение, которое мне нужно проверить.
Я просто получаю ('OK', ['IDLE terminated (Success)'])
каждый раз.
Вот выходные данные отладки для обоих случаев:
Timedout:
15:43.94 MainThread server IDLE started, timeout in 5.00 secs
15:48.94 imap.gmail.com handler server IDLE timedout
15:48.94 imap.gmail.com handler server IDLE finished
15:48.94 imap.gmail.com writer > DONE\r\n
15:49.17 imap.gmail.com reader < DDDM6 OK IDLE terminated (Success)\r\n
15:49.17 imap.gmail.com handler _request_pop(DDDM6, ('OK', ['IDLE terminated (Success)']))
Что-то случилось:
18:41.34 MainThread server IDLE started, timeout in 50.00 secs
19:01.35 imap.gmail.com reader < * 1 EXISTS\r\n
19:01.37 imap.gmail.com handler server IDLE finished
19:01.37 imap.gmail.com writer > DONE\r\n
19:01.59 imap.gmail.com reader < BFCN6 OK IDLE terminated (Success)\r\n
19:01.59 imap.gmail.com handler _request_pop(BFCN6, ('OK', ['IDLE terminated (Success)']))
Чего мне не хватает?
Функциональности просто нет в imaplib2?