This Java module allows you to quickly and easily send emails through SendGrid using Java.
Version 2.x.x
, behaves differently in the addTo
method. In the past this method defaulted to using the SMTPAPI
header. Now you must explicitly call the addSmtpApiTo
method. More on the SMTPAPI
section.
// SendGridExample.java
import com.sendgrid.*;
public class SendGridExample {
public static void main(String[] args) {
SendGrid sendgrid = new SendGrid("SENDGRID USERNAME", "SENDGRID_PASSWORD");
SendGrid.Email email = new SendGrid.Email();
email.addTo("[email protected]");
email.setFrom("[email protected]");
email.setSubject("Hello World");
email.setText("My first email with SendGrid Java!");
try {
SendGrid.Response response = sendgrid.send(email);
System.out.println(response.getMessage());
}
catch (SendGridException e) {
System.err.println(e);
}
}
}
Compile and run this example with
$ javac -classpath sendgrid-1.2.1-jar.jar:. SendGridExample.java && java -classpath sendgrid-1.2.1-jar.jar:. SendGridExample
Choose your installation method - Maven w/ Gradle (recommended), Maven, or Jar file (not recommended).
Add the following to your build.gradle file in the root of your project.
...
dependencies {
...
compile 'com.sendgrid:sendgrid-java:2.1.0'
}
repositories {
mavenCentral()
}
...
Then import the library - in the file appropriate to your Java project.
import com.sendgrid.SendGrid;
Add following in the dependencies
tag of your pom.xml
file.
<dependency>
<groupId>com.sendgrid</groupId>
<artifactId>sendgrid-java</artifactId>
<version>2.1.0</version>
</dependency>
Then import the library - in the file appropriate to your Java project.
import com.sendgrid.SendGrid;
You can just drop the jar file in. It's a fat jar - it has all the dependencies built in.
import com.sendgrid.*;
To begin using this library, initialize the SendGrid object with your SendGrid credentials.
import com.sendgrid.SendGrid;
SendGrid sendgrid = new SendGrid("sendgrid_username", "sendgrid_password");
Add your message details.
Email email = new Email();
email.addTo("[email protected]");
email.addToName("Example Guy");
email.setFrom("[email protected]");
email.setSubject("Hello World");
email.setText("My first email through SendGrid");
Send it.
sendgrid.send(email);
email.addTo("[email protected]");
// or
email.addTo(["[email protected]", "[email protected]"]);
// or
email.addTo("[email protected]", "Foo Bar");
email.setTo(["[email protected]", "[email protected]"]);
email.addToName("Foo");
// or
email.addToName(["Foo", "Bar"]);
email.setToName(["Foo", "Bar"]);
email.addCc("[email protected]");
// or
email.addCc(["[email protected]", "[email protected]"]);
email.setCc(["[email protected]", "[email protected]"]);
email.addBcc("[email protected]");
// or
email.addBcc(["[email protected]", "[email protected]"]);
email.setBcc(["[email protected]", "[email protected]"]);
email.setFrom("[email protected]");
email.setFromName("Other Dude");
email.setReplyTo("[email protected]");
email.setSubject("Hello World");
email.setText("This is some text of the email.");
email.setHtml("<h1>My first email through SendGrid");
email.addAttachment("text.txt", "contents");
// or
email.addAttachment("image.png", new File("./image.png"));
// or
email.addAttachment("text.txt", new InputStream(new File("./file.txt")));
// First, add an attachment
email.addAttachment("image.png", new File("./image.png"));
// Map the name of the attachment to an ID
email.addContentId("image.png", "ID_IN_HTML")
// Map the ID in the HTML
email.setHtml("<html><body>TEXT BEFORE IMAGE<img src=\"cid:ID_IN_HTML\"></img>AFTER IMAGE</body></html>")
SendGrid sendgrid = new SendGrid("SENDGRID USERNAME", "SENDGRID_PASSWORD");
HttpHost proxy = new HttpHost("server", 3128);
CloseableHttpClient http = HttpClientBuilder.create().setProxy(proxy).setUserAgent("sendgrid/" + sendgrid.getVersion() + ";java").build();
sendgrid.setClient(http);
The mail object extends the SMTPAPI object which is found in STMAPI-Java.
email.getSMTPAPI();
email.addSmtpApiTo("[email protected]");
// or
email.addSmtpApiTo(["[email protected]", "[email protected]"]);
email.addSubstitution("key", "value");
JSONObject subs = header.getSubstitutions();
email.setSubstitutions("key", ["value1", "value2"]);
JSONObject subs = header.getSubstitutions();
email.addUniqueAarg("key", "value");
// or
Map map = new HashMap<String, String>();
map.put("unique", "value");
email.setUniqueArgs(map);
// or
JSONObject map = new JSONObject();
map.put("unique", "value");
email.setUniqueArgs(map);
// or
email.setUniqueArgs(map);
JSONObject args = email.getUniqueArgs();
email.addCategory("category");
String[] cats = email.getCategories();
email.addSection("key", "section");
JSONObject sections = email.getSections();
You can enable and configure Apps.
email.addFilter("filter", "setting", "value");
email.addFilter("filter", "setting", 1);
JSONObject filters = email.getFilters();
Example enabling bcc app:
SendGrid sendgrid = new SendGrid("sendgrid_username", "sendgrid_password");
sendgrid.addTo("[email protected]");
...
sendgrid.addFilter("bcc", "enabled", 1);
sendgrid.addFilter("bcc", "email", "[email protected]");
email.setASMGroupId(1);
email.setSendAt(1409348513);
- Fork it
- Create your feature branch (
git checkout -b my-new-feature
) - Commit your changes (
git commit -am 'Added some feature'
) - Push to the branch (
git push origin my-new-feature
) - Create new Pull Request
The existing tests in the src/test
directory can be run using gradle with the following command:
$ ./gradlew test -i
$ ./gradlew build
We have an example app using this library. This can be helpful to get a grasp on implementing it in your own app.
github.com/scottmotte/sendgrid-java-example
Licensed under the MIT License.