About¶
Fathom-Mailer provides your application with a thread-safe, singleton instance of a mail service.
Fathom-Mailer is based on Sisu-Mailer, depends on Fathom-REST, and is integrated
with your chosen Pippo Template Engine.
Installation¶
Add the Fathom-Mailer artifact.
<dependency>
    <groupId>com.gitblit.fathom</groupId>
    <artifactId>fathom-mailer</artifactId>
    <version>${fathom.version}</version>
</dependency>
Configuration¶
Configure your mail server.
mail {
  # SMTP connection parameters
  server = smtp.gmail.com
  port = 465
  useSsl = true
  useTls = true
  # SMTP authentication credentials
  username = username
  password = password
  # The 'from' name and address for sent emails
  systemName = Fathom
  systemAddress = fathom@gitblit.com
  # The recipient address for bounce emails from your SMTP server
  bounceAddress = fathom@gitblit.com
  # Enable verbose debug logging
  debug = false
}
Usage¶
Inject the Mailer where you need the mail service.
@Singleton
public class MyPostOffice {
  @Inject
  Mailer mailer;
}
Sending a Text Email¶
MailRequest request = mailer.newTextMailRequest("Plain Text Message", "This is a plain text message");
request.getToAddresses().add(new Address("user1@gitblit.com"));
mailer.send(request);
Sending an HTML Email¶
MailRequest request = mailer.newHtmlMailRequest("Html Test Message", "This is a <b>text/html</b> message");
request.getToAddresses().add(new Address("user1@gitblit.com"));
mailer.send(request);
Sending a Text Template Email¶
Templates are loaded from the templates resource directory on the classpath.  All specified template names are relative to this directory.
String subject = "Hi ${username}";
String templateName = "test_text";
Map<String, Object> parameters = new HashMap<>();
parameters.put("username", "Example User");
parameters.put("systemUsername", "Fathom");
MailRequest request = mailer.newTextTemplateMailRequest(subject, templateName, parameters);
request.getToAddresses().add(new Address("user1@gitblit.com"));
mailer.send(request);
Sending an HTML Template Email¶
Templates are loaded from the templates resource directory on the classpath.  All specified template names are relative to this directory.
String subject = "Hi ${username}";
String templateName = "test_html";
Map<String, Object> parameters = new HashMap<>();
parameters.put("username", "Example User");
parameters.put("systemUsername", "Fathom");
MailRequest request = mailer.newHtmlTemplateMailRequest(subject, templateName, parameters);
request.getToAddresses().add(new Address("user1@gitblit.com"));
mailer.send(request);