Подтвердить что ты не робот

Выполните электронное письмо с помощью imaplib, но не отмечайте его как SEEN

Я хочу разобрать некоторые электронные письма из папки "Входящие", но когда я это сделаю:

typ, msg_data = imap_conn.fetch(uid, '(RFC822)')

Он отмечает электронную почту как SEEN или читает. Это не желаемая функциональность. Знаете ли вы, как я могу сохранить электронную почту на ее предыдущем взгляде, или SEEN или НЕ ВИДЕТЬ?

4b9b3361

Ответ 1

Вы также можете установить для параметра read_only значение true при выборе папки:

imap_conn.select('Inbox', readonly=True)

Ответ 2

Следующее должно работать:

typ, msg_data = imap_conn.fetch(uid, '(BODY.PEEK[HEADER])')

или BODY.PEEK[TEXT] и т.д.

Ответ 3

Вы можете использовать (RFC822.PEEK) как аргумент "сообщения-части", согласно RFC 1730 (я не проверял, какие серверы фактически реализуйте это правильно, но для них это не сложно).

Ответ 4

Вы можете использовать пакет imap_tools: https://pypi.org/project/imap-tools/

from imap_tools import MailBox, Q

# get list of email subjects from INBOX folder
with MailBox('imap.mail.com').login('[email protected]', 'password') as mailbox:
    # mark_seen=False - not mark emails as seen on fetch
    subjects = [msg.subject for msg in mailbox.fetch(mark_seen=False)]