Вспомогательные функции — MailMessage
Шифрование и дешифрование сообщений
Aspose.Email предоставляет возможность шифровать и дешифровать сообщения электронной почты. В этой статье показано, как загрузить существующее или новое сообщение и зашифровать его с помощью MailMessage. Это encrypt() и decrypt() методы возвращают объект MailMessage с применёнными изменениями, и это необходимо учитывать при шифровании/дешифровании сообщений. Шифрование и дешифрование сообщений включает следующие шаги:
- Создать новое сообщение или загрузить существующее
- Зашифровать сообщение с использованием файла сертификата
- Отправить сообщение или сохранить его
- Дешифровать сообщение по необходимости
Следующий фрагмент кода показывает, как шифровать и дешифровать сообщения.
Проверка сообщения на шифрование
Aspose.Email MailMessage класс позволяет проверять, зашифровано ли сообщение. isEncrypted свойство MailMessage позволяет проверять это, как показано в следующем примере кода.
Шифрование сообщений с X509Certificate
Aspose.Email предоставляет API для работы с зашифрованными сообщениями с использованием X509Certificate:
MailMessage класс имеет следующие методы для работы с шифрованием сообщений:
- public MailMessage attachSignature(X509Certificate2 certificate, boolean detached) - Создаёт подписанное сообщение.
- public MailMessage attachSignature(X509Certificate2 certificate) - Создаёт подписанное сообщение.
- public X509Certificate2[] checkSignatureCert() - Проверяет подпись существующего MailMessage.
- public MailMessage decrypt(X509Certificate2 certificate)
- public MailMessage encrypt(X509Certificate2 certificate)
- public MailMessage encrypt(X509Certificate2[] certificates)
Настройка параметров локали для Aspose.Email
Вы можете использовать LocaleOptions класс используется в случае нераспознанной локали по умолчанию и устанавливает наиболее подходящую локаль для библиотеки Aspose Email. Он предлагает следующие методы для выполнения задачи:
- getLocale() - Возвращает локаль по умолчанию для Aspose.Email.
- setLocale(Locale locale) и setLocale(String localeName) - Устанавливает локаль по умолчанию для Aspose.Email.
- clear() - Очищает локаль по умолчанию для Aspose.Email. Будет использована локаль по умолчанию для Java.
Следующий пример кода демонстрирует, как загрузить почтовое сообщение из файла с использованием указанных настроек локали:
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");
Этот код гарантирует, что приложение и библиотека Aspose.Email используют указанные локали для обработки языковых, страновых и культурных особенностей.
MailMessage с вложениями TNEF
Transport Neutral Encapsulation Format (TNEF) — проприетарный формат вложений электронной почты, используемый Microsoft Outlook и Microsoft Exchange Server. API Aspose.Email позволяет читать сообщения с вложениями TNEF и изменять их содержимое. Письмо затем может быть сохранено как обычное письмо или в том же формате, с сохранением вложений TNEF. Эта статья показывает различные примеры кода для работы с сообщениями, содержащими вложения TNEF.
Чтение сообщения с сохранением вложений TNEF
Следующий фрагмент кода показывает, как прочитать сообщение, сохраняя вложения TNEF.
Обновление ресурсов во вложении TNEF с сохранением формата TNEF
Следующий фрагмент кода показывает, как обновить ресурсы во вложении TNEF и сохранить формат TNEF.
Добавление новых вложений к основному сообщению, содержащему TNEF
Создание TNEF‑EML из MSG
Файлы Outlook MSG иногда содержат такие данные, как таблицы и стили текста, которые могут быть искажены при конвертации в EML. Создание TNEF‑сообщений из таких MSG‑файлов позволяет сохранить форматирование и даже отправлять такие сообщения через почтовые клиенты, сохраняя форматирование.
Для создания TNEF можно использовать следующий пример кода.
Определить, является ли сообщение TNEF
Обработка возвратных сообщений
Очень часто сообщение, отправленное получателю, может отскочить по любой причине, например из‑за недействительного адреса получателя. API Aspose.Email обладает возможностью обрабатывать такое сообщение для проверки, является ли оно возвращённым письмом или обычным электронным письмом. The Проверка возврата метод MailMessage класс возвращает корректный результат, если электронное письмо является возвращённым.
Эта статья демонстрирует использование BounceResult класс, предоставляющий возможность проверки, является ли сообщение возвращённым (bounce). Он также предоставляет подробную информацию о получателях, выполненных действиях и причине уведомления.
Игнорировать исключения
Библиотека предлагает an ExceptionManager класс для реализации возможности игнорировать исключения в функциональности вашего приложения. Приведённый ниже фрагмент кода демонстрирует, как установить обратный вызов для обработки исключений:
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");
}
});
Или использовать альтернативу:
ExceptionManager.setIgnoreAll(true);
Также можно установить обратный вызов для журнала игнорируемых исключений:
ExceptionManager.setIgnoreExceptionsLogHandler( new IgnoreExceptionsLogCallback() {
public void invoke(String message) {
System.out.println("=== EXCEPTION IGNORED === " + message);
}
});
Пользователь будет уведомлён, что исключение можно игнорировать, с помощью сообщения об ошибке. Например:
Исключение в сообщении:
AsposeArgumentException: properties should not be empty.
Если вы хотите игнорировать исключение и продолжить работу, то можете использовать:
ExceptionManager.getIgnoreList().add("MailMessage\\Load\\DecodeTnefAttachment\\64149867-679e-4645-9af0-d46566cae598")
Invalid TNEF Attachment will be interpreted as regular attachment.
Байесовский анализатор спама
Aspose.Email предоставляет возможность фильтрации электронных писем с использованием байесовского анализатора спама. Он предоставляет the SpamAnalyzer класс для этой цели. Эта статья показывает, как обучить фильтр различать спам и обычные письма на основе базы данных слов.
Получение преамбулы и эпилога из сообщений EML
В формате MIME пreamble (преамбула) — это текст, который появляется после заголовков и перед первой границей multipart. Эпилог — это текст, который появляется после последней границы и перед окончанием сообщения. Этот текст обычно не виден пользователям в почтовых клиентах, но некоторые реализации MIME могут использовать его для вставки заметок получателям, которые читают сообщение с помощью программ, не поддерживающих MIME.
Следующий фрагмент кода показывает, как получить предварительную часть и эпилог из сообщения EML, что можно сделать с помощью соответствующих методов MailMessage класс:
- setPreamble(String value) - Получает или задаёт текст предварительной части.
- setEpilogue(String value) - Получает или задаёт текст эпилога.
// Gets or sets a preamble text.
public String getPreamble, setPreamble
// Gets or sets an epilogue text.
public String getEpilogue, setEpilogue