Trabalhando com Pastas no Servidor IMAP

Obtendo Informações sobre Pastas

Obter informações sobre pastas de um servidor IMAP é muito fácil com Aspose.Email. Chame o método ListFolders() do namespace Aspose.Email.Imap. Ele retorna um objeto do tipo ImapFolderInfoCollection. Percorra esta coleção e obtenha informações sobre pastas individuais em um loop. O método está sobrecarregado. Você pode passar um nome de pasta como parâmetro para obter uma lista de subpastas. O seguinte trecho de código mostra como obter informações sobre pastas de um servidor IMAP usando Aspose.Email com o método descrito nas informações.

For complete examples and data files, please go to https://github.com/aspose-email/aspose-email-python-dotnet
with ImapClient("imap.gmail.com", 993, "username", "password") as client:
folderInfoColl = client.list_folders();
#Iterate through the collection to get folder 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));

Excluindo e Renomeando Pastas

Os seguintes métodos da classe ImapClient relacionados à gestão de pastas em um servidor de e-mail usando IMAP podem ser facilmente implementados em seu projeto com Aspose.Email:

  • método delete_folder - remove permanentemente a pasta e todas as mensagens contidas nela.
  • método rename_folder - altera o nome da pasta sem alterar o conteúdo dentro dela.

O trecho de código abaixo mostra como excluir ou renomear pastas no servidor IMAP programaticamente:

# Excluir uma pasta e Renomear uma pasta
client.delete_folder("foldername")
client.rename_folder("foldername", "newfoldername")

Adicionando uma Nova Mensagem em uma Pasta

Você pode adicionar uma nova mensagem à pasta usando as classes MailMessage e ImapClient. Primeiro, crie um objeto MailMessage fornecendo os valores de assunto, para e de. Em seguida, inscreva-se em uma pasta e adicione a mensagem a ela. O seguinte trecho de código mostra como adicionar uma nova Mensagem em uma pasta.

For complete examples and data files, please go to https://github.com/aspose-email/aspose-email-python-dotnet
with ImapClient("imap.gmail.com", 993, "username", "password") as client:
client.select_folder("Inbox")
msg = MailMessage("user@domain1.com", "user@domain2.com", "subject", "message")
client.subscribe_folder(client.current_folder.name)
client.append_message(client.current_folder.name, msg)

Estabelecendo MultiConexão ao Executar Operações em Lote

Aspose.Email torna possível configurar o cliente para estabelecer múltiplas conexões simultâneas com o servidor IMAP. Isso não necessariamente aumenta o desempenho, mas é uma solução confiável para operações concorrentes. Isso é particularmente útil se o cliente precisar executar várias tarefas ao mesmo tempo, como buscar diferentes pastas de e-mail, sincronizar grandes quantidades de dados ou processar várias mensagens simultaneamente.

O trecho de código abaixo mostra como estabelecer várias conexões com o servidor IMAP enquanto faz o upload de uma coleção de mensagens de e-mail usando o método ‘append_messages’ da classe ImapClient:

import aspose.email as ae

client = ae.clients.imap.ImapClient("imap.domain.com", 993, "user@domain.com", "pwd", ae.clients.SecurityOptions.SSL_IMPLICIT)

client.connections_quantity = 5
client.use_multi_connection = ae.clients.MultiConnectionMode.ENABLE
client.append_messages(messages)

Mover Mensagens para Outra Pasta de Caixa de Correio

Aspose.Email para .NET permite mover mensagens de uma pasta de caixa de correio para outra usando a API ImapClient. O método MoveMessage usa o id único da mensagem e o nome da pasta de destino para mover uma mensagem para a pasta de destino. O seguinte trecho de código mostra como mover mensagens para outra pasta de caixa de correio.

For complete examples and data files, please go to https://github.com/aspose-email/aspose-email-python-dotnet
with ImapClient("imap.gmail.com", 993, "username", "password") as client:
client.select_folder("Inbox")
folderName = "N1Renamed"
#Append a new Message to Inbox
msg = MailMessage("user@domain1.com", "user@domain2.com", "subject", "message")
msgId = client.append_message( msg)
#List messages from Inbox
msgsCollection = client.list_messages()
print("Total Messages in Inbox: " + str(len(msgsCollection)))
#Move message to another folder
client.move_message(msgId, folderName)
#List messages from Inbox
msgsCollection = client.list_messages()
print("Total Messages in Inbox: " + str(len(msgsCollection)))

Copiar Mensagens para Outra Pasta de Caixa de Correio

A API Aspose.Email fornece a capacidade de copiar mensagens de uma pasta de caixa de correio para outra. Permite copiar uma única mensagem, bem como várias mensagens usando os métodos CopyMessage e CopyMessages. O método CopyMessages oferece a capacidade de copiar várias mensagens da pasta de origem de uma caixa de correio para a pasta de destino da caixa de correio. O seguinte trecho de código mostra como copiar mensagens para outra pasta de caixa de correio.

For complete examples and data files, please go to https://github.com/aspose-email/aspose-email-python-dotnet
with ImapClient("imap.gmail.com", 993, "username", "password") as client:
client.select_folder("Inbox")
folderName = "MovedMessagesToFolder"
#List messages from Inbox to verify that messages have been copied
msgsCollection = client.list_messages()
print("Total Messages in Inbox before appending: " + str(len(msgsCollection)))
#Append 2 new Messages to Inbox
msg = MailMessage("user@domain1.com", "user@domain2.com", "Message1TobeMoved", "message")
msgId1 = client.append_message(msg)
msg2 = MailMessage("user@domain1.com", "user@domain2.com", "Message1TobeMoved", "message")
msgId2 = client.append_message(msg2)
#List messages from Inbox to verify that messages have been copied
msgsCollection = client.list_messages()
print("Total Messages in Inbox after appending: " + str(len(msgsCollection)))
msgsIds = []
msgsIds.append(msgId1)
msgsIds.append(msgId2)
#Copy message to another folder
client.copy_messages(msgsIds, folderName)

Trabalhando com Pastas de Caixa de Correio de Uso Especial

As caixas de correio de uso especial são pastas pré-designadas dentro de um sistema de e-mail usadas para tipos específicos de mensagens, como Enviadas, Rascunhos, Lixo, Lixeira e Arquivo. A biblioteca Aspose.Email permite o acesso a essas caixas de correio, atribuindo atributos associados a seus papéis e propósitos ao cliente. Os clientes, então, podem descobrir e apresentar automaticamente essas pastas de acordo com a necessidade, sem intervenção do usuário.

O seguinte trecho de código mostra como consultar informações sobre as caixas de correio especiais importantes (entrada, rascunho, lixo, enviado e lixeira) usando as propriedades da classe ImapMailBoxInfo, e imprimir essas informações:

import aspose.email as ae

client = ae.clients.imap.ImapClient("imap.domain.com", 993, "user@domain.com", "pwd", ae.clients.SecurityOptions.SSL_IMPLICIT)

mailboxInfo = client.mailbox_info
print(mailboxInfo.inbox)
print(mailboxInfo.draft_messages)
print(mailboxInfo.junk_messages)
print(mailboxInfo.sent_messages)
print(mailboxInfo.trash)