Em vários casos, os servidores de e-mail são acessados de dentro dos aplicativos Python para ler e-mails ou implementar clientes de e-mail. Para recuperar e-mails de um servidor de e-mail, o protocolo Internet Message Access Protocol (IMAP) é comumente usado. Neste artigo, mostraremos como ler e-mails de um servidor usando IMAP em Python. O artigo abordará explicitamente como se conectar a um servidor de e-mail, acessar a pasta desejada e ler e-mails.
- Biblioteca Python para ler e-mails usando IMAP
- Conecte-se a um servidor IMAP em Python
- Acessar pastas de e-mail da caixa de correio
- Ler e-mails de uma pasta
Biblioteca Python para ler e-mails usando IMAP
Para ler e-mails do servidor de e-mail via IMAP, usaremos Aspose.Email for Python via .NET. É uma poderosa biblioteca de e-mail que permite enviar e-mails e acessar caixas de correio de servidores de e-mail. Você pode instalar a biblioteca de PyPI usando o seguinte comando.
pip install Aspose.Email-for-Python-via-NET
Para instalação manual usando um arquivo .whl, você pode seguir as etapas abaixo.
- Baixe o arquivo .whl instalável da seção downloads.
- Na linha de comando, use o comando: pip install «FileName> >.whl para instalar a biblioteca.
Conecte-se ao servidor de e-mail via IMAP em Python
A seguir estão as etapas para se conectar a um servidor de e-mail usando IMAP.
- Crie uma instância da classe ImapClient e inicialize-a com nome de host, porta, nome de usuário e senha.
- Use o objeto ImapClient para acessar a caixa de correio.
O exemplo de código a seguir mostra como se conectar a um servidor de email usando IMAP em Python.
from aspose.email import SecurityOptions, ImapClient
# create an instance of ImapClient and provide host, port, username and password
client = ImapClient("imap.domain.com", 993, "user@domain.com", "password")
# set security options
client.security_options = SecurityOptions.SSLIMPLICIT
# use ImapClient object to access mailbox
Acesse pastas de e-mail da caixa de correio em Python
Depois de estabelecer a conexão com o servidor de e-mail, você pode escolher a pasta da qual deseja ler as mensagens de e-mail. Vamos primeiro verificar como obter a lista de todas as pastas na caixa de correio. A seguir estão as etapas para obter informações sobre cada pasta.
- Crie uma instância da classe ImapClient e inicialize-a com nome de host, porta, nome de usuário e senha.
- Use o método ImapClient.listfolders() para obter a coleção de pastas em um objeto.
- Percorra a coleção e recupere os detalhes das pastas.
O exemplo de código a seguir mostra como imprimir detalhes das pastas em uma caixa de correio.
from aspose.email import ImapClient
# create an instance of ImapClient and provide host, port, username and password
with ImapClient("imap.gmail.com", 993, "username", "password") as client:
# get list of folders
folderInfoColl = client.list_folders()
# iterate through the collection to get folders' info one by one
for folderInfo in folderInfoColl:
print("Folder name is " + folderInfo.name)
folderExtInfo = client.get_folder_info(folderInfo.name)
print("New message count: " + str(folderExtInfo.new_message_count))
print("Is it readonly? " + str(folderExtInfo.read_only))
print("Total number of messages " + str(folderExtInfo.total_message_count))
Vamos agora acessar uma pasta específica na caixa de correio usando IMAP.
- Crie uma instância da classe ImapClient e inicialize-a com nome de host, porta, nome de usuário e senha.
- Use o método ImapClient.selectfolder(string) para selecionar a pasta.
O exemplo de código a seguir mostra como selecionar uma pasta de email da caixa de correio.
from aspose.email import ImapClient
# create an instance of ImapClient and provide host, port, username and password
with ImapClient("imap.gmail.com", 993, "username", "password") as client:
# select the folder from mailbox
client.select_folder("Inbox")
Ler e-mails de uma pasta em Python
A seguir estão as etapas para ler mensagens de email de uma pasta específica na caixa de correio usando Python.
- Crie uma instância da classe ImapClient e inicialize-a com nome de host, porta, nome de usuário e senha.
- Use o método ImapClient.selectfolder(string) para selecionar a pasta.
- Obtenha a lista de mensagens na pasta usando o método client.listmessages().
- Faça um loop pela coleção de mensagens.
- Obtenha detalhes de cada mensagem de e-mail e salve-a no disco, se necessário.
O exemplo de código a seguir mostra como ler emails de um servidor de email em Python.
from aspose.email import ImapClient
# create an instance of ImapClient and provide host, port, username and password
with ImapClient("imap.gmail.com", 993, "username", "password") as client:
# select folder
client.select_folder("Inbox")
# read each message in collection
for msg in client.list_messages():
print( "From: '{}', MIME Id: {}".format(msg.from_address, msg.message_id) )
# save message on disk
client.save_message(msg.unique_id, msg.unique_id + "_out.eml")
Obtenha uma licença de API gratuita
Você pode usar o Aspose.Email para Python via .NET gratuitamente obtendo uma licença temporária.
Conclusão
Neste artigo, você aprendeu como ler e-mails de um servidor de e-mail usando IMAP em Python. Os exemplos de código demonstraram como se conectar a um servidor de email, obter a lista de pastas na caixa de correio, selecionar uma pasta e ler emails. Além disso, você pode visitar documentação para explorar mais sobre o Aspose.Email para Python via .NET. Além disso, você pode baixar o pacote completo de amostras de código-fonte do GitHub. Caso você tenha alguma dúvida ou pergunta, sinta-se à vontade para nos informar através do nosso fórum.