
org.bitbucket.gkutiel.Mailgun Maven / Gradle / Ivy
package org.bitbucket.gkutiel;
import static com.mashape.unirest.http.Unirest.post;
import java.util.concurrent.Future;
import com.mashape.unirest.http.HttpResponse;
import com.mashape.unirest.request.body.MultipartBody;
public class Mailgun {
interface From {
MultipartBody req();
default To to(final String... tos) {
final MultipartBody req = req();
for (final String to : tos)
req.field("to", to);
return () -> req;
}
}
interface Subject {
MultipartBody req();
default Future> send(final String html) {
return req().field("html", html).asStringAsync();
}
}
interface To {
MultipartBody req();
default Subject subject(final String text) {
return () -> req().field("subject", text);
}
}
private final String key;
private final String domain;
public Mailgun(final String domain, final String key) {
this.domain = domain;
this.key = key;
}
public From from(final String email) {
//@formatter:off
return () ->
post("https://api.mailgun.net/v3/" + domain + "/messages")
.basicAuth("api", key)
.field("from", email);
//@formatter:on
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy