Team, is the support for Aspose.Email C++ library for macOS X will be available anytime sooner? I couldn’t find any update on this regard anywhere.
Can you please specify what specific features or functionalities you are looking for in the Aspose.Email C++ library for macOS X?
We are keen to explore using it for reading .pst/.olm files of outlook
Hello @SivaAthi,
Currently, Aspose.Email for C++ does not support macOS.
However, we would like to mention that macOS is supported by Aspose.Email for Python via .NET. If this fits your project requirements, we recommend exploring this option.
Well, Thanks @margarita.samodurova . Is it possible to use the Aspose.Email for JAVA for macOS? If not what is the limitation with this
Also it would be helpful for us if you can share any guidelines for integrating Aspose.Email with an Xcode project .
We would like to clarify our previous response to avoid any misunderstanding. Aspose.Email for C++ does support macOS for x64 platforms. However, please note that ARM-based macOS platforms are not currently supported.
We apologize for the initial misunderstanding and any inconvenience it may have caused.
As for Aspose.Email for Java, it also supports macOS, as confirmed in the documentation: System Requirements. However, please note that Aspose.Email for Java cannot be directly integrated into an Xcode project.
Is it possible to use Aspose.Email for .NET in a macOS project to enable communication between .NET and Swift?
The system requirements for Aspose.Email for .NET confirm compatibility with .NET environments, but integrating it into a macOS project requires bridging .NET and Swift. If feasible, could you provide a sample project demonstrating how to achieve this integration?
Hello @RamPratap,
Unfortunately, we have not tested our library for communication between .NET and Swift, so we cannot provide you with a ready solution. However, we encourage you to conduct your own research based on the available information. From our side, we can suggest the following potential ideas:
You can bridge .NET and Swift using:
- Inter-Process Communication (IPC). Use REST APIs, gRPC, or WebSockets.
- Command-Line Interaction. Use the .NET Core library as a command-line tool and call it from Swift.
- Native Bridge Libraries. Use libraries like Swift’s
Process
class to invoke .NET libraries. Below is an example workflow:
-
Create a .NET Core Class Library.
Use Aspose.Email for .NET to handle email tasks. For example:using Aspose.Email; public class EmailProcessor { public static string GetEmailSubject(string emailFilePath) { var mailMessage = MailMessage.Load(emailFilePath); return mailMessage.Subject; } }
-
Publish the Library for macOS.
Use the following command to publish your .NET Core library:dotnet publish -r osx-x64 --self-contained false -o ./output
-
Use the
Process
Class in Swift to Invoke the .NET Library.
In your Swift project, try to call the published library:import Foundation func getEmailSubject(emailFilePath: String) -> String? { let process = Process() process.executableURL = URL(fileURLWithPath: "/path/to/your/dotnet/library/output/EmailProcessor") process.arguments = ["--file", emailFilePath] let pipe = Pipe() process.standardOutput = pipe do { try process.run() process.waitUntilExit() let data = pipe.fileHandleForReading.readDataToEndOfFile() return String(data: data, encoding: .utf8) } catch { print("Error running .NET process: \(error)") return nil } } if let subject = getEmailSubject(emailFilePath: "/path/to/email.msg") { print("Email Subject: \(subject)") }
-
We evaluated Aspose.Email for Python via .NET and observed that the extracted
.whl
file size is approximately 193 MB. Since we only require the PersonalStorage component, we would like to explore ways to reduce the package size by excluding other unnecessary components. -
While working with Aspose.Email for Java, we encountered dependency issues when attempting to create a JRE for the application. Further investigation is needed to resolve these dependencies. we would like to explore ways to reduce the package size by excluding other unnecessary components for java as well.
Screenshot 2025-01-30 at 4.41.03 PM.jpg (162.3 KB)
PST_OLM_Parsing-1.0-SNAPSHOT.jar contains java code to work with aspose.email package
PST_OLM_Parsing.zip (26.6 KB)
Hello @RamPratap ,
To create a JAR file with all dependencies in a Maven project, you can use the Maven Shade Plugin.
This plugin creates a fat JAR that includes all dependencies.
- Add the following to your
pom.xml
:
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>3.4.1</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
- Run the following command to build the JAR with dependencies:
mvn clean package
- The final JAR will be in the
target/
directory, size > 10Mb, typically named:
target/PST_OLM_Parsing-1.0-SNAPSHOT.jar
Hello @RamPratap,
Unfortunately, the distribution of Aspose.Email for Python via .NET does not allow for the modular installation of individual components, such as PersonalStorage, as all features are bundled in a single package.
jdeps --print-module-deps --class-path “path/to/aspose-email.jar” PST_OLM_Parsing-1.0-SNAPSHOT.jar
- @sergey.vivsiuk On running the above command we are facing the below said issue of Not found for the aspose packages. We would like to generate a JRE for the same, so that we can embed it in our mac app bundle and use it.
Screenshot 2025-01-30 at 4.41.03 PM.jpg (162.3 KB)
- Also @margarita.samodurova We would like to explore ways to reduce the package size by excluding other unnecessary components for java as well. Is that possible?
Reducing the package size of Aspose.Email for Java by excluding unnecessary components isn’t supported, as Aspose products are distributed as unified libraries.