Tạo và Lưu Tập tin Outlook
Aspose.Email hỗ trợ tạo các tệp Outlook message (MSG). Bài viết này giải thích cách:
- Tạo và Lưu Tin nhắn Outlook
- Tạo Tệp MSG với Đính kèm
- Tạo Tệp MSG với Thân RTF
- Lưu Tin nhắn ở Trạng thái Bản nháp
Tạo và Lưu Tin nhắn Outlook
Cái MailMessage lớp có Save() phương thức có thể lưu các tệp Outlook MSG vào đĩa hoặc stream. Các đoạn mã dưới đây tạo một thể hiện của MailMessage lớp, thiết lập các thuộc tính như from, to, subject và body. Phương thức Save() phương thức nhận tên tệp làm đối số. Ngoài ra, các Tin nhắn Outlook có thể được tạo với một phần thân RTF nén sử dụng MapiConversionOptions.
- Tạo một thể hiện mới của MailMessage lớp và thiết lập các thuộc tính From, To, Subject và Body.
- Gọi MapiMessage lớp FromMailMessage phương thức nhận đối tượng của MailMessage kiểu. Phương thức FromMailMessage phương thức chuyển đổi MailMessage vào một MapiMessage (MSG).
- Gọi MapiMessage.Save() phương thức để lưu tệp MSG.
Viết đoạn mã sau trong sự kiện click của nút điều khiển trong ứng dụng Windows.
Tạo Tệp MSG với Đính kèm
Trong ví dụ trên, chúng tôi đã tạo một tệp MSG đơn giản. Aspose.Email cũng hỗ trợ lưu các tệp tin nhắn kèm đính kèm. Tất cả những gì bạn cần làm là thêm các đính kèm vào MailMessage đối tượng. Thêm đính kèm bằng cách gọi phương thức Add() trên MailMessage.Attachments bộ sưu tập. Thêm một listbox vào form tạo ở trên và thêm hai nút, một cho việc thêm và một cho việc xóa đính kèm. Ứng dụng thêm các ứng dụng hoạt động như sau:
- Khi nút Add Attachment được nhấn, một Open File Dialog sẽ được hiển thị để giúp người dùng duyệt và chọn tệp đính kèm.
- Khi một tệp đã được chọn, đường dẫn đầy đủ sẽ được thêm vào danh sách.
- Khi tệp MSG được tạo, các đường dẫn đính kèm được lấy từ danh sách và thêm vào MailMessage.Attachments bộ sưu tập.
Viết đoạn mã sau trong sự kiện nhấp nút Add Attachment.
Khi nút Remove Attachment được nhấn, xóa các mục đã chọn khỏi listbox. Viết đoạn mã sau trong sự kiện nhấp nút Remove Attachment.
Thêm mã cho việc thêm đính kèm vào MailMessage đối tượng. Mã cuối cùng cho hàm Write Msg được viết như dưới đây.
Tạo Tệp MSG với Nội dung RTF
Bạn cũng có thể tạo các tệp Outlook Message (MSG) với phần thân văn bản định dạng (RTF) bằng Aspose.Email. Phần thân RTF hỗ trợ định dạng văn bản. Tạo một bằng cách thiết lập MailMessage.HtmlBody thuộc tính. Khi bạn chuyển đổi một MailMessage đối tượng thành một MapiMessage trong trường hợp này, phần thân HTML được chuyển thành RTF. Cách này giúp định dạng của phần thân email được bảo tồn.
Ví dụ sau tạo một tệp MSG với phần thân RTF. Có một tiêu đề, định dạng in đậm và gạch dưới được áp dụng trong phần thân HTML. Định dạng này được giữ lại khi HTML được chuyển sang RTF.
Nén RTF cho Phần Thân Tin Nhắn MAPI
NOTE: Quá trình nén có thể làm chậm hiệu suất khi tạo tin nhắn. Bằng cách hiểu thực tế này và cấu hình cờ nén dựa trên các yêu cầu cụ thể và sự cân bằng giữa kích thước tệp và hiệu suất, các nhà phát triển có thể quản lý hiệu quả việc tạo các tệp MSG và PST khi xử lý tin nhắn email.
Nén RTF nhằm giảm kích thước của một tin nhắn cũng như các tệp PST (Personal Storage Table) kết quả mà Microsoft Outlook sử dụng để lưu trữ tin nhắn email và các dữ liệu khác. Bằng cách sử dụng nén RTF khi cấu hình phần thân tin nhắn, các nhà phát triển có thể giảm lượng bộ nhớ cần thiết để lưu trữ tin nhắn email hoặc tối ưu băng thông mạng khi truyền tin nhắn.
Vì mục đích này, đã được thiết kế hai phương thức quá tải:
-
MapiMessageItemBase.SetBodyContent(string content, BodyContentType contentType, bool compression): Phương thức này cho phép bạn đặt nội dung thân tin nhắn bằng chuỗi nội dung đã chỉ định và xác định loại nội dung thân (ví dụ: văn bản thuần, HTML, v.v.). Tham số compression tùy chọn là một giá trị chỉ định liệu nội dung có nên được nén bằng nén RTF hay không. Nếu tham số compression là true, nội dung sẽ được nén, dẫn đến kích thước tin nhắn nhỏ hơn.
-
MapiMessageItemBase.SetBodyRtf(string content, bool compression): Phương thức này đặc biệt đặt nội dung của thân tin nhắn ở định dạng RTF. Tham số content là một chuỗi đại diện cho nội dung RTF sẽ được đặt làm thân tin nhắn. Giống như phương thức trước, tham số compression quyết định liệu có áp dụng nén RTF cho nội dung hay không. Nếu compression là true, nội dung RTF sẽ được nén để giảm kích thước.
Mẫu mã sau đây cho thấy cách đặt thân html và giữ nó được nén:
var msg = new MapiMessage("from@doamin.com", "to@domain.com", "subject", "body");
// set the html body and keep it compressed
// this will reduce the message size
msg.SetBodyContent(htmlBody, BodyContentType.Html, true);
Cũng có một MapiConversionOptions.UseBodyCompression thuộc tính. Khi thuộc tính này được bật, nén thân RTF sẽ được áp dụng trong quá trình chuyển đổi MailMessage sang MapiMessage, dẫn đến kích thước tệp MSG nhỏ hơn. Nó được hiển thị trong mẫu mã dưới đây:
var message = MailMessage.Load(fileName);
var options = new MapiConversionOptions();
options.UseBodyCompression = true;
var msg = MapiMessage.FromMailMessage(message, options);
Lưu Tin nhắn ở Trạng thái Bản nháp
Email được lưu dưới dạng bản nháp khi người dùng đã bắt đầu chỉnh sửa nhưng muốn quay lại để hoàn thành sau. Aspose.Email hỗ trợ lưu tin nhắn email ở trạng thái bản nháp bằng cách thiết lập cờ tin nhắn. Dưới đây là đoạn mã mẫu để lưu một tin nhắn email Outlook (MSG) dưới dạng bản nháp.