Cách lưu thư điện tử vào đĩa trong C#

Trong hướng dẫn từng bước này, chúng tôi sẽ giải thích cách lưu email vào đĩa trong C#. Thông báo email có thể được lưu ở định dạng tệp EML or MSG trên đĩa. Chúng ta sẽ nhận thư từ hộp thư Exchange, tuy nhiên bạn cũng có thể nhận thư từ các hộp thư khác và lưu vào đĩa.

Các bước để lưu thư điện tử vào đĩa trong C#

  1. Nhận gói Aspose.Email for .NET từ NuGet.org
  2. Bao gồm không gian tên Aspose.Email.Clients.ExchangeAspose.Email.Clients.Exchange.WebService
  3. Đặt giấy phép với sự trợ giúp của phương pháp SetLicense
  4. Cung cấp thông tin tài khoản Exchange Server
  5. Tạo một đối tượng của lớp NetworkCredential
  6. Tạo đối tượng máy khách Exchange mới của Lớp EWSClient
  7. Lặp lại tất cả các email đã đọc từ hộp thư
  8. Lưu từng email riêng lẻ vào EML or MSG file formats

Bằng cách làm theo các bước đơn giản ở trên, bạn có thể lưu email vào EML bằng mã C# trên đĩa. Trong chủ đề trước, chúng tôi đã giải thích cách gửi email trong C# bằng cách sử dụng máy chủ Gmail SMTP. Tuy nhiên, trong chủ đề này, chúng tôi đang sử dụng máy chủ Exchange để tìm nạp email rồi lưu chúng vào đĩa.

Mã để lưu thư email vào đĩa trong 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);
}
}
}
}

Trong đoạn mã trên, chúng ta đang lưu email dưới định dạng .eml và .msg. Xin lưu ý rằng trong mã này, chúng tôi đang tìm nạp tất cả thư và lưu từng thư trong các tệp riêng biệt. Tuy nhiên, nếu hộp thư đến của bạn có nhiều thư thì bạn cần sửa đổi cách tiếp cận cho phù hợp.

 Tiếng Việt