Добавление Python IMAP4 завершается неудачно - PullRequest
0 голосов
/ 15 марта 2019

При добавлении сообщения в несуществующую папку не выдается ошибка.Трудно представить, что это задумано, что я делаю не так?

mailbox = imaplib.IMAP4_SSL(host="foo")
mailbox.login("foo", "bar")
try:
    mailbox.append("DOES_NOT_EXIST", '', imaplib.Time2Internaldate(time.time()), str(mail).encode("utf-8"))
except:
    # Expecting to fail here, but it doesn't
    # Message doesn't show up in any other folder either (expectedly)

1 Ответ

0 голосов
/ 15 марта 2019

Как справедливо указано в комментариях , это действительно намеренное поведение и задокументировано .

Каждая команда возвращает кортеж: (тип, [данные, ...]), где типом обычно является «ОК» или «НЕТ», а данные - это либо текст из ответа на команду, либо обязательные результаты из команды.

Поэтому один из способов отловить ошибку:

status, data = mailbox.append("DOES_NOT_EXIST", '', imaplib.Time2Internaldate(time.time()), str(mail).encode("utf-8"))
if status == "NO":
    # Catch it here
...