Exception: The IPM.Outlook.Recall message from PST using Aspose.Email for Java

When extracting a recalled message from a PST archive (Aspose.Email.Java version 19.1) and converting to a MapiMessageItem I get this exception.

com.aspose.email.system.exceptions.NotSupportedException: The IPM.Outlook.Recall message class is not supported by now

Is this something that is on the books to be supported? Or is there another way to identify and extract these recall messages?

Thanks
Mike

@mstandfuss,

Can you please share source files along with environment details so that we may further investigate to help you out. Also please share complete sample project to reproduce issue.

Code:

Iterator<String> iterable = folder.enumerateMessagesEntryId().iterator();
while(iterable.hasNext()){
	String messageEntryId = iterable.next();
	MapiMessage message = pst.extractMessage(messageEntryId);
	IMapiMessageItem item = message.toMapiMessageItem();
	...
}

Environment: Java client, running on 16.x Ubunutu OS, not sure what more environment details you want or would be helpful in this scenario. The PST file that I am seeing having this issue is many gigs, so I am not sure its the best to share. You should be able to recreate the same scenario with any PST/OST containing a recalled message in it. I dont think its a bug in the Aspose code, based on the error message sound more like an unimplemented feature. I was mainly wanting to gauge if its something that is on the radar.

Thanks,
Mike

@mstandfuss,

Can you please share the source PST file that is causing issue on your end. We will be able to investigate the issue further on our end on provision of requested information.

Sure, but like I said its rather large, so it does not let me upload it to the forum. That is is why I thought it would just be easier to create the data on your end. Also like I said before, I dont believe this is an issue as you have described it. The error message clearly states that it is just not supported, I am just wanting to know if it is something to be supported down the road. I can get you the pst file if you still want it or cannot produce one of your own. Do you have a preferred way to transport it since I cannot upload to the forum?

Mike

@mstandfuss,

I suggest you to please provide the subset of PST with only those Messages that are failing to get load and share with us. You may also upload the PST on some file server and share the download link with us.

Okay, I will have to work on that request as the pst that is currently failing is not shareable.

@mstandfuss,

Please feel free to share the information with us once it is available.

PSTRecall.zip (111.2 KB)
I tried to attach the file directly to this comment, but last time I tried to do that the person on your end couldnt get to it. If thats the case again I have also uploaded it to my personal dropbox.

https://www.dropbox.com/s/x9651af1052g9an/PSTRecall.pst?dl=0

@mstandfuss,

I have worked with source file shared by you. The code snippet you have shared includes some undeclared variables so would you please share your SSCCE code reproducing the issue so that we may try to reproduce and investigate it in our environment.

public class AsposeExample {

public static void main(String[] args){
	PersonalStorage pst = PersonalStorage.fromFile("IDK_Where_You_Store_Stuff", false);
	FolderInfo rootFolder = pst.getRootFolder();
	doStuff(pst, rootFolder);
}

private static void doStuff(PersonalStorage pst, FolderInfo folder){
	Iterator<String> iterable = folder.enumerateMessagesEntryId().iterator();
	while(iterable.hasNext()){
		String messageEntryId = iterable.next();
		MapiMessage message = pst.extractMessage(messageEntryId);
		message.toMapiMessageItem();
	}

	for (FolderInfo subFolder : folder.getSubFolders()) {
		doStuff(pst, subFolder);
	}
}

}

@mstandfuss,

I have observed the issue shared by you and have created an ticket with ID EMAILJAVA-34516 in our issue tracking system to investigate this on our end. I will share the feedback with you in this regard as soon as possible.

It shows EMAILJAVA-34516 is now in a closed status. Does that mean it was fixed? Can I get the version that went out in?

@mstandfuss,

This is a won’t fix issue as in this case, you just needs to handle the exception.
If you further saves the message, it will be saved with MapiMessage without loss the properties.

If you want to read some properties, it can be read with MapiMessage. The MapiMessageItem class is just a wrapper created for the convenience of reading the properties of a contact, calendar, task, etc., since most of properties are stored as Named Properties and access to them using MapiMessage via ID is not convenient.
Messages of the IPM.Recall.Report.Success class do not have many properties and create a separate wrapper for it is not necessary.