Instalación
Un solo artefacto en Maven Central, Java 17 o superior, sin dependencias.
Instalación
La versión actual es 0.0.1. Tiene un método para cada método del SDK de TypeScript, y la comprobación de paridad del paquete hace fallar la compilación cuando falta alguno o envía una petición distinta.
<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() lee la clave de OPENEMAIL_API_KEY, así que el código no contiene ninguna credencial. Usa OpenEmail.builder().apiKey(...) cuando tu configuración esté en otro sitio.
El cuerpo de una petición es un Map<String, Object> cuyas claves conservan los nombres de la API, así que scheduledAt se escribe aquí igual que en la referencia de la API. Body.of construye uno que conserva el orden en que lo escribiste y admite valores null. Una respuesta es el JSON decodificado como un Map<String, Object>, así que email.get("id") lee el id.
Que send devuelva un resultado no significa que el mensaje haya salido. Un envío programado o cancelable vuelve como queued o scheduled y se resuelve más tarde. Lee status, no el hecho de que la llamada haya devuelto algo.
Dónde funciona
Java 17 o superior, en cualquier lenguaje de la JVM. El jar no tiene dependencias y llama a su módulo uk.openemail para las aplicaciones en la ruta de módulos.
El cliente es inmutable y se puede compartir entre hilos sin riesgo. Crea uno cuando arranque la aplicación y consérvalo: mantiene un HttpClient, que reutiliza sus conexiones.
El cliente lleva una clave de API del espacio de trabajo que puede enviar correo y leer el buzón, así que su sitio es un servidor, un trabajo en segundo plano o una herramienta que se ejecute en tu propia máquina. Guarda la clave en una variable de entorno o en un almacén de secretos, nunca en el código.