Recupera una e-mail con imaplib ma non segnarlo come visto
Domanda
Voglio analizzare alcune e-mail dalla posta in arrivo di un utente ma quando faccio:
typ, msg_data = imap_conn.fetch(uid, '(RFC822)')
.
Segna l'e-mail come visto o letto.Questa non è la funzionalità desiderata.Sai come posso mantenere l'e-mail al suo fissaggio precedente sia visto o non visto?
Soluzione
Potrebbe anche impostare read_only
su true quando si seleziona la cartella:
imap_conn.select('Inbox', readonly=True)
. Altri suggerimenti
Il seguente dovrebbe funzionare:
typ, msg_data = imap_conn.fetch(uid, '(BODY.PEEK[HEADER])')
.
o BODY.PEEK[TEXT]
, ecc.
È possibile utilizzare (RFC822.PEEK)
come argomento "Message-Parts", secondo RFC 1730 (non ho verificato quali server effettivamente implementano correttamente, ma non sembra difficile per loro).
È possibile utilizzare il pacchetto 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('test@mail.com', 'password') as mailbox:
# mark_seen=False - not mark emails as seen on fetch
subjects = [msg.subject for msg in mailbox.fetch(mark_seen=False)]
. Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow