It's a simple API meant to easily generate Microsoft Outlook message files (.msg). This library is based on Apache POI and is a 100% Java implementation.
Here the compatibility map of this API:
Version | JDK | Package |
---|---|---|
<= 1.9 | JDK 8 and upwards | javax |
>= 2.0 | JDK 11 and upwards | jakarta |
Simply add the jotlmsg.jar
and its dependencies to your classpath.
If you're using maven, then simply add the following dependency:
<dependency>
<groupId>ch.astorm</groupId>
<artifactId>jotlmsg</artifactId>
<version>2.0.1</version>
</dependency>
Create a new message:
OutlookMessage message = new OutlookMessage();
message.setSubject("Hello");
message.setPlainTextBody("This is a message draft.");
//creates a new Outlook Message file
message.writeTo(new File("myMessage.msg"));
//creates a javax.mail MimeMessage
MimeMessage mimeMessage = message.toMimeMessage();
Read an existing message:
OutlookMessage message = new OutlookMessage(new File("aMessage.msg"));
System.out.println(message.getSubject());
System.out.println(message.getPlainTextBody());
Managing recipients:
OutlookMessage message = new OutlookMessage();
message.addRecipient(Type.TO, "[email protected]");
message.addRecipient(Type.TO, "[email protected]", "Bill");
message.addRecipient(Type.CC, "[email protected]", "Steve");
message.addRecipient(Type.BCC, "[email protected]");
List<OutlookMessageRecipient> toRecipients = message.getRecipients(Type.TO);
List<OutlookMessageRecipient> ccRecipients = message.getRecipients(Type.CC);
List<OutlookMessageRecipient> bccRecipients = message.getRecipients(Type.BCC);
List<OutlookMessageRecipient> allRecipients = message.getAllRecipients();
Managing optional replyto recipients:
OutlookMessage message = new OutlookMessage();
message.setReplyTo(Arrays.asList("[email protected]", "[email protected]"));
List<String> replyToRecipients = message.getReplyTo();
Managing attachments:
OutlookMessage message = new OutlookMessage();
message.addAttachment("aFile.txt", "text/plain", new FileInputStream("data.txt")); //will be stored in memory
message.addAttachment("aDocument.pdf", "application/pdf", new FileInputStream("file.pdf")); //will be stored in memory
message.addAttachment("hugeFile.zip", "application/zip", a -> new FileInputStream("data.zip")); //piped to output stream
List<OutlookMessageAttachment> attachments = message.getAttachments();
The current implementation allows to create simple msg files with many recipients (up to 2048) and attachments (up to 2048). However, there is not current support of Microsoft Outlook advanced features like appointments or calendar integration, nor embedded messages.
Unfortunately, only plain text messages are supported. It is not possible to inject HTML for now.
This project is completely developed during my spare time.
Since I'm a big fan of cryptocurrencies and especially Cardano (ADA), you can send me some coins at the address below (check it here):
addr1q9sgms4vc038nq7hu4499yeszy0rsq3hjeu2k9wraksle8arg0n953hlsrtdzpfnxxw996l4t6qu5xsx8cmmakjcqhksaqpj66