Parsen van Outlook‑berichtbestanden

Aspose.Email voor Java biedt de MapiMessage klasse die wordt gebruikt om een MSG‑bestand te openen en te parseren. Aangezien er veel ontvangers in een MSG‑bestand kunnen zijn, de MapiMessage klasse exposeert de getRecipients() methode die een MapiRecipientCollection die een collectie van MapiRecipient objecten. De MapiRecipient object biedt verder methoden om met attributen van ontvangers te werken.

De volgende reeks stappen dient dit doel:

  1. Maak een instantie van de MapiMessage klasse om een MSG‑bestand te laden van de Load statische methode.
  2. Geef de afzendernaam, het onderwerp en de inhoud weer uit het MSG‑bestand met behulp van getSenderName(), getSubject() en getBody() methoden.
  3. Roep de getRecipients() methode blootgesteld door de MapiRecipient klasse om een referentie naar de collectie van MapiRecipient objecten die bij het MSG‑bestand horen.
  4. Loop door de MapiRecipientCollection collectie om de inhoud van elk MapiRecipient object via zijn publieke methoden.
// 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());
}

Verkrijg een itemtype van een MAPI-bericht

Aspose.Email biedt een MapiItemType enum die een itemtype representeert. Het kan worden gebruikt voor berichtconversie naar een object van een overeenkomstige klasse die is afgeleid van de IMapiMessageItem interface. Hierdoor hoeven gebruikers de waarde van de MessageClass-eigenschap niet te controleren vóór de berichtconversie.

De volgende codevoorbeeld toont hoe u door de berichten in een map kunt itereren en elk MAPI-bericht converteert naar een overeenkomstig MAPI-itemtype, afhankelijk van het type van het bericht:

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