Fluent Mail API is a simple Java API that uses Sun's JavaMail API and a fluent interface/internal DSL to send e-mail messages.
Switch branches/tags
Nothing to show
Pull request Compare This branch is even with guilhermechapiewski:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
builds
lib-test
lib
src-examples/examples
src-test/com/guilhermechapiewski/fluentmail
src/com/guilhermechapiewski/fluentmail
.classpath
.gitignore
.project
LICENSE.txt
NOTICE.txt
README.textile
build.properties
build.xml

README.textile

About

Fluent Mail API is a simple Java API that uses Sun’s JavaMail API to send e-mail messages.

This is a project to demonstrate Fluent Interfaces usage, although it’s fully functional and production-ready. The API consists in an internal DSL to send e-mail messages that was designed to be dead-simple to use.

Usage example

new EmailMessage()
    .from("demo@guilhermechapiewski.com")
    .to("destination@address.com")
    .withSubject("Fluent Mail API")
    .withBody("Demo message")
    .send();

Comparison with JavaMail API

If you use pure JavaMail API, it will be something like this (from Java World tutorial):

// create some properties and get the default Session
Properties props = new Properties();
props.put("mail.smtp.host", _smtpHost);
Session session = Session.getDefaultInstance(props, null);
// create a message
Address replyToList[] = { new InternetAddress(replyTo) };
Message newMessage = new MimeMessage(session);
if (_fromName != null)
    newMessage.setFrom(new InternetAddress(from,
        _fromName + " on behalf of " + replyTo));
else
    newMessage.setFrom(new InternetAddress(from));
    newMessage.setReplyTo(replyToList);
    newMessage.setRecipients(Message.RecipientType.BCC, _toList);
    newMessage.setSubject(subject);
    newMessage.setSentDate(sentDate);
// send newMessage
Transport transport = session.getTransport(SMTP_MAIL);
transport.connect(_smtpHost, _user, _password);
transport.sendMessage(newMessage, _toList);

20 second tutorial

1) Get the JARs

Download the latest fluent-mail-api.jar (check all the releases available at the builds directory) and mail.jar. You can also download mail.jar from JavaMail API website.

2) Configuration

You can configure Fluent Mail API in two ways:

Create a simple fluent-mail-api.properties file and make it available in the classpath. Example:

smtp.server=my.smtp.server.com
auth.required=true
use.secure.smtp=false
smtp.username=gc
smtp.password=mypasswd

OR

Configure it programatically in your application startup:

EmailTransportConfiguration.configure("my.smtp.server.com", true, false, "gc", "mypasswd");

3) That’s it!

You are ready to start using the API!

Features

  • Really simple to use API.
  • Send email to, cc or bcc multiple addresses.
  • SMTP authentication support.
  • Secure SMTP support.
  • Send e-mail with attachments. (contribution by danielbussade)

License

Fluent Mail API is free software licensed under the Apache 2.0 License. For more details, check LICENSE.txt.