The Simple Java Mail library is a thin layer on top of Jakarta Mail that allows users to define emails on a high abstraction level without having to deal with mumbo jumbo such as 'multipart' and 'mimemessage'.
v7.0.2 (25-January-2022): #329 Enhancement: Exceptions cause error-level logging in addition to rethrowing the exception, but should just include the message in a custom exception
v7.0.2 (25-January-2022): #378 Bug: package org.simplejavamail.internal.modules causes split package problem in Java9+
It has been two years since the last major release, but 7.0.0 finally here!
What's new
Major features:
#322 Simple Java Mail migrated to Java 8 finally (see notes below)
#295 And also switched to JavaMail's successor Jakarta Mail 2.0.1 (see notes below)
#323 Solved the great CLI performance problem (now executes near instantly)
#319 Replaced the underlying regex-based email-address validation library with the lexer based JMail, which is faster, correcter, documented better and is more up-to-date with RFC's
#367 The sendMail/testConnection methods now have proper support for CompletableFuture
Bugfixes:
#352 Bug: names regex groups are not supported in Android JVM
#326 Bug: NullPointer when parsing Outlook Message with nested empty Outlook message
#330 Bug: cli expected --mailer arguments duplicated 3 times
#327 Implement toString() for Mailer instances for debugging purposes
About the migration
Updating to Java8/Jakarta 2.0.1 posed a challenge as the 3rd party S/MIME library java-utils-mail-smime has been abandoned/archived while developing Simple Java Mail. Furthermore, it was still under LGPL3 license while everything else is ApacheV2.
Thankfully, I obtained permissions from the maintainers -as well as original developers from decades ago on SourceForge- to take both java-utils-mail-smime and java-utils-mail-dkim under my wings at Simple Java Mail and change the licensing model! You can now post issues and pull requests here:
v6.7.5 (26-December-2021): #338 Enhancement: Also return AsyncResponse from plain Mailer.sendEmail(singleArgument) as async can be configured through MailerBuilder now
v6.7.4 (25-December-2021): #331 Enhancement: Coalesce empty SMTP server arguments to null to support CLI better
v6.7.3 (25-December-2021): #335 Bugfix: Precondition nonNull check also checks nonEmpty and breaks on clearEmailAddressCriteria
v6.7.2 (25-December-2021): #318 Maintenance: Allow zero data attachments so Outlook message conversions don't crash and burn
v6.7.1 (25-December-2021): #346 Bugfix: Add option to parse MimeMessage without fetching attachment data from server - Properly return named datasource without fetching all the data if unwanted
v6.7.0 (25-December-2021): #356 Enhancement: Improve for support for Android < 8.0 (Fix NoClassDefFoundError)
v6.7.0 (25-December-2021): #351 Bugfix: emlToEmail() and mimeMessageToEmail() break on mesages with duplicate names and legacy empty nested messages
v6.7.0 (25-December-2021): #347 Maintenance: Reduce log-spam and prevent exception on every module availability check
v6.7.0 (25-December-2021): #346 Feature: Add option to parse MimeMessage without fetching attachment data from server
v6.5.0 (16-February-2021): #298 Enhancement: Nested Outlook messages aren't discarded anymore, but parsed to serialized Email objects
v6.5.0 (16-February-2021): #292 Bugfix: NullPointerException in SmimeUtilFixed when protocol is missing (which is valid)
v6.5.0 (16-February-2021): #289 Bugfix: Support multiple headers with same key
This release breaks all GET/SET api regarding headers used as map (Map<String, T> -> Map<String, Collection<T>>)
This release might break api in the rare case you relied on the attachment list and you have nested Outlook .msg attachments (previously omitted in the results)
v6.0.1, v1.7.3: #27 When from name/address are not available (unsent emails), these fields are filled with binary garbage
v6.0.1, v1.7.2: #26 To email address is not handled properly when name is omitted
v6.0.0, v1.7.1: #25 NPE on ClientSubmitTime when original message has not been sent yet
v6.0.0, v1.7.1: #23 Bug: _nameid directory should not be parsed (and causing invalid HTML body)
v6.0.0, v1.7.0: #18 Upgrade Apache POI 3.9 -> 4.x (but managed back for Simple Java Mail due to incompatibility with Java 7)
v6.0.0, v1.6.0: #21 Multiple TO recipients are not handles properly
v6.0.0, v1.5.0: #20 CC and BCC recipients are not parsed properly
v6.0.0, v1.5.0: #19 Use real Outlook ContentId Attribute to resolve CID Attachments
v6.0.0, v1.4.1: #17 Fixed encoding error for UTF-8's Windows legacy name (cp)65001
v6.0.0, v1.4.0: #9 Replaced the RFC to HTML converter with a brand new RFC-compliant convert! (thanks to @fadeyev!)
v6.0.0, v1.3.0: #14 Dependency problem with Java9+, missing Jakarta Activation Framework
v6.0.0, v1.3.0: #13 HTML start tags with extra space not handled correctly
v6.0.0, v1.3.0: #11 SimpleRTF2HTMLConverter inserts too many tags
v6.0.0, v1.3.0: #10 Embedded images with DOS-like names are classified as attachments
v6.0.0, v1.3.0: #9 SimpleRTF2HTMLConverter removes some valid tags during conversion
v6.0.0, v1.2.1: Ignore non S/MIME related content types when extracting S/MIME metadata
v6.0.0, v1.2.1: Added toString and equals methods to the S/MIME data classes
v6.0.0, v1.1.21: Upgraded mediatype recognition based on file extension for incomplete attachments
v6.0.0, v1.1.21: Added / improved support for public S/MIME meta data
v6.0.0, v1.1.20: #7 Fix missing S/MIME header details that are needed to determine the type of S/MIME application
v6.0.0, v1.1.19: Log rtf compression error, but otherwise ignore it and keep going and extract what we can.
A big shout out to @dnault (runtime javadoc), @remkop (picocli) and @markenwerk
(S/MIME and DKIM) for working with me to make the
libraries work with JDK7+ and do what Simple Java Mail needed! Finally a great many thanks the numerous contributors on Simple Java Mail as well as
outlook-message-parser - this release would not be there without you.
#215 Bug: Current DKIM header canonicalization can lead to invalid DKIM
Note this release should have no impact, but nonetheless is a minor update so you can determine for yourself if this update would cause issues.
The release changes DKIM header canonicalization from SIMPLE to RELAXED.
#213 Update from javax.mail:1.6.0 to jakarta.mail:1.6.3
Note that dependencies that switched as well have been updated as part of this change. This includes the optional DKIM library and the email validation library:
v5.1.7 (22-May-2019): #171 Header validation tripping on known safe emails due to References header
v5.1.6 (27-April-2019): #204 A Concurrent exception when an async process starts when the previous connection pool didn't shutdown in time
v5.1.6 (27-April-2019): #204 B Exceptions in threads are now caught and logged and don't bubble up anymore. Note that more comprehensive exception handling will be available in 6.0.0 (#148).
v5.1.5 (24-April-2019): #202 Fixed ConcurrentModificationException when moving invalid embedded images as regular attachments
v5.1.4 (5-April-2019): #163 Fixed missing mimetype for attachments when parsing Outlook messages where mimeTag was not included
v5.1.3 (15-Januari-2019): Updated to newer rfc-validator version, which fixed a regression bug in that library
v5.1.2 (9-Januari-2019): #189 Bugfix for missing timeout config for .testConnection() function
v5.1.1 (22-December-2018): #190 Fix for transitive dependency clash because of emailaddress-rfc2822 library
v5.0.5 (3-Oktober-2018): #137 When replying to an email with HTML, the result body is empty
v5.0.4 (22-September-2018): #168 Properties aquired through ConfigLoader should be typed explicitly and converted if necessary
v5.0.3 (11-April-2018): #136 ServerConfig class should be public API
v5.0.2 (7-April-2018): #135 trustingAllHosts should be public on the Builder API
v5.0.2 (7-April-2018): #131 NamedDataSource should implement EncodingAware
v5.0.1 (10-March-2018): #130 java.lang.ClassNotFoundException: net.markenwerk.utils.mail.dkim.DkimMessage. Solves the issue of missing optional class DKIM even when not used
请发表评论