Analisando arquivos de mensagem Outlook
Usando Aspose.Email para Java, os desenvolvedores podem não apenas carregar, mas também analisar o conteúdo de arquivos de mensagem Outlook.
- Para carregar arquivos MSG do disco, use o MapiMessage classe estática Load método.
- Para analisar o conteúdo de arquivos MSG, o MapiMessage exibe um número de métodos.
Este tópico mostra como carregar e então analisar um arquivo MSG para exibir seu conteúdo.
Aspose.Email para Java fornece o MapiMessage classe usada para abrir e analisar um arquivo MSG. Como pode haver muitos destinatários em um arquivo MSG, o MapiMessage A classe expõe o getRecipients() método que retorna um MapiRecipientCollection que representa uma coleção de MapiRecipient objetos. O MapiRecipient o objeto expõe ainda mais métodos para trabalhar com atributos de destinatário.
A sequência de etapas a seguir serve a esse propósito:
- Crie uma instância do MapiMessage classe para carregar um arquivo MSG a partir do Load método estático.
- Exiba o nome do remetente, assunto e corpo do arquivo MSG usando getSenderName(), getSubject() e getBody() métodos.
- Chame o getRecipients() método exposto por MapiRecipient classe para obter uma referência à coleção de MapiRecipient objetos associados ao arquivo MSG.
- Itere sobre o MapiRecipientCollection coleção para exibir o conteúdo de cada MapiRecipient objeto por meio de seus métodos públicos.
// 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());
}
Experimente!
Analise arquivos de e‑mail online gratuitamente Aspose.Email Parser App.
Obter um Tipo de Item de uma Mensagem MAPI
Aspose.Email oferece um MapiItemType enumeração que representa um tipo de item. Pode ser usada para a conversão de mensagens em um objeto de uma classe correspondente derivada de IMapiMessageItem interface. Isso evita que os usuários verifiquem o valor da propriedade MessageClass antes da conversão da mensagem.
O exemplo de código a seguir demonstra como iterar pelas mensagens em uma pasta e converter cada mensagem MAPI em um tipo de item MAPI correspondente, dependendo do tipo da mensagem:
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;
}
}