Gửi, Đọc và Sắp Xếp Tin Nhắn trên Máy Chủ Exchange
Truy xuất Thông Tin Hộp Thư Exchange bằng EWS
Aspose.Email cho phép bạn truy xuất chi tiết hộp thư từ Microsoft Exchange bằng cách sử dụng IEWSClient lớp. Bằng cách gọi GetMailboxInfo() phương thức, client trả về một ExchangeMailboxInfo đối tượng chứa các URI thư mục hữu ích như Mailbox, Inbox, Drafts và Sent Items.
Để kết nối tới máy chủ Exchange bằng Exchange Web Services (EWS), sử dụng IEWSClient lớp. Lớp này sử dụng EWS để kết nối và quản lý các mục trên máy chủ Exchange.
Đoạn mã sau minh họa cách lấy thông tin hộp thư bằng cách sử dụng Exchange Web Services.
Gửi tin nhắn Email qua EWS
Bạn có thể gửi email qua Exchange bằng cách gọi IEWSClient->Send() phương thức. Nó nhận một MailMessage đối tượng và gửi trực tiếp qua máy chủ bằng EWS.
Mẫu mã sau đây minh họa cách gửi một email HTML qua máy chủ Exchange bằng Exchange Web Services (EWS) với Aspose.Email cho C++. Nó cho thấy quy trình đầy đủ thiết lập kết nối tới Exchange, tạo mail message với người gửi, người nhận, tiêu đề và nội dung HTML, sau đó gửi tin nhắn bằng phương thức Send của client EWS.
Đọc Email từ Hộp Thư của Người Dùng Khác
Một số tài khoản trên máy chủ Exchange có quyền truy cập nhiều hộp thư, và một số người dùng có nhiều tài khoản email trên cùng một máy chủ Exchange. Trong cả hai trường hợp, người dùng có thể truy cập hộp thư của người khác bằng Aspose.Email. API cung cấp một cơ chế để truy cập thư mục và email từ các hộp thư khác nhau bằng IEWSClient lớp. Chức năng này có thể đạt được bằng cách sử dụng phiên bản overload của GetMailboxInfo() phương thức và cung cấp địa chỉ email người dùng làm tham số.
Đoạn mã mẫu sau cho bạn thấy cách đọc email bằng IEWSClient lớp.
Liệt kê Tin nhắn bằng EWS
Aspose.Email cho C++ cho phép bạn lấy siêu dữ liệu tin nhắn từ các hộp thư máy chủ Exchange thông qua IEWSClient. Sử dụng dựa trên EWS ListMessages API, bạn có thể liệt kê tin nhắn từ bất kỳ thư mục nào, duyệt siêu dữ liệu tin nhắn và thực hiện phân trang cho các hộp thư lớn.
Liệt kê Tin nhắn từ Hộp Thư Đến
Sử dụng ListMessages để lấy thông tin cơ bản của tin nhắn như tiêu đề, người gửi, người nhận và ID tin nhắn từ Hộp Thư Đến hoặc bất kỳ thư mục nào.
Đoạn mã mẫu sau minh họa cách liệt kê và hiển thị thông tin cơ bản cho tất cả các tin nhắn trong một máy chủ Exchange.
- Tạo một thể hiện của IEWSClient.
- Gọi ListMessages với URI thư mục mục tiêu.
- Duyệt qua ExchangeMessageInfoCollection.
Liệt kê Tin nhắn từ Bất kỳ Thư mục nào
ListMessages chấp nhận bất kỳ URI thư mục hợp lệ nào, cho phép bạn liệt kê các mục từ Thư mục Đã Xóa, Nháp, Đã Gửi, hoặc các thư mục tùy chỉnh. Sử dụng IEWSClient->get_MailboxInfo->xxxFolderUri thuộc tính để lấy URI của các thư mục khác nhau.
Đoạn mã mẫu sau minh họa cách truy cập các URI thư mục khác nhau trên máy chủ Exchange và lấy tin nhắn từ một thư mục cụ thể.
Phân trang trong danh sách Tin nhắn
Đối với các hộp thư lớn, sử dụng ListMessagesByPage để tải tin nhắn theo khối nhỏ hơn.
Đoạn mã mẫu sau minh họa cách thực hiện phân trang để lấy số lượng lớn tin nhắn từ Hộp Thư Đến của máy chủ Exchange.
- Đầu tiên, nó tạo nhiều tin nhắn thử nghiệm trên máy chủ.
- Sau đó, sử dụng ListMessagesByPage phương thức để lấy tin nhắn theo lô nhỏ hơn (5 tin nhắn mỗi trang trong trường hợp này), duyệt qua tất cả các trang cho đến khi trang cuối cùng được đạt tới.
- Cuối cùng, đoạn mã xác nhận rằng tất cả các tin nhắn đã được lấy thành công bằng cách đếm tổng số mục trên tất cả các trang.
Lấy Thông tin Loại Tin nhắn
Sử dụng ExchangeMessageInfo->MessageInfoType để xác định loại tin nhắn Exchange cơ bản (ví dụ: email, yêu cầu họp, v.v.).
Đoạn mã mẫu sau minh họa cách kết nối tới máy chủ Exchange và lấy thông tin loại tin nhắn từ thư mục Thư mục Đã Xóa.
Lưu Tin nhắn bằng Exchange Web Services (EWS)
Aspose.Email cho phép bạn lấy các tin nhắn từ một hộp thư máy chủ Exchange và lưu chúng ở nhiều định dạng, như EML, luồng bộ nhớ và MSG. Các ví dụ dưới đây minh họa cách lấy thông tin tin nhắn và lưu tin nhắn bằng IEWSClient API.
Lưu Tin nhắn dưới dạng Tệp EML
Để lưu tin nhắn hộp thư dưới dạng tệp EML:
- Tạo một IEWSClient đối tượng bằng thông tin xác thực hợp lệ.
- Gọi ListMessages() để lấy một ExchangeMessagesInfoCollection.
- Duyệt qua bộ sưu tập để truy cập URI duy nhất của mỗi tin nhắn.
- Gọi SaveMessage() để lưu mỗi tin nhắn vào đĩa ở định dạng EML.
Đoạn mã mẫu sau minh họa cách lưu các tin nhắn email từ Hộp Thư Đến của máy chủ Exchange dưới dạng các tệp EML riêng lẻ cục bộ bằng Aspose.Email cho C++.
Lưu Tin nhắn vào Luồng Bộ nhớ
Thay vì ghi ra đĩa, bạn có thể lưu tin nhắn vào luồng bộ nhớ—hữu ích cho việc lưu trữ email trong cơ sở dữ liệu hoặc xử lý chúng trong bộ nhớ.
Đoạn mã mẫu sau minh họa cách lưu các tin nhắn email từ Hộp Thư Đến của máy chủ Exchange vào luồng bộ nhớ.
Lưu tin nhắn ở định dạng MSG
Để lưu tin nhắn dưới dạng MSG:
- Lấy tin nhắn bằng cách sử dụng FetchMessage(), trả về một MailMessage.
- Gọi MailMessage::Save() với các tùy chọn lưu MSG.
Đoạn mã mẫu sau minh họa cách lấy và lưu các tin nhắn email từ Hộp Thư Đến của máy chủ Exchange dưới dạng tệp định dạng Outlook MSG.
Lấy Chi tiết Tin nhắn bằng URI Tin nhắn
Khi chỉ có URI duy nhất của tin nhắn, bạn vẫn có thể lấy toàn bộ ExchangeMessageInfo các đối tượng. Các IEWSClient::ListMessages() phiên bản tải trọng chấp nhận danh sách ID tin nhắn (URI) và trả về một ExchangeMessageInfoCollection. Sử dụng tính năng này khi bạn lưu hoặc nhận URI tin nhắn từ bên ngoài và cần tải siêu dữ liệu (tiêu đề, người gửi, kích thước, v.v.) mà không cần lấy toàn bộ tin nhắn.
Đoạn mã mẫu sau minh họa cách tạo nhiều tin nhắn email trên máy chủ Exchange và sau đó lấy thông tin tin nhắn của chúng bằng các định danh duy nhất.
Lấy Nội dung Tin nhắn Đầy đủ
ListMessages() trả về thông tin tóm tắt (tiêu đề, người gửi, ID). Để tải nội dung đầy đủ của tin nhắn — nội dung, tiêu đề, tệp đính kèm — sử dụng FetchMessage().
Đoạn mã mẫu sau minh họa cách lấy toàn bộ tin nhắn từ Hộp Thư Đến của máy chủ Exchange và trích xuất thông tin tệp đính kèm:
- Tạo một IEWSClient thể hiện.
- Gọi ListMessages() để lấy siêu dữ liệu tin nhắn cơ bản.
- Trích xuất UniqueUri của mỗi tin nhắn.
- Gọi FetchMessage() để lấy chi tiết đầy đủ của tin nhắn.
Lấy Kích thước Tin nhắn (Không Tải Toàn Bộ Tin nhắn)
Aspose.Email cung cấp thông tin kích thước tin nhắn mà không cần tải toàn bộ email, thông qua ExchangeMessageInfo::Size thuộc tính.
Điều này hữu ích cho:
- thống kê hộp thư
- tính toán hạn ngạch
- lọc các tin nhắn lớn trước khi tải xuống
Đoạn mã mẫu sau minh họa cách liệt kê và hiển thị siêu dữ liệu tin nhắn bao gồm kích thước từ Hộp Thư Đến của máy chủ Exchange.
Tải xuống Email từ Thư mục Công cộng Exchange
Thư mục công cộng Exchange cho phép lưu trữ các tin nhắn chung giữa các người dùng.
Aspose.Email IEWSClient cho phép bạn thực hiện các thao tác sau với các thư mục và tin nhắn được lưu trữ trong đó:
- Liệt kê thư mục công cộng
- Duyệt các thư mục con một cách đệ quy
- Tải xuống các tin nhắn và lưu chúng (ví dụ: dưới dạng tệp MSG)
Lưu ý: Yêu cầu Microsoft Exchange Server 2007 trở lên, vì các phiên bản cũ hơn không hỗ trợ EWS.
Đoạn mã mẫu sau minh họa cách tải xuống các tin nhắn từ tất cả các thư mục công cộng và các thư mục con của chúng trên máy chủ Exchange một cách đệ quy, và lưu chúng dưới dạng tệp Outlook MSG cục bộ.
Di chuyển Tin nhắn giữa các Thư mục Exchange
Bạn có thể di chuyển tin nhắn từ một thư mục Exchange sang thư mục khác bằng cách sử dụng IEWSClient::MoveItem phương thức. Nó yêu cầu:
- URI duy nhất của tin nhắn cần di chuyển.
- URI duy nhất của thư mục đích.
Đoạn mã mẫu sau minh họa cách lọc và di chuyển các email cụ thể từ Hộp Thư Đến của máy chủ Exchange tới thư mục khác dựa trên tiêu chí nội dung.
- Kết nối tới máy chủ Exchange bằng thông tin xác thực EWS.
- Lấy thông tin hộp thư (URI thư mục).
- Liệt kê tất cả các tin nhắn từ Hộp Thư Đến.
- Duyệt qua mỗi tin nhắn.
- Kiểm tra xem tiêu đề có chứa "process this message" hay không.
- Di chuyển các tin nhắn phù hợp vào thư mục Đã Xóa.
- Xuất xác nhận cho mỗi tin nhắn được di chuyển.
Xóa Tin nhắn khỏi Thư mục Exchange
Bạn có thể xóa các tin email từ một thư mục bằng sự trợ giúp của IEWSClient->DeleteMessage phương thức. Nó nhận URI duy nhất của tin nhắn làm tham số.
Đoạn mã mẫu sau minh họa cách lọc và xóa các email cụ thể từ Hộp Thư Đến của máy chủ Exchange dựa trên tiêu chí tiêu đề.
- Duyệt qua các tin nhắn trong Hộp Thư Đến.
- Xử lý tin nhắn dựa trên một số tiêu chí (trong ví dụ này, chúng tôi tìm một từ khóa trong tiêu đề tin nhắn).
- Xóa các tin nhắn phù hợp.
Sao chép Tin nhắn tới Thư mục Exchange Khác
Sử dụng IEWSClient::CopyItem để sao chép một tin nhắn vào thư mục khác. Phiên bản tải trọng trả về URI của bản sao mới tạo.
Đoạn mã mẫu sau minh họa cách tạo một tin nhắn email trên máy chủ Exchange và sao chép nó vào thư mục khác.