Skip to content

Releases: bbottema/simple-java-mail

v9.1.0

Choose a tag to compare

@bbottema bbottema released this 11 Jul 10:29

v9.1.0 - Maven Central

  • #653: a configurable SMTP client hostname for the EHLO / HELO command.
  • #654: SMTP submission receipts for reading the server acceptance response after a send.
  • No breaking changes; existing sendMail(...) behavior is unchanged.

v9.0.4

Choose a tag to compare

@bbottema bbottema released this 10 Jul 22:59

v9.0.4

Patch release for the 9.0 line.

  • Reject RFC 2047 encoded-word syntax inside email address specs during validation (#652). Encoded display names remain supported.
  • Includes the standalone CLI archives and sample Log4j2 config as release assets.

v9.0.3

Choose a tag to compare

@bbottema bbottema released this 10 Jul 15:05

Patch release

This patch rolls the 9.0 line forward with the Outlook plain-text RTF rendering fix from #651 and the queued Java 8-compatible maintenance already merged on master.

  • #651: Email#getHTMLText() no longer exposes browser-default <pre> styling for Outlook plain-text RTF conversion. The fix comes through outlook-message-parser 1.16.1 and rtf-to-html 2.0.2, preserving line breaks with <div style="white-space:pre-wrap"> instead.

The full 9.0 release notes are maintained in the v9.0.0 - v9.0.3 release and in the README/RELEASE notes.

v9.0.2

Choose a tag to compare

@bbottema bbottema released this 10 Jul 12:00

Patch artifact release for v9.0.0.

The 9.0.2 changes are folded into the main v9.0.0 - v9.0.2 release notes, following the patch-note policy.

v9.0.0 - v9.0.3

Choose a tag to compare

@bbottema bbottema released this 08 Jul 00:36

The Short Version

Simple Java Mail has been going strong-ish for about 20 years, and 9.0.0 rolls roughly two years of backlog into a new major release.

simple-java-mail
└── outlook-message-parser
    └── rtf-to-html
└── java-utils-mail-dkim
└── java-utils-mail-smime
└── smtp-connection-pool
    └── clustered-object-pool
        └── generic-object-pool
└── java-socks-proxy-server

Across Simple Java Mail and the supporting libraries that keep the stack moving, more than 100 GitHub issues and PRs were reviewed, fixed, merged, or closed while keeping the project Java 8-compatible.

Major features: the dedicated recipient builder API, per-recipient S/MIME certificates, first-class Delivery Status Notification support, pre-encoded attachment and embedded-image sending, mailer-level DKIM defaults, and simple batch/open-connection sending without the batch module.
Enhancements: broader Outlook conversion metadata, MIME resource handling, content-transfer encoding control, debug routing, local SMTP bind configuration, batch cluster configuration, and Java module support.

Migration Note

This is a breaking major release. The old recipient-addition method jungle has been cleaned up in favor of the recipient builder API, so code that relied on the removed recipient overloads needs to migrate. Start with the 9.0 migration notes before upgrading.

Major Features

  • #613: Recipient builder API: added dedicated builders for constructing single recipients and recipient collections.
  • #297: Per-recipient S/MIME certificates: enabled encrypted mail for multiple recipients with different certificates.
  • #574: Delivery Status Notification (DSN): added first-class DSN configuration.
  • #573: Pre-encoded resources: added pre-encoded attachment and embedded-image APIs.
  • #196: Mailer-level DKIM defaults: added default DKIM signing configuration so DKIM can be configured once per Mailer.
  • #569: Simple batch and open-connection sending: added sendMailsInSimpleBatch(...) for sequential batch work without the batch module and withOpenConnection(...) for callback-scoped reuse of a single SMTP connection.

Enhancements

  • #614: Outlook conversion metadata: added explicit result APIs for inspecting source .msg headers and metadata without copying structural headers into converted emails, resolving #609.
  • #645: Outlook last-modifier metadata: exposed PR_LAST_MODIFIER_NAME / 0x3FFA as OutlookMessageData#getLastModifierName() without treating it as sender identity.
  • #605: Per-body content-transfer encoding: added Content-Transfer-Encoding configuration for plain text, HTML, and calendar content.
  • #566, #597, #602, #607: MIME resource Content-ID handling: improved explicit IDs, parsed embedded images, and generated fallback IDs.
  • #589: Jakarta Mail debug output: added configurable debug output routing.
  • #568: Local SMTP bind address: added configuration for multi-IP SMTP hosts.
  • #565, #618: Batch cluster configuration: fixed Java API cluster configuration and added property-defined cluster configurations for property-file and Spring-configured clustered sending.
  • #572, #571: S/MIME conversion leniency: tolerate unsupported S/MIME payloads during Outlook conversion and preserve parsed email content when signature verification fails.
  • #606: MIME type sanitizing: sanitize malformed resource MIME types before generating attachment and embedded-image headers.
  • #541: Resource headers: removed the non-standard filename parameter from resource Content-Type headers; filenames remain available through Content-Disposition.
  • #265, #237: Java module support: added Java 9 module descriptors to the core and facade jars so modular applications can require org.simplejavamail directly.

Fixes and Compatibility

  • #615: Async test connections: fixed MailerGenericBuilder.async() so no-arg testConnection() uses the configured async default.
  • #611: SMTPS custom SSL socket factories: fixed custom SSL socket factory configuration for SMTPS mailers.
  • #535: Async failure reporting: let async send and connection-test failures surface through the returned CompletableFuture without duplicate framework error logs.
  • #583: Java 25 CLI startup: fixed CLI startup on Java 25.
  • #616: CLI optional-argument detection: removed the runtime JetBrains annotation fork from CLI optional-argument detection.
  • Standalone CLI command cleanup: send, connect, and validate now wait for command work and close mailer resources, preventing batch-module resources from keeping the process alive.

Dependency and Supporting-Library Updates

  • Core dependency maintenance: bumped JMail to 2.1.0 (#634), commons-io to 2.22.0 (#579, #627), Kryo to 5.6.2 (#586), Zip4j to 2.11.5 (#587), SubEthaSMTP to 7.2.2 (#593, #632), Angus Mail to 2.0.4 (#604), Jakarta Mail API to 2.1.5 with Jakarta Activation / Angus Activation alignment, Objenesis to 3.5 (#580, #635), Lombok to 1.18.46 (#636), AssertJ Core to 3.27.7 (#622), and SpotBugs annotations to 4.10.2 (#629).
  • Logging dependencies: aligned Log4j to 2.25.4 (#624) and SLF4J API to 2.0.18 (#631), keeping the Log4j bridge on log4j-slf4j2-impl for SLF4J 2.x.

Supporting Libraries

  • utils-mail-dkim 3.3.0: added configurable DNS provider URL support for DKIM domain-key TXT lookups, fixed the published automatic module name, and kept packaged artifacts free of JaCoCo probes.
  • clustered-object-pool 4.0.1 (#6): added cluster-specific Java configuration for pool defaults, claim timeout, and load balancing.
  • smtp-connection-pool 3.0.1 (#8): pulled in clustered-object-pool 4.0.1 so the batch-module fix for #565 can keep connection-pool defaults per cluster key.
  • smtp-connection-pool 3.0.0: made clustered SMTP pools generic over their cluster-key type and kept already-unusable connections from surfacing as generic pool error logs during transport close.
  • java-socks-proxy-server 4.2.0: updated SOCKS live tests to use dynamic proxy ports instead of fixed ports.
  • outlook-message-parser 1.16.1: improved Outlook .msg conversion by preserving nested message attachment metadata, fixing sent-date extraction (#534), fixing recipient bucket parsing (#504), broadening S/MIME detection, improving RTF-only body conversion (#576), avoiding browser-default <pre> styling for Outlook plain-text RTF conversion (#651), updating Apache POI, and exposing Outlook last-modifier source metadata.

Build and Test Maintenance

  • Build plugins and test stack: bumped Maven Surefire Plugin to 3.5.6 (#592, #625), Maven Clean Plugin to 3.5.0 ([#626](ht...
Read more

v8.12.6

Choose a tag to compare

@bbottema bbottema released this 18 Apr 13:36

#595: [bug] Spring configuration - fix support for simplejavamail.extraproperties

v8.12.5 maintenance release

Choose a tag to compare

@bbottema bbottema released this 18 Apr 13:36

Bumped PATCH versions of various dependencies #553, #554, #555, #562, #567

v8.12.4

Choose a tag to compare

@bbottema bbottema released this 12 Dec 19:25

#558: [bug] Mailer.close() exception because it attempts to shutdown batch-module connection pools, even if not available on the classpath

v8.12.13

Choose a tag to compare

@bbottema bbottema released this 25 Nov 10:31

#563: [enhancement] Add getter for Authenticated SOCKS server port

v8.12.2

Choose a tag to compare

@bbottema bbottema released this 05 Oct 09:19

#552: [bug] support iCalendar events with METHOD defined in body instead of Content-Type