E-mail üzenet mentése lemezre C#-ban

Ebben a lépésről lépésre bemutatott oktatóanyagban elmagyarázzuk, hogyan lehet e-mail üzenetet lemezre menteni C# nyelven. Az e-mail üzenet EML or MSG fájlformátumban menthető a lemezre. Az Exchange e-mail fiókjából kapunk üzeneteket, de más postafiókokból is kaphat üzeneteket, és lemezre mentheti.

Az e-mail üzenet lemezre mentésének lépései C#-ban

  1. Szerezze be a Aspose.Email for .NET csomagot a NuGet.org webhelyről
  2. Tartalmazza a Aspose.Email.Clients.Exchange és a Aspose.Email.Clients.Exchange.WebService névtereket
  3. Állítsa be a licencet a SetLicense metódus segítségével
  4. Adja meg az Exchange Server-fiók adatait
  5. Hozzon létre egy NetworkCredential osztály objektumot
  6. Hozzon létre egy új Exchange-kliens objektumot a(z) EWSClient osztályhoz
  7. Lapozzon végig a postafiókból olvasott összes e-mailen
  8. Minden egyes e-mail üzenet mentése ide: EML or MSG file formats

A fenti egyszerű lépéseket követve elmentheti az e-mail üzenetet EML-be C# kódban a lemezen. Előző témánkban a Gmail SMTP-szerverének használatával magyaráztuk a hogyan kell e-mailt küldeni C#-ban funkciót. Ebben a témakörben azonban az Exchange szervert használjuk az e-mailek lekérésére, majd lemezre mentésére.

Kód az e-mail üzenet lemezre mentéséhez C#-ban

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);
}
}
}
}

A fenti kódban .eml és .msg formátumban mentjük az e-mail üzeneteket. Felhívjuk figyelmét, hogy ebben a kódban az összes üzenetet lekérjük, és egyenként külön fájlokban mentjük. Ha azonban a beérkezett üzenetek mappájában sok üzenet van, akkor ennek megfelelően módosítania kell a megközelítést.

 Magyar