
Microsoft Exchange Server es una plataforma de colaboración ampliamente utilizada que proporciona correo electrónico, administración de contactos, calendario y otros servicios. En la publicación anterior, le mostramos cómo acceder y leer correos electrónicos de MS Exchange Server mediante programación en una aplicación .NET. Sin embargo, es posible que también deba copiar correos electrónicos de una carpeta a otra en Exchange Server. Para lograrlo, este artículo muestra cómo mover correos electrónicos a una carpeta particular en MS Exchange Server en C# .NET.
- .NET API para mover correos electrónicos en Microsoft Exchange Server
- Mover el correo electrónico existente a una carpeta en MS Exchange Server
- Mover nuevo correo electrónico a una carpeta en MS Exchange Server
C# .NET API para mover correos electrónicos en Microsoft Exchange Server
Para mover los correos electrónicos en MS Exchange Server, usaremos Aspose.Email for .NET. La API proporciona formas sencillas de conectarse y trabajar con MS Exchange Server. Puede instalarlo a través de NuGet o descargar su DLL.
PM> Install-Package Aspose.Email
Mover correo electrónico a una carpeta en MS Exchange Server en C#
Los siguientes son los pasos para mover correos electrónicos a una carpeta particular en MS Exchange Server en C#.
- Primero, inicialice el objeto IEWSClient usando nombre de usuario, contraseña, dominio y URI.
- Luego, obtenga una lista de mensajes de correo electrónico en un objeto ExchangeMessageInfoCollection usando el método IEWSClient.ListMessages(IEWSClient.MailboxInfo.InboxUri).
- Después de eso, recorra cada mensaje ExchangeMessageInfo y filtre los necesarios.
- Luego, obtenga el URI del mensaje que se moverá usando la propiedad ExchangeMessageInfo.UniqueUri.
- Finalmente, mueva el mensaje de correo electrónico usando el método IEWSClient.CopyItem(string URI, IEWSClient.MailboxInfo.DeletedItemsUri).
El siguiente ejemplo de código muestra cómo mover un correo electrónico a una carpeta en MS Exchange Server en C# .NET.
try
{
// Cree una instancia de la clase EWSClient proporcionando credenciales
IEWSClient client = EWSClient.GetEWSClient("https://outlook.office365.com/ews/exchange.asmx", "testUser", "pwd", "domain");
// Llame al método ListMessages para enumerar la información de los mensajes de la Bandeja de entrada
ExchangeMessageInfoCollection msgCollection = client.ListMessages(client.MailboxInfo.InboxUri);
// Recorra la colección para obtener el URI del mensaje
foreach (ExchangeMessageInfo msgInfo in msgCollection)
{
if (msgInfo.From.Address.Contains("jhon.vick"))
{
String strMessageURI = msgInfo.UniqueUri;
// Copiar a una carpeta en particular
string newMessageUri = client.CopyItem(strMessageURI, client.MailboxInfo.DeletedItemsUri);
}
}
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
Mover nuevo correo electrónico a una carpeta en MS Exchange Server
También puede mover un correo electrónico recién creado a una carpeta particular en MS Exchange Server. Los siguientes son los pasos para realizar esta operación.
- Primero, inicialice el objeto IEWSClient usando nombre de usuario, contraseña, dominio y URI.
- Luego, crea un nuevo mensaje usando la clase MailMessage.
- Después de eso, obtenga el URI del mensaje de correo electrónico devuelto por el método IEWSClient.AppendMessage(MailMessage).
- Finalmente, mueva el mensaje de correo electrónico usando el método IEWSClient.CopyItem(string URI, IEWSClient.MailboxInfo.OutboxUri).
El siguiente ejemplo de código muestra cómo mover un nuevo mensaje de correo electrónico a una carpeta en MS Exchange Server.
try
{
// Cree una instancia de la clase EWSClient proporcionando credenciales
IEWSClient client = EWSClient.GetEWSClient("https://outlook.office365.com/ews/exchange.asmx", "testUser", "pwd", "domain");
// Crear mensaje
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");
// Obtener mensaje URI
string messageUri = client.AppendMessage(message);
// Copiar mensaje
string newMessageUri = client.CopyItem(messageUri, client.MailboxInfo.OutboxUri);
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
Obtenga una licencia de API gratuita
Puede obtener una licencia temporal gratuita para usar Aspose.Email for .NET sin limitaciones de evaluación.
Conclusión
En este artículo, aprendió cómo mover correos electrónicos a una carpeta particular en Microsoft Exchange Server usando C#. Además, ha visto cómo mover un mensaje de correo electrónico recién creado a una carpeta específica en Exchange Server. Además, puede explorar la documentación para leer más sobre Aspose.Email for .NET. Además, puede hacer sus preguntas a través de nuestro foro.