Outlook Mesaj Dosyalarını Ayrıştırma

Aspose.Email for Java şu sağlayıcıyı sunar MapiMessage MSG dosyasını açmak ve ayrıştırmak için kullanılan sınıf. Bir MSG dosyasında birçok alıcı olabileceğinden, MapiMessage sınıf şu özelliği sunar getRecipients() bir döndüren yöntem MapiRecipientCollection ki, bir koleksiyonunu temsil eder MapiRecipient nesneler. MapiRecipient nesne, alıcı öznitelikleriyle çalışmak için ek yöntemler sunar.

Aşağıdaki adım sırası bu amacı hizmet eder:

  1. Şunun bir örneğini oluştur MapiMessage sınıfı, MSG dosyasını şuradan yüklemek için Load statik yöntem.
  2. MSG dosyasından gönderen adını, konusunu ve gövdesini şu ile göster: getSenderName(), getSubject() ve getBody() yöntemler.
  3. Şuğu çağırın getRecipients() tarafından sunulan yöntem MapiRecipient sınıfı, koleksiyonunun bir referansını almak için MapiRecipient MSG dosyasıyla ilişkili nesneler.
  4. Döngüyle gezin MapiRecipientCollection her biri için içerikleri göstermek amacıyla koleksiyon MapiRecipient nesneyi genel metodlarıyla.
// 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());
}

Bir MAPI Mesajının Öğe Türünü Al

Aspose.Email bir MapiItemType bir öğe tipini temsil eden enum. İlgili sınıftan türetilen bir nesneye mesaj dönüşümü için kullanılabilir. IMapiMessageItem arabirim. Bu, kullanıcıların mesaj dönüşümünden önce MessageClass özelliği değerini kontrol etmelerini önler.

Aşağıdaki kod örneği, bir klasördeki mesajlar arasında nasıl döngü yapılacağını ve her MAPI mesajının mesaj tipine bağlı olarak ilgili MAPI öğe tipine nasıl dönüştürüleceğini göstermektedir:

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