Парсиране на Outlook файлове със съобщения
С използването на Aspose.Email за Java, разработчиците могат не само да зареждат, но и да парсират съдържанието от Outlook файлове със съобщения.
- За зареждане на MSG файлове от диск, използвайте MapiMessage клас статичен Load метод.
- За парсиране на съдържанието на MSG файл, MapiMessage разкрива множество методи.
Тази тема показва как да заредите и след това да парсирате MSG файл, за да покажете неговото съдържание.
Aspose.Email за Java предоставя MapiMessage клас, който се използва за отваряне и парсиране на MSG файл. Тъй като в MSG файл може да има много получатели, MapiMessage класът излага getRecipients() метод, който връща MapiRecipientCollection които представляват колекция от MapiRecipient обекти. The MapiRecipient обектът допълнително разкрива методи за работа с атрибутите на получателите.
Следната последователност от стъпки служи за тази цел:
- Създайте инстанция на MapiMessage клас за зареждане на MSG файл от Load статичен метод.
- Покажете името на подателя, темата и тялото от MSG файла, използвайки getSenderName(), getSubject() и getBody() методи.
- Извикайте getRecipients() метод, предоставен от MapiRecipient клас, за да получите справка към колекцията от MapiRecipient обекти, свързани с MSG файла.
- Обходете MapiRecipientCollection колекция, за да покажете съдържанието за всяка MapiRecipient обект чрез публичните му методи.
// 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!
Парсирайте имейл файлове онлайн безплатно с Приложение за парсване Aspose.Email.
Получаване на тип елемент на MAPI съобщение
Aspose.Email предлага MapiItemType изброяване, което представлява тип елемент. Може да се използва за конверсия на съобщение в обект от съответен клас, наследен от IMapiMessageItem интерфейс. Това предотвратява потребителите от проверка на стойността на свойството MessageClass преди конверсията на съобщението.
Следният примерен код показва как да обхождате съобщенията в папка и да конвертирате всяко MAPI съобщение в съответстващ тип MAPI елемент, в зависимост от типа на съобщението:
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;
}
}