Start sending email in minutes by using SparkPost's Java library. Click to Tweet
The SparkPost Java library is a popular way to integrate with SparkPost. If this describes your current task, this article will help you send email in a matter of a few minutes. If you’re a visual learner, check out this Getting Started video we have for the SparkPost Java Client Library.

I assume you have already created a SparkPost account and an API key.

Setting up a new project

As a Java developer I am sure you are more than familiar with how to add dependencies to your project. I will demonstrate doing so with Maven (mvn) in the code snippet below. If you are not using Maven, you’ll need to create the project and add the SparkPost library to it your normal way.

Let’s create the project.

Using the code above, we just created the following project structure:.

Now let’s build the base project:

Adding SparkPost Library Dependency

Now let’s edit the Maven Project Object Model (pom.xml) and add the SparkPost library dependency. You can find the code snippet with the latest version here. Add that to the dependencies element of the pom.xml file. Here is an example with the latest version as of the writing of this post:

Once the dependency is added, build the project again like this:

And with that, we’re ready to try it out!

Sending Your First Email

The easiest way to send an email is by using the SendMessage call. Here is an example:

To make this work for your own SparkPost account, you’ll want to make the following changes:

  1. In the above sample code, replace YOUR API KEY HERE with your SparkPost API key.
  2. Change  to an email address for your verified domain.
  3. Change to the address to which you want to send the email.
  4. Compile and run your code, and you will see the email arrive in the inbox.

More Advanced Examples

The sendMessage(...) function is helpful for getting up and running very quickly. However, you may need to do more advanced operations in the future. Here is an example to help you leverage the full power of the SparkPost API.

To make this work for your SparkPost account, you’ll want to make the same sort of changes as before:

  1. In that sample code, replace YOUR API KEY HERE with your SparkPost API key.
  2. Change to an email address for your verified domain.
  3. Change and to the addresses to which you want to send emails.
  4. Compile and run your code, and you will see the emails arrive in the inbox.

You can find many more examples of leveraging the SparkPost API here.


We’ve tried to make using SparkPost with Java as simple and enjoyable as writing any other Java code. If you run into any issues or have any questions, feel free to submit an issue on the Github repo or join us on our community Slack team in the #java channel. I’d love to hear from you.
—Chris Wilson




Getting started with the SparkPost Java Client Library

SparkPost Java Client Library

At SparkPost we know many of our largest customers interface to the REST API from a Java backend. Today we are pleased to announce our Java client library. This will make developing for SparkPost a breeze for Java developers. Let’s take a look at how to get started.

Getting Started

Using java-sparkpost is as simple as including the following in your project’s pom.xml:

The version is 0.8 as of this writing. You may want to change the version to the latest version.

Sending Your First Email

To follow along check out the source code and open it in Eclipse. You can follow these instructions to help get you started. Once you have the project set up and running let’s configure the samples project:

  1. cd apps/sparkpost-samples-app
  2. Copy to
  3. Open in your favorite text editor
  4. Change SPARKPOST_API_KEY to contain your API key. Make sure to create your API key with the “Transmissions: Read/Write” permission.
  5. Enter a valid from address for the key SPARKPOST_SENDER_EMAIL. The domain should be a verified sending domain.
  6. Modify SPARKPOST_FROM with a valid from address.
  7. Enter a comma delimited list of recipients for the key SPARKPOST_RECIPIENTS.
  8. Save the file.

Once the sample project has been configured open com.sparkpost.samples.SendEmailSample in Eclipse and let’s dive into the code.

Common Sample Code

To keep the samples simple they extend a base helper class called SparkPostBaseApp, which reads in the file. The SparkPost client is configured like this:client = this.newConfiguredClient(). In your own code you will likely have your own configuration mechanism such as Spring or some other configuration system. The code is written to be easily adaptable. The base class also has some helpers to load email templates from the file systems and get the from and recipients addresses that we configured in

This is how the client is setup and how to use some of the base class helpers:

Send Email Sample

This sendEmail method takes a from address and an array of recipients:

This code is building up the transmission which describes the email campaign that is being sent. You build up your list of RecipientAttributes and populate the ‘from’ and the email on the TemplateContentAttributes object. Once configured, you use the RestConnection and ResourceTransmissions classes to send the email to the server. Once you run this sample you should see this email in your recipient’s inbox:sample_email

Login to your SparkPost account and open the Summary Report and you will see data for your email:


In my test I sent to 100 test users, so in this report there are 100 emails sent and 13 of which were opened. You can play around with to see what happens when you have bad email addresses or to test for other recipients.

Your Turn

Now it’s your turn. We can’t wait to see how you use java-sparkpost. As you explore the library here are some other samples that may help you solve your specific task:

Sample Description


Basic example of sending a local RFC822 email from local file system to a list of recipients


Example of creating a very simple email template on the server


Stores a raw RFC822 template on server


Stores an HTML template on server
ListAllSendingDomains Prints a list of domains that are configured for SparkPost account
ListAllTemplatesSample Displays the name and last updated date of templates stored on the server
ListAllTransmissionsSample Logs a list of transmission summary object

Demonstrates how to list all your webhooks


Want to Contribute?

We love pull requests for code enhancements, new samples, or better testing and documentation. Head on over to our Github repo and create an issue or pull request. We look forward to hearing from you.