Այս քայլ առ քայլ ձեռնարկում մենք կբացատրենք, թե ինչպես պահել էլփոստի հաղորդագրությունը սկավառակի վրա C#-ով: Էլփոստի հաղորդագրությունը կարող է պահպանվել որպես EML or MSG ֆայլի ձևաչափեր սկավառակի վրա: Մենք հաղորդագրություններ կստանանք Exchange էլփոստի տուփից, սակայն դուք կարող եք հաղորդագրություններ ստանալ նաև այլ փոստարկղերից և պահել սկավառակի վրա:
C#-ով էլփոստի հաղորդագրությունը սկավառակի վրա պահելու քայլեր
- Ստացեք Aspose.Email for .NET փաթեթը NuGet.org-ից
- Ներառեք Aspose.Email.Clients.Exchange և Aspose.Email.Clients.Exchange.WebService անունների տարածքները
- Սահմանել լիցենզիա SetLicense մեթոդի օգնությամբ
- Տրամադրել Exchange Server հաշվի տեղեկությունները
- Ստեղծեք NetworkCredential դասի օբյեկտ
- Ստեղծեք EWSClient դասի նոր Exchange հաճախորդի օբյեկտ
- Անցեք փոստարկղից կարդացված բոլոր էլ. հաղորդագրությունները
- Պահպանեք յուրաքանչյուր առանձին էլփոստի հաղորդագրություն 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 ձևաչափեր: Խնդրում ենք նկատի ունենալ, որ այս կոդում մենք վերցնում ենք բոլոր հաղորդագրությունները և պահում դրանք առանձին ֆայլերում: Այնուամենայնիվ, եթե ձեր մուտքի արկղը շատ հաղորդագրություններ ունի, ապա դուք պետք է համապատասխանաբար փոփոխեք մոտեցումը: