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#
- Ottieni il pacchetto Aspose.Email for .NET da NuGet.org
- Includi Aspose.Email.Clients.Exchange e Aspose.Email.Clients.Exchange.WebService spazi dei nomi
- Imposta la licenza con l’aiuto del metodo SetLicense
- Fornire informazioni sull’account di Exchange Server
- Crea un oggetto della classe NetworkCredential
- Crea un nuovo oggetto client Exchange di EWSClient Class
- Passa in rassegna tutti i messaggi di posta elettronica letti dalla casella di posta
- 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.