Ինչպես պահել էլփոստի հաղորդագրությունը սկավառակի վրա 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. Ստեղծեք EWSClient դասի նոր Exchange հաճախորդի օբյեկտ
  7. Անցեք փոստարկղից կարդացված բոլոր էլ. հաղորդագրությունները
  8. Պահպանեք յուրաքանչյուր առանձին էլփոստի հաղորդագրություն EML or MSG file formats-ում

Հետևելով վերը նշված պարզ քայլերին, կարող եք էլփոստի հաղորդագրությունը պահել EML-ում C# կոդով սկավառակի վրա: Մեր նախորդ թեմայում մենք բացատրեցինք ինչպես ուղարկել նամակ C#-ով-ը Gmail SMTP սերվերի միջոցով: Այնուամենայնիվ, այս թեմայում մենք դրա փոխարեն օգտագործում ենք 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 ձևաչափեր: Խնդրում ենք նկատի ունենալ, որ այս կոդում մենք վերցնում ենք բոլոր հաղորդագրությունները և պահում դրանք առանձին ֆայլերում: Այնուամենայնիվ, եթե ձեր մուտքի արկղը շատ հաղորդագրություններ ունի, ապա դուք պետք է համապատասխանաբար փոփոխեք մոտեցումը:

 Հայերեն