Create MIME messages using C#

Khi gửi một email, bạn có thể cần gửi nội dung đa phương tiện như hình ảnh, âm thanh và video. Đây là lúc tin nhắn MIME (Phần mở rộng Thư điện tử Đa mục đích) phát huy tác dụng. Trong bài viết này, chúng tôi sẽ khám phá cách tạo EML tin nhắn một cách lập trình trong C#. Đến cuối bài viết, bạn sẽ hiểu cách tạo các tin nhắn MIME, thêm hình ảnh vào nội dung HTML của email và lưu email ở định dạng EML.

.NET API để Tạo Tin nhắn MIME

Trước khi bạn tạo tin nhắn MIME đầu tiên, bước đầu tiên là cài đặt Aspose.Email cho .NET trong dự án của bạn. Đây là một thư viện mạnh mẽ cho các nhà phát triển C# cung cấp một bộ công cụ toàn diện để làm việc với các tin nhắn email, bao gồm khả năng tạo tin nhắn MIME một cách lập trình. Thư viện giúp các nhà phát triển dễ dàng thao tác với các khía cạnh khác nhau của tin nhắn MIME, chẳng hạn như tệp đính kèm, nội dung, tiêu đề, mã hóa và nhiều hơn nữa. Bạn có thể cài đặt thư viện qua NuGet hoặc tải xuống DLL của nó.

PM> Install-Package Aspose.Email

Tạo một Tệp EML từ Đầu

Khi API của bạn đã được cài đặt, đã đến lúc tạo eml đầu tiên từ đầu. Một trong những cách đơn giản nhất để làm điều này là sử dụng lớp MailMessage từ Aspose.Email. Lớp MailMessage cho phép bạn tạo một đối tượng tin nhắn email với các thuộc tính và phương thức khác nhau cho phép bạn thiết lập người gửi, người nhận, chủ đề, nội dung, tệp đính kèm, tiêu đề và các chi tiết khác của email của bạn.

Các bước sau đây và một đoạn mã sẽ giúp bạn tạo một EML từ đầu:

  • Tạo một đối tượng MailMessage mới bằng cách sử dụng bộ khởi tạo mặc định.
  • Thiết lập các thuộc tính của đối tượng MailMessage theo nhu cầu của bạn.
  • Lưu đối tượng MailMessage vào một tệp EML bằng cách sử dụng phương thức Save.

Phương thức Save của lớp MailMessage nhận hai tham số: đường dẫn tệp và tùy chọn lưu. Các tùy chọn lưu xác định định dạng của tệp đầu ra.

Thêm Hình ảnh vào Nội dung HTML

Để thực hiện chức năng này, bạn cần nhúng hình ảnh vào nội dung HTML. Bạn có thể sử dụng thẻ “img” để thực hiện điều này.

Đoạn mã sau đây cho thấy cách thêm hình ảnh vào nội dung HTML của một tin nhắn.

  • Nội dung HTML chứa một thẻ hình ảnh với thuộc tính nguồn được đặt thành cid:image1.
  • Lớp AlternateView được sử dụng để lấy một chế độ xem thay thế của nội dung tin nhắn chứa hình ảnh nhúng.
  • Lớp LinkedResource được sử dụng để đại diện cho hình ảnh nhúng và ID nội dung của nó được đặt thành image1.
  • Cuối cùng, chế độ xem thay thế được thêm vào bộ sưu tập chế độ xem thay thế của tin nhắn.

Tạo một Tệp EML từ một Tệp HTML

Một cách để làm điều này là bắt đầu với một tệp HTML và chuyển đổi nó thành EML. Điều này có thể hữu ích nếu bạn có một HTML mà bạn muốn gửi dưới dạng tin nhắn email. Để làm điều này, trước tiên chúng ta cần có nội dung HTML. Hãy gọi tệp này là content.html. Đây là một ví dụ về nó:

<!DOCTYPE html>
<html>
<head>
	<title>Email của tôi</title>
</head>
<body>
	<h1>Xin chào,</h1>
	<img src="logo.png" alt="Logo">
	<p>Đây là email đầu tiên của tôi được tạo từ HTML.</p>
</body>
</html>

Ngoài ra, bạn phải chuẩn bị trước tất cả các hình ảnh chứa trong HTML và chỉ định đúng đường dẫn đến chúng trong tệp HTML.

Bây giờ, chúng ta có thể dễ dàng tạo một MailMessage bằng cách thiết lập nội dung HTML từ content.html.

  • Đầu tiên, tạo một đối tượng HtmlLoadOptions mới.
  • Đặt một chuỗi chứa đường dẫn đến các hình ảnh trong PathToResources.
  • Đặt thuộc tính ShouldAddPlainTextView thành true nếu EML nên chứa AlternateView với văn bản thuần túy.
  • Tạo một đối tượng MailMessage bằng cách tải tệp HTML và truyền đối tượng HtmlLoadOptions làm tham số.
  • Thiết lập các thuộc tính tin nhắn bổ sung.
  • Cuối cùng, lưu đối tượng MailMessage vào một tệp EML bằng cách sử dụng phương thức Save.

Mẹo để Cải thiện Hiển thị của Tin nhắn HTML trong Outlook

Để xem tin nhắn HTML của bạn trong Outlook, bạn cần đảm bảo rằng mã của nó tương thích với bộ xử lý mã của Outlook, điều này khác với hầu hết các trình duyệt web. Một số vấn đề phổ biến có thể ảnh hưởng đến email HTML của bạn trong Outlook là:

  • Outlook không hỗ trợ một số thẻ và thuộc tính CSS, chẳng hạn như hình ảnh nền, lề, đệm, v.v. Bạn có thể cần sử dụng kiểu inline, bảng, hoặc các bình luận điều kiện để đạt được bố cục và định dạng mong muốn.
  • Outlook có thể thêm khoảng trống hoặc dòng thừa giữa các phần tử hoặc xóa một số phần tử hoàn toàn. Bạn có thể cần sử dụng khoảng trắng không bị ngắt, khoảng trắng không có độ rộng, hoặc các ô bảng trống để ngăn chặn điều này.
  • Outlook có thể thay đổi mã hóa hoặc tập ký tự của tệp HTML của bạn, điều này có thể khiến một số ký tự hiển thị không chính xác. Bạn có thể cần chỉ định mã hóa và tập ký tự trong đó bằng cách sử dụng thẻ meta.

Kết luận

Trong bài viết trên blog này, bạn đã học cách tạo tin nhắn MIME một cách lập trình trong C# bằng cách sử dụng Aspose.Email. Hướng dẫn từng bước và mẫu mã cho thấy cách tạo một tệp eml từ đầu và từ tệp HTML, thêm hình ảnh vào nội dung HTML của tin nhắn email, và hỗ trợ tất cả các điều trên với những mẹo hữu ích về cách cải thiện hiển thị của tin nhắn HTML của bạn trong Outlook.

  • Bạn có thể khám phá thêm về Aspose.Email cho .NET và thử nghiệm miễn phí.
  • Bạn cũng có thể kiểm tra thêm nhiều tính năng và chức năng của Aspose.Email trong tài liệu.
  • Câu hỏi của bạn rất được hoan nghênh trên diễn đàn.

Xem thêm