Imaplib de Python

Alguns exemplos √ļteis de uso do imaplib do python para verificar sua caixa de entrada. Isso s√≥ foi testado com uma caixa de entrada do gmail at√© agora.

Algumas leituras especialmente √ļteis sobre IMAP

IMAP

Definir um intervalo de tempo razo√°vel

Voc√™ provavelmente n√£o quer come√ßar a rastrear sua caixa de entrada at√© os primeiros e-mails que recebeu, portanto, o m√≥dulo datetime ser√° √ļtil. Especificamente, gosto de usar:

date = (datetime.date.today() - datetime.timedelta(1)).strftime("%d-%b-%Y")

para obter uma data formatada corretamente representando ontem. Basta alterar o argumento para a função timedelta se quiser verificar mais adiante.

A sintaxe relevante para usar isso ser√° algo ao longo das linhas de:

'(SENTSINCE {0})'.format(date)

isso ir√° dentro de um comando de pesquisa IMAP como parte de seus filtros

Especificando um remetente específico para procurar

Se estiver procurando um e-mail de alguém em particular, você pode usar:

'(FROM {0})'.format(eml.strip())

Seria perigoso omitir o strip call em geral.

Pesquisando somente emails n√£o vistos

Para pesquisar apenas e-mails não vistos, a sintaxe relevante do python / IMAP é:

'(UNSEEN)'

Um Exemplo Completo

CONN = imaplib.IMAP4_SSL("imap.gmail.com")
login
("your email", "your password", CONN)
date
= (datetime.date.today() - datetime.timedelta(1)).strftime("%d-%b-%Y")
(_, data) = CONN.search(None, ('UNSEEN'), '(SENTSINCE {0})'.format(date)), '(FROM {0})'.format("[email protected]".strip()))
ids
= data[0].split()

Isso recuperar√° todos os e-mails N√ÉO Vistos enviados no √ļltimo dia de ” [email protected] “, na forma de id de mensagem, que voc√™ pode usar para processar posteriormente os e-mails individuais.

A função de login deve ser semelhante a:

conn.login(user, password)
conn
.list()
readonly = True
conn
.select("INBOX", readonly)

A parte somente leitura √© realmente muito importante se voc√™ n√£o quiser que o script mova os e-mails que encontrar para a sua se√ß√£o “lida”. Com o bit somente leitura definido como verdadeiro, sua caixa de entrada n√£o ser√° modificada de forma alguma.