Java

Java client backed by an HTTP client and Gson. Request and response shapes live under io.sevk.types.

Install

Maven
<dependency>
<groupId>io.sevk</groupId>
<artifactId>sevk-java</artifactId>
<version>1.1.0</version>
</dependency>
Gradle
implementation 'io.sevk:sevk-java:1.1.0'

Initialize

Create a Sevk with your API key.

import io.sevk.Sevk;
public class Main {
public static void main(String[] args) {
Sevk sevk = new Sevk("sevk_full_xxxxxxxx");
}
}

Send Email

HTML body

import io.sevk.Sevk;
import io.sevk.types.SendEmailRequest;
import io.sevk.types.SendEmailResponse;
public class Send {
public static void main(String[] args) {
Sevk sevk = new Sevk("sevk_full_xxxxxxxx");
SendEmailRequest request = new SendEmailRequest()
.from("sevk <[email protected]>")
.subject("Welcome")
.html("<h1>Welcome</h1><p>Thanks for signing up.</p>")
.replyTo("[email protected]");
SendEmailResponse response = sevk.emails().send(request);
System.out.println(response.isSingle() ? response.getId() : response.getIds());
}
}

With attachments

import io.sevk.types.EmailAttachment;
import java.util.List;
EmailAttachment pdf = new EmailAttachment()
.filename("invoice.pdf")
.content(base64Pdf)
.contentType("application/pdf");
sevk.emails().send(new SendEmailRequest()
.from("sevk <[email protected]>")
.subject("Your invoice")
.html("<p>Invoice attached.</p>")
.attachments(List.of(pdf)));

Send Bulk

import io.sevk.types.BulkEmailRequest;
import io.sevk.types.BulkEmailResponse;
import io.sevk.types.BulkEmailItem;
import java.util.List;
BulkEmailRequest req = new BulkEmailRequest().emails(List.of(
new BulkEmailItem().from("sevk <[email protected]>").to("[email protected]").subject("Welcome").html("<p>Hi 1</p>"),
new BulkEmailItem().from("sevk <[email protected]>").to("[email protected]").subject("Welcome").html("<p>Hi 2</p>")
));
BulkEmailResponse result = sevk.emails().sendBulk(req);
System.out.println(result.success + " / " + result.failed);

Contacts

import io.sevk.types.Contact;
import io.sevk.types.ContactListResponse;
import io.sevk.types.CreateContactRequest;
import io.sevk.types.ListParams;
import io.sevk.types.UpdateContactRequest;
import java.util.Map;
Contact contact = sevk.contacts().create("[email protected]",
new CreateContactRequest()
.subscribed(true)
.data(Map.of("firstName", "John", "plan", "pro"))
);
sevk.contacts().get(contact.getId());
sevk.contacts().update(contact.getId(),
new UpdateContactRequest().data(Map.of("plan", "enterprise"))
);
ListParams params = new ListParams().limit(50);
ContactListResponse contacts = sevk.contacts().list(params);
contacts.items.forEach(c -> System.out.println(c.getEmail()));
sevk.contacts().delete(contact.getId());

Audiences

import io.sevk.types.AudienceMutationResponse;
import io.sevk.types.CreateAudienceRequest;
import java.util.List;
AudienceMutationResponse audience = sevk.audiences().create(
new CreateAudienceRequest().name("Newsletter")
);
sevk.audiences().addContacts(audience.id, List.of(
"b2c3d4e5-f678-4901-abcd-ef1234567890",
"b2c3d4e5-f678-4901-abcd-ef1234567891"
));
sevk.audiences().listContacts(audience.id)
.items.forEach(c -> System.out.println(c.getEmail()));

Error Handling

import io.sevk.SevkException;
try {
sevk.emails().send(new SendEmailRequest()
.to("not-an-email")
.subject("Test")
.text("Hi"));
} catch (SevkException e) {
System.err.println(e.getStatusCode() + " " + e.getCode() + " " + e.getMessage());
}