Saltar para a documentação
Java

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>
FirstEmail.java
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.