Analysera Outlook‑meddelandefiler
Med Aspose.Email för Java kan utvecklare inte bara läsa in utan också analysera innehållet i Outlook‑meddelandefiler.
- För att läsa in MSG‑filer från disk, använd MapiMessage klass statisk Load metod.
- För att analysera innehållet i en MSG‑fil, bör MapiMessage exponerar ett antal metoder.
Detta avsnitt visar hur du läser in och sedan analyserar en MSG‑fil för att visa dess innehåll.
Aspose.Email för Java tillhandahåller MapiMessage klass som används för att öppna och analysera en MSG‑fil. Eftersom det kan finnas många mottagare i en MSG‑fil, är MapiMessage klassen exponerar getRecipients() metod som returnerar en MapiRecipientCollection som representerar en samling av MapiRecipient objekt. Den MapiRecipient objektet exponerar ytterligare metoder för att arbeta med mottagarattribut.
Följande sekvens av steg tjänar detta ändamål:
- Skapa en instans av MapiMessage klass för att läsa in en MSG‑fil från Load statiska metoden.
- Visa avsändarnamn, ämne och meddelandetext från MSG‑filen med hjälp av getSenderName(), getSubject() och getBody() metoder.
- Anropa getRecipients() metod som exponeras av MapiRecipient klass för att få referens till samlingen av MapiRecipient objekt som är associerade med MSG‑filen.
- Loopa igenom MapiRecipientCollection samling för att visa innehållet för varje MapiRecipient objekt via dess publika metoder.
// 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());
}
Try it out!
Analysera e‑postfiler online med den fria Aspose.Email Parser App.
Hämta en objekttyp för ett MAPI‑meddelande
Aspose.Email erbjuder en MapiItemType enum som representerar en objektstyp. Den kan användas för meddelandekonvertering till ett objekt av en motsvarande klass härledd från IMapiMessageItem gränssnitt. Detta undviker att användare måste kontrollera värdet på egenskapen MessageClass innan meddelandekonvertering.
Följande kodexempel visar hur man itererar genom meddelandena i en mapp och konverterar varje MAPI‑meddelande till en motsvarande MAPI‑objekttyp, beroende på meddelandets typ:
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;
}
}