This Java module allows you to quickly and easily send emails through SendGrid using Java.
import com.github.sendgrid.SendGrid;
SendGrid sendgrid = new SendGrid("sendgrid_username", "sendgrid_password");
sendgrid.addTo("[email protected]");
sendgrid.setFrom("[email protected]");
sendgrid.setSubject("Hello World");
sendgrid.setText("My first email through SendGrid");
sendgrid.send();
There are multiple ways to install this library. I recommend using Gradle.
Add the following to your build.gradle file in the root of your project.
...
repositories {
mavenCentral()
add(new org.apache.ivy.plugins.resolver.URLResolver()) {
name = 'GitHub'
addArtifactPattern 'https://github.com/sendgrid/sendgrid-java/raw/v[revision]/repo/com/github/sendgrid/[revision]/sendgrid-[revision]-jar.jar'
}
}
dependencies {
...
compile 'com.github.sendgrid:sendgrid:0.1.2'
}
...
Then import the library - in the file appropriate to your Java project.
import com.github.sendgrid.SendGrid;
You can just drop the jar file in. It's a fat jar - it has all the dependencies built in.
Copy and paste the SendGrid.java file into your project. That file is available here: https://github.com/sendgrid/sendgrid-java/blob/master/src/main/java/com/github/sendgrid/SendGrid.java
Then import the library - in the file appropriate to your Java project.
import com.github.sendgrid.SendGrid;
- You need to include the http-request library from kevinsawicki.
- You need to include the json library from chargebee
I'd like to get this on Maven. Please +1 your support if you'd like to see it on Maven as well.
There is a sendgrid-java-example app to help jumpstart your development.
To begin using this library, initialize the SendGrid object with your SendGrid credentials.
import com.github.sendgrid.SendGrid;
SendGrid sendgrid = new SendGrid("sendgrid_username", "sendgrid_password");
Add your message details.
sendgrid.addTo("[email protected]");
sendgrid.addToName("Example Guy");
sendgrid.setFrom("[email protected]");
sendgrid.setSubject("Hello World");
sendgrid.setText("My first email through SendGrid");
Send it.
sendgrid.send();
SendGrid sendgrid = new SendGrid("sendgrid_username", "sendgrid_password");
sendgrid.addTo("[email protected]");
sendgrid.addTo("[email protected]");
You can add multiple to
s as necessary. She will get the email as if it was sent solely to her.
SendGrid sendgrid = new SendGrid("sendgrid_username", "sendgrid_password");
sendgrid.addTo("[email protected]");
sendgrid.addToName("Example Guy");
sendgrid.addTo("[email protected]");
sendgrid.addToName("Other Gal");
You can add multiple toname
s as necessary. They should be set in the same array order as the emails.
SendGrid sendgrid = new SendGrid("sendgrid_username", "sendgrid_password");
sendgrid.addTo("[email protected]");
...
sendgrid.setFrom("[email protected]");
SendGrid sendgrid = new SendGrid("sendgrid_username", "sendgrid_password");
sendgrid.addTo("[email protected]");
...
sendgrid.setFrom("[email protected]");
sendgrid.setFromName("Other Dude");
SendGrid sendgrid = new SendGrid("sendgrid_username", "sendgrid_password");
sendgrid.addTo("[email protected]");
...
sendgrid.setReplyTo("[email protected]");
SendGrid sendgrid = new SendGrid("sendgrid_username", "sendgrid_password");
sendgrid.addTo("[email protected]");
...
sendgrid.setSubject("Hello World");
SendGrid sendgrid = new SendGrid("sendgrid_username", "sendgrid_password");
sendgrid.addTo("[email protected]");
...
sendgrid.setText("This is some text of the email.");
SendGrid sendgrid = new SendGrid("sendgrid_username", "sendgrid_password");
sendgrid.addTo("[email protected]");
...
sendgrid.setHtml(<h1>My first email through SendGrid");
import java.io.File;
SendGrid sendgrid = new SendGrid("sendgrid_username", "sendgrid_password");
sendgrid.addTo("[email protected]");
...
sendgrid.addFile(new File("../path/to/file.txt"));
If you need to add files from an InputStream (maybe you're on Google App Engine and have the contents in a byte array), here is how.
import java.io.ByteArrayInputStream;
SendGrid sendgrid = new SendGrid("sendgrid_username", "sendgrid_password");
sendgrid.addTo("[email protected]");
...
byte[] contents = somehowGenerateAttachmentContents();
SendGrid.Attachment attachment1 = new SendGrid.Attachment("filename.txt", new ByteArrayInputStream(contents));
sendgrid.addFile(attachment1);
sendgrid.send();
Use multiple addTo
s as a superior alternative to setBcc
.
SendGrid sendgrid = new SendGrid("sendgrid_username", "sendgrid_password");
sendgrid.addTo("[email protected]");
sendgrid.addTo("[email protected]");
sendgrid.addTo("[email protected]");
...
If you still absolutely need to use Bcc, you can use sendgrid.addBcc("[email protected]")
;
You can add custom headers.
SendGrid sendgrid = new SendGrid("sendgrid_username", "sendgrid_password");
sendgrid.addTo("[email protected]");
...
sendgrid.addHeader("X-Sent-Using", "SendGrid-API");
sendgrid.addHeader("X-Transport", "web");
To add SendGrid style headers for things such as categories or filters, do the following.
SendGrid sendgrid = new SendGrid("sendgrid_username", "sendgrid_password");
sendgrid.addTo("[email protected]");
...
sendgrid.addHeader("X-SMTPAPI", "{\"category\":\"My New Category\"}");
- 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:
gradle build
gradle build
(If you don't have gradle install it. If on a mac, you can run brew install gradle
)
We have an example app using this library. This can be helpful to get a grasp on implementing it in your own app. The example below is a spring based application.
github.com/scottmotte/spring-attack
Licensed under the MIT License.