Comment enregistrer un message électronique sur le disque en C#

Dans ce didacticiel étape par étape, nous expliquerons comment enregistrer un message électronique sur le disque en C#. Le message électronique peut être enregistré sous des formats de fichier EML or MSG sur le disque. Nous recevrons des messages de la boîte e-mail Exchange, mais vous pouvez également recevoir des messages d’autres boîtes e-mail et les enregistrer sur le disque.

Étapes pour enregistrer un message électronique sur le disque en C#

  1. Obtenez le package Aspose.Email for .NET de NuGet.org
  2. Inclure les espaces de noms Aspose.Email.Clients.Exchange et Aspose.Email.Clients.Exchange.WebService
  3. Définir la licence à l’aide de la méthode SetLicense
  4. Fournir des informations sur le compte Exchange Server
  5. Créer un objet de la classe NetworkCredential
  6. Créez un nouvel objet client Exchange de la classe EWSClient
  7. Parcourez tous les e-mails lus à partir de la boîte aux lettres
  8. Enregistrez chaque e-mail individuel dans EML or MSG file formats

En suivant les étapes simples ci-dessus, vous pouvez enregistrer un message électronique au format EML en code C# sur le disque. Dans notre sujet précédent, nous avons expliqué comment envoyer un email en C# l’utilisation du serveur SMTP Gmail. Cependant, dans cette rubrique, nous utilisons plutôt le serveur Exchange pour récupérer les e-mails, puis les enregistrer sur le disque.

Code pour enregistrer le message électronique sur le disque en C#

using System;
using System.Net;
//Add reference to Aspose.Email for .NET API
//Use following namespaces to save email message to disk
using Aspose.Email.Clients.Exchange;
using Aspose.Email.Clients.Exchange.WebService;
namespace SaveEmailMessageToDisk
{
class Program
{
static void Main(string[] args)
{
//Set license before saving email message to disk
Aspose.Email.License AsposeEmailLicense = new Aspose.Email.License();
AsposeEmailLicense.SetLicense(@"c:\asposelicense\license.lic");
//setup account information
const string MailBoxUri = "https://outlook.office365.com/ews/exchange.asmx";
const string Domain = @"";
const string Username = @"username@outlook.com";
const string Password = @"userpassword";
NetworkCredential CredentiaDetails =
new NetworkCredential(Username, Password, Domain);
//create email client
IEWSClient EmailClient = EWSClient.GetEWSClient(MailBoxUri, CredentiaDetails);
try
{
//get mail box
ExchangeMailboxInfo MailBoxInfo = EmailClient.GetMailboxInfo();
//get list of all messages from the mail box
ExchangeMessageInfoCollection MessagesCollection =
EmailClient.ListMessages(EmailClient.MailboxInfo.InboxUri);
//Loop through email messages
int MessageCount = 1;
foreach (ExchangeMessageInfo MessageInfo in MessagesCollection)
{
string strMessageURI = MessageInfo.UniqueUri;
//get message details
Console.WriteLine("Subject: " + MessageInfo.Subject);
Console.WriteLine("From: " + MessageInfo.From.ToString());
Console.WriteLine("To: " + MessageInfo.To.ToString());
Console.WriteLine("Message ID: " + MessageInfo.MessageId);
Console.WriteLine("Unique URI: " + MessageInfo.UniqueUri);
//save each message to disk
EmailClient.SaveMessage(strMessageURI, "Messsage_" + MessageCount + ".eml");
EmailClient.SaveMessage(strMessageURI, "Messsage_" + MessageCount + ".msg");
MessageCount++;
}
}
catch (Exception ex)
{
Console.WriteLine("Error: {0}", ex.Message);
}
}
}
}

Dans le code ci-dessus, nous enregistrons les messages électroniques aux formats .eml et .msg. Veuillez noter que dans ce code, nous récupérons tous les messages et les enregistrons un par un dans des fichiers séparés. Cependant, si votre boîte de réception contient beaucoup de messages, vous devez modifier l’approche en conséquence.

 Français