Instalar
Um só artefacto no Maven Central, Java 17 ou superior, sem dependências.
Instalar
A versão atual é a 0.0.1. Tem um método para cada método do SDK de TypeScript, e a verificação de paridade do pacote faz falhar a compilação quando falta algum ou quando envia um pedido diferente.
<dependency> <groupId>uk.openemail</groupId> <artifactId>openemail</artifactId> <version>0.0.1</version></dependency>import java.util.Map;import uk.openemail.Body;import uk.openemail.OpenEmail; public final class FirstEmail { public static void main(String[] args) { OpenEmail client = new OpenEmail(); Map<String, Object> email = client.emails().send(Body.of( "from", "Acme Billing <[email protected]>", "to", "[email protected]", "subject", "Your September invoice", "html", "<p>Invoice attached.</p>" )); System.out.println(email.get("id") + " " + email.get("status")); }}new OpenEmail() lê a chave de OPENEMAIL_API_KEY, por isso o código não contém nenhuma credencial. Use OpenEmail.builder().apiKey(...) quando a sua configuração estiver noutro sítio.
O corpo de um pedido é um Map<String, Object> cujas chaves mantêm os nomes da API, por isso scheduledAt escreve-se aqui tal como na referência da API. Body.of constrói um que mantém a ordem em que o escreveu e aceita valores null. Uma resposta é o JSON descodificado como um Map<String, Object>, por isso email.get("id") lê o id.
O facto de send ter terminado não significa que a mensagem tenha partido. Um envio agendado ou cancelável volta como queued ou scheduled e resolve-se mais tarde. Leia status, e não o facto de a chamada ter terminado.
Onde corre
Java 17 ou superior, em qualquer linguagem da JVM. O jar não tem dependências e dá ao seu módulo o nome uk.openemail para as aplicações no caminho de módulos.
O cliente é imutável e pode ser partilhado entre threads com segurança. Construa um quando a aplicação arranca e mantenha-o: ele detém um HttpClient, que reutiliza as suas ligações.
O cliente transporta uma chave de API do espaço de trabalho que pode enviar correio e ler a caixa de correio, por isso o seu lugar é num servidor, numa tarefa ou numa ferramenta que corra na sua própria máquina. Guarde a chave numa variável de ambiente ou num cofre de segredos, nunca no código.