نحوه ذخیره پیام ایمیل در دیسک در سی شارپ

در این آموزش گام به گام، نحوه ذخیره پیام ایمیل در دیسک در سی شارپ را توضیح خواهیم داد. پیام ایمیل را می توان به عنوان فرمت های فایل EML or MSG روی دیسک ذخیره کرد. ما پیام‌هایی را از صندوق ایمیل Exchange دریافت می‌کنیم، اما می‌توانید پیام‌ها را از صندوق‌های پست دیگر نیز دریافت کنید و در دیسک ذخیره کنید.

مراحل ذخیره پیام ایمیل در دیسک در سی شارپ

  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# روی دیسک ذخیره کنید. در مبحث قبلی، نحوه ارسال ایمیل در سی شارپ را با استفاده از سرور SMTP Gmail توضیح دادیم. با این حال، در این مبحث، به جای آن از سرور Exchange برای واکشی ایمیل‌ها و سپس ذخیره آن‌ها در دیسک استفاده می‌کنیم.

کد ذخیره پیام ایمیل در دیسک در سی شارپ

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 ذخیره می‌کنیم. لطفاً توجه داشته باشید که در این کد، ما همه پیام ها را واکشی می کنیم و آنها را یکی یکی در فایل های جداگانه ذخیره می کنیم. با این حال، اگر صندوق ورودی شما پیام های زیادی دارد، باید رویکرد را بر این اساس تغییر دهید.

 فارسی