Dërgoni një email
Një mesazh tani ose më vonë, me bashkëngjitje, ose njëqind në një kërkesë të vetme.
Dërgoni një mesazh
Map<String, Object> email = client.emails().send(Body.of( "from", "Acme Billing <[email protected]>", "to", List.of("[email protected]", Body.of("email", "[email protected]", "name", "Grace")), "replyTo", "[email protected]", "subject", "Your September invoice", "html", "<p>Invoice attached.</p>", "text", "Invoice attached."), RequestOptions.create().idempotencyKey("invoice-2026-09-ada")); System.out.println(email.get("id") + " " + email.get("status"));to, cc dhe bcc pranojnë një adresë ose një listë, dhe një adresë është tekst si Ada <[email protected]> ose një map me email dhe name. Trupi vjen nga html dhe text, nga një template i ruajtur, ose nga një draftId.
Çdo dërgim mban një çelës idempotence. Klienti krijon një për çdo thirrje dhe e ripërdor kur riprovon, kështu që një kërkesë e riprovuar e përsërit mesazhin e parë. Jepni idempotencyKey në një RequestOptions që kjo të vlejë edhe ndërmjet proceseve dhe rinisjeve.
Bashkëngjitjet
byte[] report = "month,total".getBytes(StandardCharsets.UTF_8); client.emails().send(Body.of( "from", "[email protected]", "to", "[email protected]", "subject", "Your September report", "text", "The report is attached.", "attachments", List.of( Body.of("filename", "report.csv", "content", report, "contentType", "text/csv"), Body.of("fileId", "b3e1f0a4-6c2d-4e8a-9f17-2d5c8a0b4e6f") )));content pranon një byte[] ose një Path, që klienti i kodon në base64, ose tekst që është tashmë base64. fileId emërton një skedar të ngarkuar me client.files().upload, dhe kështu dërgohet një skedar më i madh se 5 MB.
Dërgoni më vonë
Map<String, Object> scheduled = client.emails().send(Body.of( "from", "[email protected]", "to", "[email protected]", "subject", "Your invoice is due tomorrow", "text", "A reminder that your invoice is due tomorrow.", "scheduledAt", Instant.now().plus(Duration.ofHours(1)))); String id = (String) scheduled.get("id"); client.emails().reschedule(id, Instant.now().plus(Duration.ofHours(2)));client.emails().cancel(id);scheduledAt pranon një Instant, një çast ISO 8601 si tekst ose një kohëzgjatje si PT1H. Një Instant, një OffsetDateTime ose një ZonedDateTime kudo në një trup dërgohet si çast ISO 8601 në UTC. Një mesazh i planifikuar mund të ndryshohet ose të anulohet derisa të niset.
Dërgoni një grup
BatchResult batch = client.emails().sendBatch(List.of( Body.of("from", "[email protected]", "to", "[email protected]", "subject", "Your invoice", "text", "Invoice attached."), Body.of("from", "[email protected]", "to", "[email protected]", "subject", "Your invoice", "text", "Invoice attached."))); for (Map<String, Object> item : batch) { if ("error".equals(item.get("status"))) { System.err.println(item.get("index") + " " + item.get("error")); }} System.out.println(batch.sent() + " sent, " + batch.failed() + " failed");Një grup mban deri në 100 mesazhe dhe nuk është kurrë gjithçka ose asgjë: një adresë e gabuar e bën të dështojë vetëm elementin e vet dhe të tjerat nisen gjithsesi. Kontrolloni failed() dhe status të çdo elementi në vend që të mbështeteni te një përjashtim.