Lưu tệp đính kèm từ email bằng C#

Là nhà phát triển C#, bạn có thể dễ dàng trích xuất và lưu tệp đính kèm từ email theo chương trình. Trong bài viết này, bạn sẽ tìm hiểu cách lưu tệp đính kèm từ email bằng C#.

Các chủ đề sau được thảo luận/đề cập trong bài viết này:

API C# để lưu tệp đính kèm email

Để lưu tệp đính kèm từ tệp MSG, chúng tôi sẽ sử dụng GroupDocs.Viewer for .NET API. Đây là API trình xem tài liệu mạnh mẽ để kết xuất và hiển thị các định dạng tệp được sử dụng rộng rãi mà không cần cài đặt bất kỳ phần mềm bên ngoài nào. Nó cũng cho phép bạn xem nhanh các định dạng tệp được hỗ trợ phổ biến của Word, Excel, PowerPoint, Email Outlook, [Dự án] 12], PDF, HTMLXML.

Bạn có thể tải xuống DLL của API hoặc cài đặt nó bằng NuGet.

Install-Package GroupDocs.Viewer

Trích xuất và lưu tệp đính kèm từ email bằng C#

Bạn có thể trích xuất và lưu tệp đính kèm từ tệp MSG trong email theo chương trình bằng cách thực hiện theo các bước dưới đây:

  • Đầu tiên, tải tệp MSG bằng lớp Viewer.
  • Sau đó, gọi phương thức Viewer.GetAttachments() để lấy tất cả các tệp đính kèm của tệp MSG đã tải. Nhận kết quả dưới dạng tập hợp các tệp đính kèm.
  • Đối với mỗi tệp đính kèm trong bộ sưu tập, hãy lưu tệp đính kèm bằng cách gọi phương thức Viewer.SaveAttachment(). Truyền đối tượng đính kèm và đường dẫn tệp để lưu nó.

Mẫu mã sau đây cho biết cách trích xuất và lưu tệp đính kèm có trong tệp MSG trong email bằng C#.

string outputPath = @"C:\Files\Viewer\";

// Khởi tạo API và tải tệp MSG
Viewer viewer = new Viewer(@"C:\Files\Viewer\with_attachments.msg");

// Nhận tệp đính kèm
IList<Attachment> attachments = viewer.GetAttachments();

foreach (Attachment attachment in attachments)
{
    // Lưu tệp đính kèm
    string filePath = Path.Combine(outputPath, attachment.FileName);
    viewer.SaveAttachment(attachment, File.OpenWrite(filePath));
}
Trích xuất và lưu tệp đính kèm từ email bằng C#

Trích xuất và lưu tệp đính kèm từ email bằng C#.

Lưu tệp đính kèm dưới dạng PDF từ email bằng C#

Bạn có thể lưu tệp đính kèm email dưới dạng PDF theo chương trình bằng cách thực hiện theo các bước dưới đây:

  • Tạo một thể hiện của lớp Đính kèm với tên tệp và đường dẫn tệp đính kèm.
  • Khởi tạo một thể hiện của lớp MemoryStream.
  • Tải tệp MSG bằng lớp Trình xem.
  • Sau đó, gọi phương thức Viewer.SaveAttachment() và truyền đối tượng Attachment và MemoryStream làm tham số đầu vào. Nó sẽ trích xuất và lưu tệp đính kèm được chỉ định trong luồng bộ nhớ.
  • Bây giờ, hãy tải đối tượng MemoryStream bằng lớp Viewer.
  • Sau đó, tạo một phiên bản của lớp PdfViewOptions với đường dẫn tệp PDF đầu ra.
  • Cuối cùng, gọi phương thức Viewer.View() để lưu và xem tệp đính kèm dưới dạng PDF.

Mẫu mã sau đây cho biết cách lưu và xem tệp đính kèm dưới dạng PDF từ tệp MSG trong email bằng C#.

// Khởi tạo tệp đính kèm
Attachment attachment = new Attachment("attachment-word.doc", "attachment-word.doc");
MemoryStream attachmentStream = new MemoryStream();

// Khởi tạo API và tải tệp MSG
using (Viewer viewer = new Viewer(@"C:\Files\Viewer\with_attachments.msg"))
{
    // Lưu tệp đính kèm trong luồng
    viewer.SaveAttachment(attachment, attachmentStream);
}

// Khởi tạo API và tải luồng đính kèm
using (Viewer viewer = new Viewer(attachmentStream))
{
    // Xác định các tùy chọn xem PDF
    PdfViewOptions viewOptions = new PdfViewOptions("C:\\Files\\Viewer\\output.pdf");

    // Xem dưới dạng PDF
    viewer.View(viewOptions);
}
Save attachments as PDF from emails using C#.

Save attachments as PDF from emails using C#.

Nhận giấy phép miễn phí

Bạn có thể dùng thử API mà không bị giới hạn đánh giá bằng cách yêu cầu giấy phép tạm thời miễn phí.

Phần kết luận

Trong bài viết này, bạn đã học cách trích xuất và lưu các tệp đính kèm có trong tệp MSG trong email bằng C#. Hơn nữa, bạn đã thấy cách lưu một tệp đính kèm cụ thể dưới dạng PDF theo chương trình. Ngoài ra, bạn có thể tìm hiểu thêm về GroupDocs.Viewer cho .NET API bằng tài liệu. Trong trường hợp có bất kỳ sự mơ hồ nào, vui lòng liên hệ với chúng tôi trên diễn đàn.

Xem thêm