Jak uložit e-mailovou zprávu na disk v C#

V tomto tutoriálu krok za krokem vysvětlíme, jak uložit e-mailovou zprávu na disk v C#. E-mailovou zprávu lze uložit jako soubor ve formátech EML or MSG na disk. Budeme dostávat zprávy z e-mailové schránky Exchange, ale můžete přijímat zprávy i z jiných poštovních schránek a ukládat je na disk.

Kroky k uložení e-mailové zprávy na disk v C#

  1. Získejte balíček Aspose.Email for .NET z NuGet.org
  2. Zahrňte jmenné prostory Aspose.Email.Clients.Exchange a Aspose.Email.Clients.Exchange.WebService
  3. Nastavte licenci pomocí metody SetLicense
  4. Poskytněte informace o účtu Exchange Server
  5. Vytvořte objekt třídy NetworkCredential
  6. Vytvořte nový objekt klienta Exchange třídy EWSClient
  7. Projděte všechny e-mailové zprávy přečtené z poštovní schránky
  8. Uložte každou jednotlivou e-mailovou zprávu na EML or MSG file formats

Pomocí výše uvedených jednoduchých kroků můžete uložit e-mailovou zprávu do EML v kódu C# na disk. V našem předchozím tématu jsme vysvětlili jak poslat email v C# pomocí serveru Gmail SMTP. V tomto tématu však k načtení e-mailů a jejich uložení na disk místo toho používáme server Exchange.

Kód pro uložení e-mailové zprávy na disk v 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);
}
}
}
}

Ve výše uvedeném kódu ukládáme e-mailové zprávy ve formátech .eml a .msg. Upozorňujeme, že v tomto kódu načítáme všechny zprávy a ukládáme je jednu po druhé do samostatných souborů. Pokud však vaše doručená pošta obsahuje mnoho zpráv, musíte odpovídajícím způsobem upravit přístup.

 Čeština