Java Heap Space errors with large emails

We are seeing the OutOfMemoryError still happening with Aspose.Email 25.4 and a 1GB msg file. Used the following code:

MsgLoadOptions msgLoadOptions = new MsgLoadOptions();
msgLoadOptions.setPreserveEmbeddedMessageFormat(true);
MailMessage mailMessage = MailMessage.load(valueOf(filePath), msgLoadOptions);

stacktrace:
java.lang.OutOfMemoryError: Java heap space
at com.aspose.email.system.io.MemoryStream.(Unknown Source)
at com.aspose.email.zui.a(SourceFile:351)
at com.aspose.email.zui.c(SourceFile:508)
at com.aspose.email.zui.a(SourceFile:115)
at com.aspose.email.zui.(SourceFile:75)
at com.aspose.email.FileFormatUtil.c(SourceFile:469)
at com.aspose.email.MapiMessage.e(SourceFile:1980)
at com.aspose.email.MailMessage.a(SourceFile:1589)
at com.aspose.email.MailMessage.c(SourceFile:1525)
at com.aspose.email.MailMessage.load(SourceFile:1477)
at com.stormed.processing.flattening.extractor.AsposeMsgExtractor.doExtractWork(AsposeMsgExtractor.java:143)
at com.stormed.processing.flattening.extractor.Extractor.extract(Extractor.java:47)
at com.stormed.processing.flattening.extractor.Extractor.extract(Extractor.java:40)
at com.stormed.processing.flattening.Extract.compressedFile(Extract.java:114)
at com.stormed.processing.flattening.Flattener.extract(Flattener.java:111)
at com.stormed.processing.ProcessingMain.extractAttachments(ProcessingMain.java:1033)
at com.stormed.processing.ProcessingMain.flattening(ProcessingMain.java:978)
at com.stormed.processing.ProcessingMain.extraction(ProcessingMain.java:494)
at com.stormed.processing.ProcessingMainTest$$Lambda/0x000001772b112260.execute(Unknown Source)
at org.junit.jupiter.api.AssertDoesNotThrow.assertDoesNotThrow(AssertDoesNotThrow.java:49)
at org.junit.jupiter.api.AssertDoesNotThrow.assertDoesNotThrow(AssertDoesNotThrow.java:36)
at org.junit.jupiter.api.Assertions.assertDoesNotThrow(Assertions.java:3199)
at com.stormed.processing.ProcessingMainTest.processingAndExtraction(ProcessingMainTest.java:475)
at java.base/java.lang.invoke.DirectMethodHandle$Holder.invokeSpecial(DirectMethodHandle$Holder)
at java.base/java.lang.invoke.LambdaForm$MH/0x000001772b191000.invoke(LambdaForm$MH)
at java.base/java.lang.invoke.Invokers$Holder.invokeExact_MT(Invokers$Holder)
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invokeImpl(DirectMethodHandleAccessor.java:153)
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
at java.base/java.lang.reflect.Method.invoke(Method.java:580)
at org.junit.platform.commons.util.ReflectionUtils.invokeMethod(ReflectionUtils.java:775)
at org.junit.platform.commons.support.ReflectionSupport.invokeMethod(ReflectionSupport.java:479)
at org.junit.jupiter.engine.execution.MethodInvocation.proceed(MethodInvocation.java:60)

Hello @jwisniewski,

Please note that message classes are in Aspose.Email is designed for standard email sizes. When working with very large .msg files (e.g., 1GB), the full in-memory load and MIME transformation can lead to excessive memory use. Such file sizes are uncommon in email workflows, which typically deal with much smaller messages to ensure compatibility with mail protocols.