Tính Năng Tiện Ích - MailMessage
Mã Hoá và Giải Mã Tin Nhắn
Aspose.Email cung cấp khả năng Mã hoá và Giải mã tin nhắn Email. Chủ đề này chỉ ra cách tải một tin nhắn hiện có hoặc mới và mã hoá chúng bằng cách sử dụng MailMessage. Thuộc tính encrypt() và decrypt() các phương thức trả về đối tượng MailMessage cho các hiệu ứng đã áp dụng và cần được chú ý khi mã hoá/giải mã tin nhắn. Việc mã hoá và giải mã tin nhắn bao gồm các bước sau:
- Tạo tin nhắn mới hoặc tải một tin nhắn hiện có
- Mã hoá tin nhắn bằng tệp chứng chỉ
- Gửi tin nhắn hoặc lưu nó
- Giải mã tin nhắn khi cần
Đoạn mã dưới đây cho bạn cách mã hoá và giải mã tin nhắn.
Kiểm Tra Tin Nhắn Có Được Mã Hoá
Aspose.Email MailMessage lớp cho phép kiểm tra một tin nhắn có được mã hoá hay không. The isEncrypted thuộc tính của MailMessage cho phép kiểm tra điều này như được minh họa trong đoạn mã mẫu dưới đây.
Mã Hoá Tin Nhắn với X509Certificate
Aspose.Email cung cấp API để làm việc với Tin Nhắn Được Mã Hoá với X509Certificate:
MailMessage lớp có các phương thức sau để làm việc với mã hoá tin nhắn:
- public MailMessage attachSignature(X509Certificate2 certificate, boolean detached) - Tạo một tin nhắn đã ký.
- public MailMessage attachSignature(X509Certificate2 certificate) - Tạo một tin nhắn đã ký.
- public X509Certificate2[] checkSignatureCert() - Kiểm tra chữ ký của MailMessage hiện có.
- public MailMessage decrypt(X509Certificate2 certificate)
- public MailMessage encrypt(X509Certificate2 certificate)
- public MailMessage encrypt(X509Certificate2[] certificates)
Cấu Hình Tùy Chọn Locale cho Aspose.Email
Bạn có thể sử dụng LocaleOptions lớp trong trường hợp locale mặc định không nhận dạng được và đặt locale phù hợp nhất cho thư viện Aspose Email. Nó cung cấp các phương thức sau để thực hiện nhiệm vụ:
- getLocale() - Trả về Locale mặc định cho Aspose.Email.
- setLocale(Locale locale) và setLocale(String localeName) - Đặt locale mặc định cho Aspose.Email.
- clear() - Xóa locale mặc định cho Aspose.Email. Sẽ được sử dụng locale mặc định cho Java.
Đoạn mã mẫu dưới đây minh họa cách tải một tin nhắn email từ tệp bằng cách sử dụng các cài đặt locale đã chỉ định:
final Locale locale = new Locale("en", "DE");
Locale.setDefault(locale);
// set Locale for Aspose Email lib
LocaleOptions.setLocale("en-US");
// or
//LocaleOptions.setLocale(new Locale("en", "US"));
MailMessage.load("document.msg");
Đoạn mã này đảm bảo rằng ứng dụng và thư viện Aspose.Email sử dụng các locale được chỉ định để xử lý ngôn ngữ, quốc gia và quy ước văn hoá.
MailMessages chứa tệp đính kèm TNEF
Transport Neutral Encapsulation Format (TNEF) là định dạng tệp đính kèm email độc quyền được sử dụng bởi Microsoft Outlook và Microsoft Exchange Server. API Aspose.Email cho phép bạn đọc các email có tệp đính kèm TNEF và chỉnh sửa nội dung của chúng. Email sau đó có thể được lưu dưới dạng email thông thường hoặc cùng định dạng, giữ lại các tệp đính kèm TNEF. Bài viết này trình bày các mẫu mã khác nhau để làm việc với tin nhắn có tệp đính kèm TNEF.
Đọc Tin Nhắn Khi Giữ Các Tệp Đính Kèm TNEF
Đoạn mã dưới đây cho bạn cách đọc một tin nhắn bằng cách giữ lại các tệp đính kèm TNEF.
Cập Nhật Tài Nguyên trong Tệp Đính Kèm TNEF và Giữ Định Dạng TNEF
Đoạn mã dưới đây cho bạn cách cập nhật tài nguyên trong tệp đính kèm TNEF và giữ nguyên định dạng TNEF.
Thêm Tệp Đính Kèm Mới vào Tin Nhắn Chính chứa TNEF
Tạo TNEF EML từ MSG
Các tệp MSG của Outlook đôi khi chứa thông tin như bảng và kiểu văn bản có thể bị lỗi khi chuyển sang EML. Tạo tin nhắn TNEF từ các tệp MSG như vậy cho phép chúng ta giữ lại định dạng và thậm chí gửi các tin nhắn này qua các khách hàng email mà vẫn giữ định dạng.
Để tạo TNEF, có thể sử dụng đoạn mã mẫu dưới đây.
Phát Hiện Tin Nhắn Có Phải TNEF
Xử lý tin nhắn bị trả lại
Rất thường gặp khi một tin nhắn gửi đến người nhận có thể bị trả lại vì bất kỳ lý do nào, chẳng hạn như địa chỉ người nhận không hợp lệ. API Aspose.Email có khả năng xử lý tin nhắn như vậy để kiểm tra xem nó là email bị trả lại hay là tin nhắn email thông thường. The CheckBounced phương thức của MailMessage lớp trả về kết quả hợp lệ nếu email là một email trả lại.
Bài viết này trình bày cách sử dụng của BounceResult lớp cung cấp khả năng kiểm tra xem một tin nhắn có phải là email trả lại hay không. Nó còn cung cấp thông tin chi tiết về người nhận, hành động đã thực hiện và lý do thông báo.
Bỏ qua ngoại lệ
Thư viện cung cấp một ExceptionManager lớp để triển khai khả năng bỏ qua ngoại lệ vào chức năng ứng dụng của bạn. Đoạn mã dưới đây minh họa cách thiết lập callback để xử lý ngoại lệ:
ExceptionManager.setIgnoreExceptionsHandler( new IgnoreExceptionsCallback() {
//exception path: {Module}\{Method}\{Action}\{GUID}
//example: MailMessage\Load\DecodeTnefAttachment\64149867-679e-4645-9af0-d46566cae598
public boolean invoke(AsposeException ex, String path) {
//Ignore all exceptions on MailMessage.Load
return path.equals("MailMessage\\Load");
}
});
Hoặc sử dụng một phương án thay thế:
ExceptionManager.setIgnoreAll(true);
Ngoài ra, bạn có thể đặt callback cho nhật ký ngoại lệ bị bỏ qua:
ExceptionManager.setIgnoreExceptionsLogHandler( new IgnoreExceptionsLogCallback() {
public void invoke(String message) {
System.out.println("=== EXCEPTION IGNORED === " + message);
}
});
Người dùng sẽ được thông báo rằng ngoại lệ có thể được bỏ qua bằng một thông báo lỗi. Ví dụ:
Ngoại lệ trong tin nhắn:
AsposeArgumentException: properties should not be empty.
Nếu bạn muốn bỏ qua một ngoại lệ và muốn tiếp tục thì bạn có thể sử dụng:
ExceptionManager.getIgnoreList().add("MailMessage\\Load\\DecodeTnefAttachment\\64149867-679e-4645-9af0-d46566cae598")
Invalid TNEF Attachment will be interpreted as regular attachment.
Bộ phân tích Spam Bayes
Aspose.Email cung cấp tính năng lọc email bằng cách sử dụng bộ phân tích spam Bayes. Nó cung cấp SpamAnalyzer lớp cho mục đích này. Bài viết này trình bày cách đào tạo bộ lọc để phân biệt giữa email spam và email thông thường dựa trên cơ sở dữ liệu từ.
Lấy Preamble và Epilogue từ Tin nhắn EML
Trong định dạng MIME, preamble là đoạn văn bản xuất hiện sau các tiêu đề và trước ranh giới multipart đầu tiên. epilogue là đoạn văn bản xuất hiện sau ranh giới cuối cùng và trước khi kết thúc tin nhắn. Văn bản này thường không hiển thị cho người dùng trong các trình đọc mail, nhưng một số triển khai MIME có thể sử dụng nó để chèn ghi chú cho người nhận đọc tin nhắn bằng các chương trình không tuân thủ MIME.
Đoạn mã dưới đây cho thấy cách lấy preamble và epilogue từ một tin nhắn EML, có thể thực hiện bằng các phương thức tương ứng của MailMessage lớp:
- setPreamble(String value) - Lấy hoặc đặt văn bản preamble.
- setEpilogue(String value) - Lấy hoặc đặt văn bản epilogue.
// Gets or sets a preamble text.
public String getPreamble, setPreamble
// Gets or sets an epilogue text.
public String getEpilogue, setEpilogue