Python - IMAP

IMAP é um protocolo de recuperação de e-mail que não baixa os e-mails. Ele apenas os lê e exibe. Isso é muito útil em condições de baixa largura de banda. Biblioteca do lado do cliente Python chamadaimaplib é usado para acessar e-mails no protocolo imap.

IMAP apoia Internet Mail Access Protocol. Foi proposto pela primeira vez em 1986.

Key Points:

  • O IMAP permite que o programa cliente manipule a mensagem de e-mail no servidor sem baixá-la no computador local.

  • O e-mail é retido e mantido pelo servidor remoto.

  • Ele nos permite realizar qualquer ação, como fazer download, excluir o e-mail sem ler o e-mail. Permite-nos criar, manipular e excluir pastas de mensagens remotas chamadas caixas de correio.

  • O IMAP permite que os usuários pesquisem os e-mails.

  • Ele permite acesso simultâneo a várias caixas de correio em vários servidores de e-mail.

Comandos IMAP

A tabela a seguir descreve alguns dos comandos IMAP:

SN Descrição do Comando
1 IMAP_LOGIN
Este comando abre a conexão.
2 CAPABILITY
Este comando solicita a listagem dos recursos que o servidor suporta.
3 NOOP
Este comando é usado como uma pesquisa periódica para novas mensagens ou atualizações de status de mensagens durante um período de inatividade.
4 SELECT
Este comando ajuda a selecionar uma caixa postal para acessar as mensagens.
5 EXAMINE
É igual ao comando SELECT, exceto que nenhuma alteração na caixa de correio é permitida.
6 CREATE
É usado para criar uma caixa de correio com um nome especificado.
7 DELETE
É usado para excluir permanentemente uma caixa de correio com um determinado nome.
8 RENAME
É usado para alterar o nome de uma caixa de correio.
9 LOGOUT
Este comando informa ao servidor que o cliente terminou a sessão. O servidor deve enviar uma resposta BYE não marcada antes da resposta OK e, em seguida, fechar a conexão de rede.

Exemplo

No exemplo abaixo, fazemos login em um servidor gmail com credenciais de usuário. Em seguida, optamos por exibir as mensagens na caixa de entrada. Um loop for é usado para exibir as mensagens buscadas uma por uma e, finalmente, a conexão é fechada.

import imaplib
import pprint
imap_host = 'imap.gmail.com'
imap_user = '[email protected]'
imap_pass = 'password'
# connect to host using SSL
imap = imaplib.IMAP4_SSL(imap_host)
## login to server
imap.login(imap_user, imap_pass)
imap.select('Inbox')
tmp, data = imap.search(None, 'ALL')
for num in data[0].split():
	tmp, data = imap.fetch(num, '(RFC822)')
	print('Message: {0}\n'.format(num))
	pprint.pprint(data[0][1])
	break
imap.close()

Dependendo da configuração da caixa de correio, o correio é exibido.