Microsoft Exchange Server é uma plataforma de colaboração amplamente utilizada que fornece e-mail, gerenciamento de contatos, calendário e outros serviços. No post anterior, mostramos como acessar e ler e-mails do MS Exchange Server programaticamente em um aplicativo .NET. No entanto, você também pode precisar copiar emails de uma pasta para outra no Exchange Server. Para conseguir isso, este artigo mostra como mover emails para uma pasta específica no MS Exchange Server em C# .NET.
- API .NET para mover emails no Microsoft Exchange Server
- Mover e-mail existente para uma pasta no MS Exchange Server
- Mover novo e-mail para uma pasta no MS Exchange Server
API C# .NET para mover emails no Microsoft Exchange Server
Para mover os e-mails no MS Exchange Server, usaremos Aspose.Email for .NET. A API fornece maneiras simples de se conectar e trabalhar com o MS Exchange Server. Você pode instalá-lo via NuGet ou download sua DLL.
PM> Install-Package Aspose.Email
Mover e-mail para uma pasta no MS Exchange Server em C#
A seguir estão as etapas para mover emails para uma pasta específica no MS Exchange Server em C#.
- Primeiro, inicialize o objeto IEWSClient usando nome de usuário, senha, domínio e URI.
- Em seguida, obtenha a lista de mensagens de email em um objeto ExchangeMessageInfoCollection usando o método IEWSClient.ListMessages(IEWSClient.MailboxInfo.InboxUri).
- Depois disso, percorra cada mensagem ExchangeMessageInfo e filtre a(s) necessária(s).
- Em seguida, obtenha o URI da mensagem a ser movida usando a propriedade ExchangeMessageInfo.UniqueUri.
- Finalmente, mova a mensagem de email usando o método IEWSClient.CopyItem(string URI, IEWSClient.MailboxInfo.DeletedItemsUri).
O exemplo de código a seguir mostra como mover um email para uma pasta no MS Exchange Server em C# .NET.
try
{
// Crie uma instância da classe EWSClient fornecendo credenciais
IEWSClient client = EWSClient.GetEWSClient("https://outlook.office365.com/ews/exchange.asmx", "testUser", "pwd", "domain");
// Chame o método ListMessages para listar as informações das mensagens da caixa de entrada
ExchangeMessageInfoCollection msgCollection = client.ListMessages(client.MailboxInfo.InboxUri);
// Percorra a coleção para obter o URI da mensagem
foreach (ExchangeMessageInfo msgInfo in msgCollection)
{
if (msgInfo.From.Address.Contains("jhon.vick"))
{
String strMessageURI = msgInfo.UniqueUri;
// Copiar para uma pasta específica
string newMessageUri = client.CopyItem(strMessageURI, client.MailboxInfo.DeletedItemsUri);
}
}
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
Mover novo e-mail para uma pasta no MS Exchange Server
Você também pode mover um e-mail recém-criado para uma pasta específica no MS Exchange Server. A seguir estão as etapas para realizar esta operação.
- Primeiro, inicialize o objeto IEWSClient usando nome de usuário, senha, domínio e URI.
- Em seguida, crie uma nova mensagem usando a classe MailMessage.
- Depois disso, obtenha o URI da mensagem de email retornado pelo método IEWSClient.AppendMessage(MailMessage).
- Finalmente, mova a mensagem de email usando o método IEWSClient.CopyItem(string URI, IEWSClient.MailboxInfo.OutboxUri).
O exemplo de código a seguir mostra como mover uma nova mensagem de email para uma pasta no MS Exchange Server.
try
{
// Crie uma instância da classe EWSClient fornecendo credenciais
IEWSClient client = EWSClient.GetEWSClient("https://outlook.office365.com/ews/exchange.asmx", "testUser", "pwd", "domain");
// Criar mensagem
MailMessage message = new MailMessage("from@domain.com", "to@domain.com", "EMAILNET-34997 - " + Guid.NewGuid().ToString(), "EMAILNET-34997 Exchange: Copy a message and get reference to the new Copy item");
// Obter URI da mensagem
string messageUri = client.AppendMessage(message);
// Copiar mensagem
string newMessageUri = client.CopyItem(messageUri, client.MailboxInfo.OutboxUri);
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
Obtenha uma licença de API gratuita
Você pode obter uma licença temporária gratuita para usar o Aspose.Email para .NET sem limitações de avaliação.
Conclusão
Neste artigo, você aprendeu como mover emails para uma pasta específica no Microsoft Exchange Server usando C#. Além disso, você viu como mover uma mensagem de email recém-criada para uma pasta específica no Exchange Server. Além disso, você pode explorar a documentação para ler mais sobre o Aspose.Email para .NET. Além disso, você pode fazer suas perguntas através do nosso fórum.