Витягування вмісту повідомлень з електронних листів

Відображення інформації електронної пошти на екрані

The MailMessage представляє повідомлення електронної пошти та дозволяє розробникам отримувати доступ до його властивостей. Інформація заголовка (обговорюється в Витягування заголовків електронної пошти) можна витягнути та маніпулювати різними способами. У цій статті пояснюється, як відобразити обрану інформацію заголовків електронної пошти та тіло листа на екрані.

  1. Створіть екземпляр MailMessage.
  2. Завантажте повідомлення електронної пошти у екземпляр MailMessage.
  3. Відобразіть вміст електронного листа на екрані.

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

Отримання дати і часу повідомлення

The MailMessage клас можна використати для отримання дати повідомлення в UTC або в місцевому часовому поясі. Цю інформацію можна підсумувати наступним чином:

  1. MailMessage.getDate() - повертає дату в UTC
  2. MailMessage.getLocalDate() - повертає дату у локальному часовому поясі
  3. MailMessage.isLocalDate Повертає true, якщо MailMessage.getDate() у локальному часовому поясі

Витягування заголовків електронної пошти

Заголовок електронної пошти представляє набір полів заголовка, визначений стандартами Internet та RFC, що включені у повідомлення електронної пошти. Заголовок електронної пошти можна вказати за допомогою MailMessage клас. Спільні типи заголовків визначені у HeaderType клас. Це запечатаний клас, який працює як звичайне перерахування.

Щоб витягнути заголовки з електронної пошти, виконайте такі кроки:

  1. Створіть екземпляр класу MailMessage.
  2. Завантажте повідомлення електронної пошти в екземпляр класу MailMessage.
  3. Після завантаження повідомлення електронної пошти ми отримаємо його необроблений вміст. Клас MailMessage містить такі властивості, як From, To, Cc, Subject тощо. Ці властивості можна витягнути з заголовків.
  4. Відобразіть необроблений вміст.

Отримати декодовані значення заголовків

Отримати та змінити заголовок розташування пов’язаного ресурсу

Пов’язаний ресурс можна отримати та маніпулювати ним програмно в об’єкті електронного листа. The getContentDisposition() метод LinkedResource клас отримує заголовок Content‑Disposition. Нижче наведений приклад коду, який демонструє, як отримати доступ та змінити ім’я файлу пов’язаного ресурсу:

MailMessage eml = MailMessage.load(fileName);
eml.getLinkedResources().get_Item(0).getContentDisposition().setFileName("changed.png");

Отримати HTML‑тіло у вигляді простого тексту

The MailMessage клас забезпечує можливість витягти HTML‑тіло повідомлення у вигляді простого тексту. Клас MailMessage надає GetHtmlBodyText метод, який повертає HTML‑тіло у вигляді простого тексту. Метод GetHtmlBodyText приймає булевий параметр, який вказує, чи має тіло містити URL‑адреси. Передача параметра true означає, що HTML‑тіло має містити URL‑адреси.

Наступний фрагмент коду демонструє використання методу GetHtmlBodyText для отримання HTML‑тела електронного листа у вигляді простого тексту.

Отримати X.500 Exchange адреси з листів

Aspose.Email для Java дозволяє безпосередньо отримати X.500 адреси Exchange через MailAddress клас. За допомогою X500Address властивість, за допомогою якої можна отримати адресу електронної пошти у форматі Exchange X.500, коли вона доступна. Нижче наведений приклад коду показує, як завантажити повідомлення електронної пошти та отримати X.500 адресу відправника:

MailMessage mailMessage = MailMessage.load(fileName);
String exaddr = mailMessage.getFrom().getX500Address();

Якщо адреса X.500 існує, вона буде повернена як рядок і може бути використана для подальшої обробки або журналювання в застосунках, які взаємодіють з системами на базі Exchange.

Витягнути та вбудувати пов’язані зображення як вкладення у HTML‑повідомленнях

Aspose.Email ExtractHTMLBodyResourcesAsAttachments метод HtmlSaveOption клас визначає, чи витягати ресурси HTML‑тіла як вкладення. Таким чином, можна витягнути вміст, пов’язаний з зображеннями, з HTML‑тіла та вбудувати його як вкладення у MIME‑повідомлення. Пов’язані зображення зберігаються та правильно асоціюються з листом, підвищуючи цілісність вмісту та доступність офлайн.

Наступний приклад коду демонструє, як виконати це завдання:

MailMessage mailMessage = MailMessage.load("input.eml");
HtmlSaveOptions options = new HtmlSaveOptions();
options.setExtractHTMLBodyResourcesAsAttachments(true);
options.setResourceHtmlRenderingHandler(new ResourceHtmlRenderingHandler() {
    public void invoke(final Object sender, final ResourceHtmlRenderingEventArgs e) {
        System.out.println(e.getPathToResourceFile() + " " + ((Attachment)sender).getContentId());
    }
});