We use following code before on aspose-email-3.2.0.0.jar, it's work. But upgrade to aspose-email-3.7.0.0-jdk16, It's show exception. Last I downgrade to 3.6.0.0.. It's work. So i guess that MailMessage.load init static parameter get something miss on 3.7.0.0
Exception in thread "main" java.lang.ExceptionInInitializerError
at com.aspose.email.ds.a(Unknown Source)
at com.aspose.email.ds.<clinit>(Unknown Source)
at com.aspose.email.cf.a(Unknown Source)
at com.aspose.email.cf.a(Unknown Source)
at com.aspose.email.nz.b(Unknown Source)
at com.aspose.email.nz.d(Unknown Source)
at com.aspose.email.nz.a(Unknown Source)
at com.aspose.email.ua.a(Unknown Source)
at com.aspose.email.ua.<init>(Unknown Source)
at com.aspose.email.gj.a(Unknown Source)
at com.aspose.email.HeaderCollection.a(Unknown Source)
at com.aspose.email.od.c(Unknown Source)
at com.aspose.email.od.a(Unknown Source)
at com.aspose.email.od.b(Unknown Source)
at com.aspose.email.MailMessage.b(Unknown Source)
at com.aspose.email.MailMessage.load(Unknown Source)
at EmlToPST.emlToPst(EmlToPST.java:82)
at EmlToPST.main(EmlToPST.java:46)
Caused by: java.lang.NullPointerException
at com.aspose.email.om.a(Unknown Source)
at com.aspose.email.rt.b(Unknown Source)
at com.aspose.email.cm.a(Unknown Source)
at com.aspose.email.cm.b(Unknown Source)
at com.aspose.email.cl.<clinit>(Unknown Source)
... 18 more
public void emlToPst(String emlFile, String pstFile) {
File pstF = new File(pstFile);
PersonalStorage pst = null;
if (pstF.exists()) {
pst = PersonalStorage.fromFile(pstFile);
} else {
// create an instance of PersonalStorage
pst = PersonalStorage.create(pstFile, 0);
}
MailMessage eml = MailMessage.load(emlFile,
MailMessageLoadOptions.getDefaultEml()); <--- here init error?
eml.setPreferredTextEncoding(Charset.forName("UTF8"));
MapiMessage msg = MapiMessage.fromMailMessage(eml,
OutlookMessageFormat.Unicode);
if (pst.getRootFolder().getSubFolder("EmailDiscovery") == null) {
// create a folder at root of pst
pst.getRootFolder().addSubFolder("EmailDiscovery");
}
// add message to newly created folder
pst.getRootFolder().getSubFolder("EmailDiscovery").addMessage(msg);
System.out.println("Sample pst create successful....");
}