use org.apache.sling.commons.crypto 1.0.0
1 file changed
tree: 80595bdaee2840c701125ed7d7ace51ac0ae31ad
  1. .gitignore
  2. .sling-module.json
  3. CODE_OF_CONDUCT.md
  4. CONTRIBUTING.md
  5. Jenkinsfile
  6. LICENSE
  7. README.md
  8. bnd.bnd
  9. pom.xml
  10. src/
README.md

Build Status Test Status 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

Example

    @Reference
    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")
        .replyTo("rocksteady@jamaica.example.net");
        .subject(subject)
        .text(text)
        .html(html)
        .attachment(attachment, "image/png", "attachment.png")
        .inline(inline, "image/png", "inline")
        .build();

    mailService.sendMessage(message);

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.smtps.server.external=true\
  -Dsling.test.mail.smtps.from=envelope-from@example.org\
  -Dsling.test.mail.smtps.host=localhost\
  -Dsling.test.mail.smtps.port=465\
  -Dsling.test.mail.smtps.username=username\
  -Dsling.test.mail.smtps.password=password\
  -Dsling.test.mail.from.address=from@example.org\
  -Dsling.test.mail.from.name=From\ Sender\
  -Dsling.test.mail.to.address=to@example.org\
  -Dsling.test.mail.to.name=To\ Recipient\
  -Dsling.test.mail.replyTo.address=replyto@example.org\
  -Dsling.test.mail.replyTo.name=Reply\ To