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.