Sign up for a SparkPost account and visit our Developer Hub for even more content.
Use this library in Java applications to easily access the SparkPost Email API in your application.
Due to issue 57 and to maintain compatibility with old and new version of Apache HTTP Client SPARKPOST_BASE_URL
must not end with a /
slash.
Although we try to maintain library backward compatibility this migration may require some minor changes to your code. Substitution data was changed from Map<String, String>
to Map<String, Object>
. Most client code will just need to change their map to this new signature.
The SparkPost Java Library is available in this Maven Repository or in GitHub Releases.
<dependency>
<groupId>com.sparkpost</groupId>
<artifactId>sparkpost-lib</artifactId>
<version>0.27</version>
</dependency>
package com.sparkpost;
import com.sparkpost.exception.SparkPostException;
public class SparkPost {
public static void main(String[] args) throws SparkPostException {
String API_KEY = "YOUR API KEY HERE!!!";
Client client = new Client(API_KEY);
client.sendMessage(
"you@yourdomain.com",
"to@sparkpost.com",
"The subject of the message",
"The text part of the email",
"<b>The HTML part of the email</b>");
}
}
package com.sparkpost;
import com.sparkpost.exception.SparkPostException;
import com.sparkpost.transport.IRestConnection;
public class SparkPost {
public static void main(String[] args) throws SparkPostException {
String API_KEY = "YOUR API KEY HERE!!!";
// To use the SparkPost EU use the IRestConnection.SPC_EU_ENDPOINT endpoint
Client client = new Client(API_KEY, IRestConnection.SPC_EU_ENDPOINT);
client.sendMessage(
"you@yourdomain.com",
"to@sparkpost.com",
"The subject of the message",
"The text part of the email",
"<b>The HTML part of the email</b>");
}
}
With SparkPost you have complete control over all aspects of an email and a powerful templating solution.
private void sendEmail(String from, String[] recipients, String email) throws SparkPostException {
TransmissionWithRecipientArray transmission = new TransmissionWithRecipientArray();
// Populate Recipients
List<RecipientAttributes> recipientArray = new ArrayList<RecipientAttributes>();
for (String recipient : recipients) {
RecipientAttributes recipientAttribs = new RecipientAttributes();
recipientAttribs.setAddress(new AddressAttributes(recipient));
recipientArray.add(recipientAttribs);
}
transmission.setRecipientArray(recipientArray);
// Populate Substitution Data
Map<String, Object> substitutionData = new HashMap<String, Object>();
substitutionData.put("yourContent", "You can add substitution data too.");
transmission.setSubstitutionData(substitutionData);
// Populate Email Body
TemplateContentAttributes contentAttributes = new TemplateContentAttributes();
contentAttributes.setFrom(new AddressAttributes(from));
contentAttributes.setSubject("Your subject content here. {{yourContent}}");
contentAttributes.setText("Your Text content here. {{yourContent}}");
contentAttributes.setHtml("<p>Your <b>HTML</b> content here. {{yourContent}}</p>");
transmission.setContentAttributes(contentAttributes);
// Send the Email
RestConnection connection = new RestConnection(client, getEndPoint());
Response response = ResourceTransmissions.create(connection, 0, transmission);
logger.debug("Transmission Response: " + response);
}
The sample apps are held in apps/sparkpost-samples-app
with each sample's source code in apps/sparkpost-samples-app/src/main/java/com/sparkpost/samples/
.
To build the samples:
cd apps/sparkpost-samples-app
mvn compile
One the samples are built, create config.properties
by copying apps/sparkpost-samples-app/config.properties.example
and filling in your SparkPost API key and other test parameters.
You can now run your chosen sample through maven:
mvn exec:java -Dexec.mainClass=com.sparkpost.samples.SendEmailCCSample