
Microsoft Exchange Server est une plate-forme de collaboration largement utilisée qui fournit des services de messagerie, de gestion des contacts, de calendrier et d’autres services. Dans le post précédent, nous vous avons montré comment accéder et lire les e-mails de MS Exchange Server par programmation dans une application .NET. Cependant, vous devrez peut-être également copier des e-mails d’un dossier à un autre sur Exchange Server. Pour y parvenir, cet article montre comment déplacer des e-mails vers un dossier particulier sur MS Exchange Server en C# .NET.
- API .NET pour déplacer des e-mails sur Microsoft Exchange Server
- Déplacer les e-mails existants vers un dossier sur MS Exchange Server
- Déplacer un nouvel e-mail vers un dossier sur MS Exchange Server
API C# .NET pour déplacer des e-mails sur Microsoft Exchange Server
Pour déplacer les e-mails sur MS Exchange Server, nous utiliserons Aspose.Email for .NET. L’API fournit des moyens simples de se connecter et de travailler avec MS Exchange Server. Vous pouvez l’installer via NuGet ou télécharger sa DLL.
PM> Install-Package Aspose.Email
Déplacer les e-mails vers un dossier sur MS Exchange Server en C#
Voici les étapes pour déplacer les e-mails vers un dossier particulier sur MS Exchange Server en C#.
- Tout d’abord, initialisez l’objet IEWSClient en utilisant le nom d’utilisateur, le mot de passe, le domaine et l’URI.
- Ensuite, obtenez la liste des e-mails dans un objet ExchangeMessageInfoCollection à l’aide de la méthode IEWSClient.ListMessages(IEWSClient.MailboxInfo.InboxUri).
- Après cela, parcourez chaque message ExchangeMessageInfo et filtrez le ou les messages requis.
- Ensuite, obtenez l’URI du message à déplacer à l’aide de la propriété ExchangeMessageInfo.UniqueUri.
- Enfin, déplacez le message électronique à l’aide de la méthode IEWSClient.CopyItem(string URI, IEWSClient.MailboxInfo.DeletedItemsUri).
L’exemple de code suivant montre comment déplacer un e-mail vers un dossier sur MS Exchange Server en C# .NET.
try
{
// Créer une instance de la classe EWSClient en donnant des informations d'identification
IEWSClient client = EWSClient.GetEWSClient("https://outlook.office365.com/ews/exchange.asmx", "testUser", "pwd", "domain");
// Appelez la méthode ListMessages pour répertorier les informations sur les messages de la boîte de réception
ExchangeMessageInfoCollection msgCollection = client.ListMessages(client.MailboxInfo.InboxUri);
// Parcourez la collection pour obtenir l'URI du message
foreach (ExchangeMessageInfo msgInfo in msgCollection)
{
if (msgInfo.From.Address.Contains("jhon.vick"))
{
String strMessageURI = msgInfo.UniqueUri;
// Copier dans un dossier particulier
string newMessageUri = client.CopyItem(strMessageURI, client.MailboxInfo.DeletedItemsUri);
}
}
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
Déplacer un nouvel e-mail vers un dossier sur MS Exchange Server
Vous pouvez également déplacer un e-mail nouvellement créé vers un dossier particulier dans MS Exchange Server. Voici les étapes pour effectuer cette opération.
- Tout d’abord, initialisez l’objet IEWSClient en utilisant le nom d’utilisateur, le mot de passe, le domaine et l’URI.
- Ensuite, créez un nouveau message en utilisant la classe MailMessage.
- Après cela, obtenez l’URI du message électronique renvoyé par la méthode IEWSClient.AppendMessage(MailMessage).
- Enfin, déplacez le message électronique à l’aide de la méthode IEWSClient.CopyItem(string URI, IEWSClient.MailboxInfo.OutboxUri).
L’exemple de code suivant montre comment déplacer un nouveau message électronique vers un dossier dans MS Exchange Server.
try
{
// Créer une instance de la classe EWSClient en donnant des informations d'identification
IEWSClient client = EWSClient.GetEWSClient("https://outlook.office365.com/ews/exchange.asmx", "testUser", "pwd", "domain");
// Créer un message
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");
// Obtenir l'URI du message
string messageUri = client.AppendMessage(message);
// Copier le message
string newMessageUri = client.CopyItem(messageUri, client.MailboxInfo.OutboxUri);
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
Obtenez une licence API gratuite
Vous pouvez obtenir une licence temporaire gratuite pour utiliser Aspose.Email for .NET sans limitation d’évaluation.
Conclusion
Dans cet article, vous avez appris à déplacer des e-mails vers un dossier particulier dans Microsoft Exchange Server à l’aide de C#. De plus, vous avez vu comment déplacer un message électronique nouvellement créé vers un dossier spécifique dans Exchange Server. En outre, vous pouvez explorer la documentation pour en savoir plus sur Aspose.Email for .NET. Vous pouvez également poser vos questions via notre forum.