Kaip išsaugoti el. pašto pranešimą diske C#

Šioje žingsnis po žingsnio pamokoje paaiškinsime, kaip išsaugoti el. pašto pranešimą diske C#. Laišką diske galima išsaugoti kaip EML or MSG failo formatą. Gausime pranešimus iš “Exchange” el. pašto dėžutės, tačiau galite gauti pranešimus ir iš kitų pašto dėžučių ir išsaugoti juos diske.

Veiksmai, kaip išsaugoti el. pašto pranešimą diske C#

  1. Gaukite Aspose.Email for .NET paketą iš NuGet.org
  2. Įtraukite Aspose.Email.Clients.Exchange ir Aspose.Email.Clients.Exchange.WebService vardų erdves
  3. Nustatykite licenciją naudodami SetLicense metodą
  4. Pateikite Exchange Server paskyros informaciją
  5. Sukurkite NetworkCredential klasės objektą
  6. Sukurkite naują EWSClient klasės Exchange kliento objektą
  7. Peržiūrėkite visus el. laiškus, nuskaitytus iš pašto dėžutės
  8. Išsaugokite kiekvieną atskirą el. laišką EML or MSG file formats

Atlikdami aukščiau nurodytus paprastus veiksmus, galite įrašyti el. laišką į EML C# kodu diske. Ankstesnėje temoje paaiškinome kaip siųsti el. laišką C# naudodami Gmail SMTP serverį. Tačiau šioje temoje mes naudojame Exchange serverį, kad gautume el. laiškus ir išsaugotume juos diske.

Kodas, skirtas išsaugoti el. laišką į diską 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);
}
}
}
}

Aukščiau pateiktame kode el. laiškus išsaugome .eml ir .msg formatais. Atminkite, kad šiame kode gauname visus pranešimus ir išsaugome juos po vieną atskiruose failuose. Tačiau jei gautuosiuose yra daug pranešimų, turite atitinkamai pakeisti metodą.

 Latviski