Функции утилиты — MailMessage

Шифрование и дешифрование сообщений

Aspose.Email предоставляет возможность шифрования и дешифрования сообщений электронной почты. В этом разделе показано, как можно загрузить и зашифровать существующее или новое сообщение с помощью MailMessage. encrypt() and decrypt() методы возвращают MailMessage объект для примененных эффектов, о котором необходимо позаботиться при шифровании/дешифровании сообщений. Шифрование и дешифрование сообщений включает следующие шаги:

  1. Создайте новое сообщение или загрузите существующее
  2. Зашифруйте сообщение с помощью файла сертификата
  3. Отправьте сообщение или сохраните его
  4. При необходимости расшифруйте сообщение

В следующем фрагменте кода показано, как шифровать и дешифровать сообщения.

Проверка сообщения на шифрование

Aspose.Email MailMessage класс позволяет проверить сообщение, зашифровано оно или нет. isEncrypted собственность MailMessage позволяет проверить это, как показано в следующем примере кода.

Шифрование сообщений с помощью сертификата X509

Aspose.Email предоставляет API для работы с зашифрованными сообщениями с помощью X509Certificate:

MailMessage класс имеет следующие методы для работы с шифрованием сообщений:

Настройка параметров локали для Aspose.Email

Вы можете использовать LocaleOptions класс в случае нераспознанной локали по умолчанию и установите наиболее подходящую локаль для Aspose Email lib. Он предлагает следующие методы выполнения задачи:

В следующем примере кода показано, как загрузить почтовое сообщение из файла, используя указанные настройки локали:

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 используют указанные локали для обработки языковых, национальных и культурных конвенций.

Почтовые сообщения, содержащие вложения в формате TNEF

Транспортный нейтральный формат инкапсуляции (TNEF) — это собственный формат вложений электронной почты, используемый Microsoft Outlook и Microsoft Exchange Server. API Aspose.Email позволяет читать сообщения электронной почты, содержащие вложения в формате TNEF, и изменять их содержимое. Затем письмо можно сохранить как обычное электронное письмо или в том же формате, сохранив вложения в формате TNEF. В этой статье приведены различные примеры кода для работы с сообщениями, содержащими вложения в формате TNEF.

Чтение сообщения путем сохранения вложений TNEF

В следующем фрагменте кода показано, как прочитать сообщение, сохранив вложения в формате TNEF.

Обновление ресурсов во вложении TNEF и сохранение формата TNEF

В следующем фрагменте кода показано, как обновить ресурсы во вложении TNEF и сохранить формат TNEF.

Добавление новых вложений к основному сообщению, содержащему TNEF

Создание EML TNEF из MSG

Иногда файлы MSG Outlook содержат такую информацию, как таблицы и текстовые стили, которые могут быть нарушены при преобразовании в формат EML. Создание сообщений TNEF из таких файлов MSG позволяет нам сохранять форматирование и даже отправлять такие сообщения через почтовые клиенты с сохранением форматирования. 

Для создания TNEF можно использовать следующий пример кода.

Определите, соответствует ли сообщение TNEF

Обработка возвращенных сообщений

Очень часто сообщение, отправленное получателю, может возвращаться по любой причине, например из-за неправильного адреса получателя. API Aspose.Email имеет возможность обрабатывать такое сообщение для проверки того, является ли оно отведенным письмом или обычным сообщением электронной почты. CheckBounced метод MailMessage класс возвращает действительный результат, если сообщение электронной почты было возвращено.

В этой статье показано использование BounceResult класс, который позволяет проверить, является ли сообщение возвращенным письмом. В нем также содержится подробная информация о получателях, предпринятых действиях и причине уведомления.

Игнорировать исключения

Библиотека предлагает 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");

   }

});

Или используйте alternative:

 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 предоставляет возможность фильтрации электронной почты с помощью анализатора спама Bayes. Он предоставляет SpamAnalyzer класс для этой цели. В этой статье показано, как научить фильтр отличать спам от обычных писем на основе базы слов.

Получение преамбулы и эпилога из сообщений EML

В формате MIME preamble это текст, который появляется после заголовков и перед первой составной границей. epilogue это текст, который появляется после последней границы и перед концом сообщения. Этот текст обычно не виден пользователям в программах чтения почты, но в некоторых реализациях MIME он может использоваться для вставки заметок получателям, прочитавшим сообщение с помощью программ, не совместимых с MIME.

В следующем фрагменте кода показано, как получить преамбулу и эпилог из сообщения EML, что может быть достигнуто с помощью соответствующих методов MailMessage class:

// Gets or sets a preamble text.
public String getPreamble, setPreamble

// Gets or sets an epilogue text.
public String getEpilogue, setEpilogue