Analyse des fichiers de messages Outlook
Avec Aspose.Email pour Java, les développeurs peuvent non seulement charger mais aussi analyser le contenu des fichiers de messages Outlook.
- Pour charger les fichiers MSG depuis le disque, utilisez le MapiMessage classe statique Load méthode.
- Pour analyser le contenu d’un fichier MSG, le MapiMessage expose un certain nombre de méthodes.
Ce sujet montre comment charger puis analyser un fichier MSG afin d’afficher son contenu.
Aspose.Email pour Java fournit le MapiMessage classe utilisée pour ouvrir et analyser un fichier MSG. Comme il peut y avoir de nombreux destinataires dans un fichier MSG, le MapiMessage La classe expose le getRecipients() méthode qui renvoie un MapiRecipientCollection qui représente une collection de MapiRecipient objets. Le MapiRecipient l’objet expose en outre des méthodes pour travailler avec les attributs des destinataires.
La séquence d’étapes suivante remplit cet objectif :
- Créez une instance de la MapiMessage classe pour charger un fichier MSG depuis le Load méthode statique.
- Affichez le nom de l’expéditeur, l’objet et le corps du fichier MSG en utilisant getSenderName(), getSubject() et getBody() méthodes.
- Appelez le getRecipients() méthode exposée par le MapiRecipient classe pour obtenir une référence à la collection de MapiRecipient objets associés au fichier MSG.
- Parcourez le MapiRecipientCollection collection pour afficher le contenu de chaque MapiRecipient objet via ses méthodes publiques.
// 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());
}
Essayez-le !
Analysez les fichiers email en ligne gratuitement avec le Application Aspose.Email Parser.
Obtenir un type d’élément d’un message MAPI
Aspose.Email propose un MapiItemType énumération qui représente un type d’élément. Elle peut être utilisée pour la conversion de messages en un objet d’une classe correspondante dérivée de IMapiMessageItem interface. Cela évite aux utilisateurs de vérifier la valeur de la propriété MessageClass avant la conversion du message.
L’exemple de code suivant montre comment parcourir les messages d’un dossier et convertir chaque message MAPI en un type d’élément MAPI correspondant, en fonction du type du message :
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;
}
}