All Downloads are FREE. Search and download functionalities are using the official Maven repository.

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