Утиліти - MailMessage

Шифрування та дешифрування повідомлень

Aspose.Email надає можливість шифрування та дешифрування електронних листів. У цій статті показано, як завантажити існуюче або нове повідомлення та зашифрувати його за допомогою MailMessage. The encrypt() і decrypt() методи повертають об’єкт MailMessage з застосованими ефектами, і про це потрібно пам’ятати під час шифрування/дешифрування повідомлень. Процес шифрування та дешифрування повідомлень включає наступні кроки:

  1. Створити нове повідомлення або завантажити існуюче
  2. Зашифрувати повідомлення за допомогою файлу сертифіката
  3. Надіслати повідомлення або зберегти його
  4. Розшифрувати повідомлення за потребою

Наступний фрагмент коду показує, як шифрувати та дешифрувати повідомлення.

Перевірка повідомлення на шифрування

Aspose.Email MailMessage клас дозволяє перевірити, чи зашифровано повідомлення. The isEncrypted властивість MailMessage дозволяє перевіряти це, як показано у наведеному прикладі коду.

Шифрування повідомлень за допомогою X509Certificate

Aspose.Email надає API для роботи з зашифрованими повідомленнями за допомогою X509Certificate:

MailMessage клас має наступні методи для роботи з шифруванням повідомлень:

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

Повідомлення з 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

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

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

Виявлення, чи є повідомлення TNEF

Обробка повернутих повідомлень

Дуже часто повідомлення, надіслане одержувачу, може повернутися (bounce) з будь‑якої причини, наприклад через недійсну адресу отримувача. API Aspose.Email має можливість обробляти таке повідомлення для перевірки, чи є воно повернутим електронним листом чи звичайним листом. The CheckBounced метод MailMessage клас повертає коректний результат, якщо електронне повідомлення є bounced‑листом.

У цій статті показано використання BounceResult клас, який забезпечує можливість перевірки, чи є повідомлення bounced‑листом. Він також надає детальну інформацію про одержувачів, вжиті дії та причину сповіщення.

Ігнорувати виключення

Бібліотека пропонує 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 преамбуль — це текст, який розташовується після заголовків і перед першою межою multipart. Епіграф — це текст, який розташовується після останньої межі і перед кінцем повідомлення. Цей текст зазвичай не видимий користувачам у поштових клієнтах, проте деякі реалізації MIME можуть використовувати його для вставки приміток одержувачам, які читають повідомлення за допомогою програм, несумісних з MIME.

Наступний фрагмент коду показує, як отримати преамбулу та епіграф з EML‑повідомлення, що може бути здійснено за допомогою відповідних методів of the MailMessage клас:

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

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