Как да запазите имейл съобщение на диск в C#

В този урок стъпка по стъпка ще обясним как да запазите имейл съобщение на диск в C#. Имейл съобщението може да бъде запазено като EML or MSG файлов формат на диска. Ще получаваме съобщения от имейл кутията на Exchange, но можете да получавате съобщения и от други пощенски кутии и да ги запазвате на диск.

Стъпки за запазване на имейл съобщение на диск в C#

  1. Вземете Aspose.Email for .NET пакет от NuGet.org
  2. Включете пространства от имена Aspose.Email.Clients.Exchange и Aspose.Email.Clients.Exchange.WebService
  3. Задайте лиценз с помощта на метода SetLicense
  4. Предоставете информация за акаунта на Exchange Server
  5. Създайте обект от клас NetworkCredential
  6. Създайте нов клиентски обект на Exchange от клас EWSClient
  7. Прегледайте всички имейл съобщения, прочетени от пощенската кутия
  8. Запазете всяко отделно имейл съобщение в EML or MSG file formats

Следвайки горните прости стъпки, можете да запишете имейл съобщение в EML в C# код на диска. В предишната ни тема обяснихме как да изпратите имейл в C# с помощта на SMTP сървър на Gmail. В тази тема обаче използваме сървъра на Exchange, за да извлечем имейлите и след това да ги запазим на диск.

Код за запазване на имейл съобщение на диск в 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);
}
}
}
}

В горния код запазваме имейл съобщения като формати .eml и .msg. Моля, имайте предвид, че в този код ние извличаме всички съобщения и ги записваме едно по едно в отделни файлове. Ако обаче входящата ви кутия има много съобщения, тогава трябва да промените подхода съответно.

 Български