Extrahování obsahu zpráv z e‑mailů

Zobrazení e‑mailových informací na obrazovce

The MailMessage reprezentuje e‑mailovou zprávu a umožňuje vývojářům přistupovat k vlastnostem e‑mailové zprávy. Informace z hlavičky (diskutováno v Extrahování e‑mailových hlaviček) lze extrahovat a manipulovat s ním různými způsoby. Tento článek vysvětluje, jak zobrazit vybrané informace z hlavičky e‑mailu a tělo e‑mailu na obrazovce.

  1. Vytvořte instanci MailMessage.
  2. Načtěte e‑mailovou zprávu do instance MailMessage.
  3. Zobrazte obsah e‑mailu na obrazovce.

Níže uvedený kód demonstruje, jak načíst e‑mailovou zprávu a zobrazit její obsah – od, komu, předmět a tělo e‑mailu – na obrazovce.

Získání data a času zprávy

The MailMessage třída může být použita k získání data zprávy v UTC nebo v lokálním časovém pásmu. Tyto informace lze shrnout následovně:

  1. MailMessage.getDate() - vrací datum v UTC
  2. MailMessage.getLocalDate() - vrací datum v místním časovém pásmu
  3. MailMessage.isLocalDate Vrací true, pokud je MailMessage.getDate() v místním časovém pásmu

Extrahování e‑mailových hlaviček

Hlavička e‑mailu představuje internetový a RFC definovaný standardní soubor hlavičkových polí zahrnutých v internetových e‑mailových zprávách. Hlavička e‑mailu může být specifikována pomocí MailMessage třída. Běžné typy hlaviček jsou definovány v HeaderType třída. Je to uzavřená třída fungující jako běžná výčtová hodnota.

Pro extrahování hlaviček z e‑mailu postupujte podle následujících kroků:

  1. Vytvořte instanci třídy MailMessage.
  2. Načtěte e‑mailovou zprávu v instanci třídy MailMessage.
  3. Po načtení e‑mailové zprávy získáme její surový obsah. Třída MailMessage samotná obsahuje vlastnosti jako From, To, Cc, Subject a další. Tyto vlastnosti lze extrahovat z hlaviček.
  4. Zobrazte surový obsah.

Získat dekódované hodnoty hlavičky

Získat a upravit hlavičku Disposition propojeného zdroje

Propojený zdroj lze programově přistupovat a manipulovat s ním v objektu e‑mailové zprávy. getContentDisposition() metoda třídy LinkedResource třída získává hlavičku Content-Disposition. Níže uvedený ukázkový kód demonstruje, jak získat a upravit název souboru propojeného zdroje:

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

Získat HTML tělo jako prostý text

The MailMessage třída poskytuje funkci k extrakci HTML těla zprávy jako prostého textu. Třída MailMessage poskytuje GetHtmlBodyText metoda, která vrací HTML tělo jako prostý text. Metoda GetHtmlBodyText přijímá boolovský parametr, který určuje, zda by tělo mělo obsahovat URL adresy nebo ne. Předání parametru jako true naznačuje, že HTML tělo by mělo obsahovat URL adresy.

Následující úryvek kódu demonstruje použití metody GetHtmlBodyText k extrakci HTML těla e‑mailu jako prostého textu.

Získat X.500 Exchange adresy z e‑mailů

Aspose.Email pro Java vám umožňuje přistupovat k X.500 Exchange adresám přímo prostřednictvím MailAddress třída. S X500Address vlastnost, pomocí které můžete získat e‑mailovou adresu ve formátu X.500 Exchange, pokud je k dispozici. Následující ukázka kódu ukazuje, jak načíst e‑mailovou zprávu a získat X.500 adresu odesílatele:

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

Pokud existuje adresa X.500, bude vrácena jako řetězec a může být použita pro další zpracování nebo protokolování v aplikacích, které komunikují se systémy založenými na Exchange.

Extrahovat a vložit propojené obrázky jako přílohy v HTML e‑mailích

Aspose.Email ExtractHTMLBodyResourcesAsAttachments metoda třídy HtmlSaveOption třída určuje, zda extrahovat zdroje HTML těla jako přílohy. Tím můžete extrahovat obsah odkazovaný obrázky z HTML těla a vložit jej jako přílohu do MIME zprávy. Propojené obrázky jsou zachovány a řádně přiřazeny k e‑mailu, což zlepšuje integritu obsahu a offline přístupnost.

Následující ukázka kódu demonstruje, jak tuto úlohu provést:

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());
    }
});