Analýza souborů Outlook zpráv

Aspose.Email pro Javu poskytuje MapiMessage třída, která se používá k otevření a analýze souboru MSG. Jelikož může v souboru MSG být mnoho příjemců, MapiMessage třída vystavuje getRecipients() metodu, která vrací MapiRecipientCollection která představuje kolekci Chcete-li uložit přílohy v MSG souboru na disk s původním názvem a příponou: objekty. Třída Chcete-li uložit přílohy v MSG souboru na disk s původním názvem a příponou: objekt dále odhaluje metody pro práci s atributy příjemců.

Následující postup kroků slouží k tomuto účelu:

  1. Vytvořte instanci MapiMessage třída pro načtení souboru MSG z Load statickou metodu.
  2. Zobrazit jméno odesílatele, předmět a tělo ze souboru MSG pomocí getSenderName(), getSubject() a getBody() metod.
  3. Zavolejte getRecipients() metoda vystavená Chcete-li uložit přílohy v MSG souboru na disk s původním názvem a příponou: třídu pro získání reference na kolekci Chcete-li uložit přílohy v MSG souboru na disk s původním názvem a příponou: metoda k získání reference na kolekci
  4. Procházet MapiRecipientCollection kolekci pro zobrazení obsahu pro každého Chcete-li uložit přílohy v MSG souboru na disk s původním názvem a příponou: k zobrazení obsahu týkajícího se každého
// The path to the resource directory.
String dataDir = Utils.getSharedDataDir(ParsingOutlookMessageFiles.class) + "outlook/";

//Instantiate an MSG file to load an MSG file from disk
MapiMessage outlookMessageFile = MapiMessage.fromFile(dataDir + "message.msg");
//Display sender's name
System.out.println("Sender Name : " + outlookMessageFile.getSenderName());
//Display Subject
System.out.println("Subject : " + outlookMessageFile.getSubject());
//Display Body
System.out.println("Body : " + outlookMessageFile.getBody());
//Display Recipient's info
System.out.println("Recipients : \n");

//Loop through the recipients collection associated with the MapiMessage object
for (int i = 0; i < outlookMessageFile.getRecipients().size(); i++) {
	//Set a reference to the MapiRecipient object
	MapiRecipient rcp = (MapiRecipient) outlookMessageFile.getRecipients().get_Item(i);
	//Display recipient email address
	System.out.println("Email : " + rcp.getEmailAddress());
	//Display recipient name
	System.out.println("Name : " + rcp.getDisplayName());
	//Display recipient type
	System.out.println("Recipient Type : " + rcp.getRecipientType());
}

Získat typ položky MAPI zprávy

Aspose.Email nabízí MapiItemType výčtový typ, který představuje typ položky. Lze jej použít pro konverzi zprávy na objekt odpovídající třídy odvozené od IMapiMessageItem rozhraní. Tím se uživatelům vyhýbá nutnosti kontrolovat hodnotu vlastnosti MessageClass před konverzí zprávy.

Následující ukázkový kód demonstruje, jak iterovat přes zprávy ve složce a převést každou MAPI zprávu na odpovídající typ MAPI položky, v závislosti na typu zprávy:

for (MessageInfo messageInfo : folder.enumerateMessages()) {
    MapiMessage msg = pst.extractMessage(messageInfo);

    switch (msg.getSupportedType()) {
        // Non-supported type. MapiMessage cannot be converted to an appropriate item type.
        // Just use in MSG format.
        case MapiItemType.None:
            break;
        // An email message. Conversion isn't required.
        case MapiItemType.Message:
            break;
        // A contact item. Can be converted to MapiContact.
        case MapiItemType.Contact:
            MapiContact contact = (MapiContact) msg.toMapiMessageItem();
            break;
        // A calendar item. Can be converted to MapiCalendar.
        case MapiItemType.Calendar:
            MapiCalendar calendar = (MapiCalendar) msg.toMapiMessageItem();
            break;
        // A distribution list. Can be converted to MapiDistributionList.
        case MapiItemType.DistList:
            MapiDistributionList dl = (MapiDistributionList) msg.toMapiMessageItem();
            break;
        // A Journal entry. Can be converted to MapiJournal.
        case MapiItemType.Journal:
            MapiJournal journal = (MapiJournal) msg.toMapiMessageItem();
            break;
        // A StickyNote. Can be converted to MapiNote.
        case MapiItemType.Note:
            MapiNote note = (MapiNote) msg.toMapiMessageItem();
            break;
        // A Task item. Can be converted to MapiTask.
        case MapiItemType.Task:
            MapiTask task = (MapiTask) msg.toMapiMessageItem();
            break;
    }
}