Come salvare un messaggio di posta elettronica su disco in C#

In questo tutorial passo dopo passo, spiegheremo come salvare il messaggio di posta elettronica su disco in C#. Il messaggio e-mail può essere salvato come formati di file EML or MSG sul disco. Riceveremo messaggi dalla casella di posta di Exchange, tuttavia puoi ricevere messaggi anche da altre caselle di posta e salvarli su disco.

Passaggi per salvare il messaggio e-mail su disco in C#

  1. Ottieni il pacchetto Aspose.Email for .NET da NuGet.org
  2. Includi Aspose.Email.Clients.Exchange e Aspose.Email.Clients.Exchange.WebService spazi dei nomi
  3. Imposta la licenza con l’aiuto del metodo SetLicense
  4. Fornire informazioni sull’account di Exchange Server
  5. Crea un oggetto della classe NetworkCredential
  6. Crea un nuovo oggetto client Exchange di EWSClient Class
  7. Passa in rassegna tutti i messaggi di posta elettronica letti dalla casella di posta
  8. Salva ogni singolo messaggio email in EML or MSG file formats

Seguendo i semplici passaggi precedenti, puoi salvare il messaggio di posta elettronica in EML nel codice C# sul disco. Nel nostro argomento precedente, abbiamo spiegato come inviare e-mail in C# utilizzando il server SMTP di Gmail. Tuttavia, in questo argomento, utilizziamo invece il server Exchange per recuperare le e-mail e salvarle su disco.

Codice per salvare il messaggio e-mail su disco in 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);
}
}
}
}

Nel codice sopra, salviamo i messaggi di posta elettronica nei formati .eml e .msg. Tieni presente che in questo codice stiamo recuperando tutti i messaggi e salvandoli uno per uno in file separati. Tuttavia, se la tua casella di posta contiene molti messaggi, devi modificare l’approccio di conseguenza.

 Italiano