Apache Sling Commons Messaging Mail

Clone this repo:
  1. dbee5a0 collect Google Truth and dependencies at the bottom by Oliver Lietz · 4 months ago master
  2. ae99a59 SLING-9697 Enable code coverage with JaCoCo by Oliver Lietz · 8 months ago
  3. cf304c7 style by Oliver Lietz · 8 months ago
  4. 72fdbde style by Oliver Lietz · 8 months ago
  5. aace9fb suppress warnings for rule java:S100 by Oliver Lietz · 8 months ago

Apache Sling

Build Status Test Status Coverage Sonarcloud Status JavaDoc Maven Central License

Apache Sling Commons Messaging Mail

This module is part of the Apache Sling project.

This module provides a simple layer on top of Jakarta Mail (former JavaMail) including a message builder and a service to send mails via SMTPS.

  • Mail Service: sends MIME messages.
  • Message Builder: builds plain text and HTML messages with attachments and inline images
  • Message ID Provider: allows overwriting default message IDs by custom ones


    MailService mailService;

    String subject = "Rudy, A Message to You";
    String text = "Stop your messing around\nBetter think of your future\nTime you straighten right out\nCreating problems in town\n…";
    String html = […];
    byte[] attachment = […];
    byte[] inline = […];

    MimeMessage message = mailService.getMessageBuilder()
        .from("dandy.livingstone@kingston.jamaica.example.net", "Dandy Livingstone")
        .to("the.specials@coventry.england.example.net", "The Specials")
        .attachment(attachment, "image/png", "attachment.png")
        .inline(inline, "image/png", "inline")


Integration Tests

Integration tests require a running SMTP server. By default a GreenMail server is started.

An external SMTP server for validating messages with real mail clients can be used by setting required properties:

mvn clean install\
  -Dsling.test.mail.from.name=From\ Sender\
  -Dsling.test.mail.to.name=To\ Recipient\
  -Dsling.test.mail.replyTo.name=Reply\ To