Библиотека Python imapclient простаивает, помечая письма как прочитанные - PullRequest
0 голосов
/ 11 мая 2018

Я пытаюсь использовать режим ожидания библиотеки imapclient.Используя только данный пример , электронные письма, которые приходят в режиме ожидания, помечаются как прочитанные.Сначала я получаю ответ сервера о том, что сообщение видно, но затем создается впечатление, что библиотека извлекает письмо и устанавливает флаг увиденного.Это так, как должно быть, или я что-то упустил?вот как выглядит вывод:

Connection is now in IDLE mode, send yourself an email or quit with ^c
('Server sent:', [(330, 'EXISTS')])
('Server sent:', [(330, 'FETCH', ('UID', 484, 'FLAGS', ('\\Seen',)))])

Вот вывод с включенной отладкой.Похоже, что - это создатель выборки.

('Server sent:', 'nothing')
2018-05-10 21:00:13,325 - DEBUG: < * 328 EXISTS
('Server sent:', [(328, 'EXISTS')])
2018-05-10 21:00:28,342 - DEBUG: < * 328 FETCH (UID 513 FLAGS (\Seen))
('Server sent:', [(328, 'FETCH', ('UID', 513, 'FLAGS', ('\\Seen',)))])

Вот соответствующая часть [полного] кода, который я использовал:

# Open a connection in IDLE mode and wait for notifications from the
# server.

from imapclient import IMAPClient

HOST = 'imap.host.com'
USERNAME = 'someuser'
PASSWORD = 'password'

server = IMAPClient(HOST)
server.login(USERNAME, PASSWORD)
server.select_folder('INBOX')

# Start IDLE mode
server.idle()
print("Connection is now in IDLE mode, send yourself an email or quit with ^c")

while True:
    try:
        # Wait for up to 30 seconds for an IDLE response
        responses = server.idle_check(timeout=30)
        print("Server sent:", responses if responses else "nothing")
    except KeyboardInterrupt:
        break

server.idle_done()
print("\nIDLE mode done")
server.logout()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...