LettermintLettermint
  • Knowledge base
  • Community
  • Changelog
  • Support
  • Documentation
  • Sending API
  • Team API
Getting started
Guides
    Node.jsPHPPythonGoLaravelMagento 2NuxtJava
    SMTP
Platform
Resources
Guides

Java

1. Installation

Add the SDK to your project using Maven or Gradle:

2. Send your first email

Initialize the client with your API token:

Code
import co.lettermint.Lettermint; Lettermint lettermint = new Lettermint("your-api-key");

Send your first email:

Code
SendEmailResponse response = lettermint.email() .from("John Doe <john@yourdomain.com>") .to("recipient@example.com") .subject("Hello from Lettermint!") .text("Hello! This is a test email.") .send(); System.out.println("Email sent with ID: " + response.getMessageId());

3. Email Features

Basic Email

Send a simple text or HTML email:

Code
lettermint.email() .from("John Doe <john@yourdomain.com>") .to("recipient@example.com") .subject("Your account is ready!") .html("<h1>Welcome!</h1><p>Thanks for signing up.</p>") .text("Welcome! Thanks for signing up.") .send();

Multiple Recipients

Send to multiple recipients using CC and BCC:

Code
lettermint.email() .from("John Doe <john@yourdomain.com>") .to("user1@example.com", "user2@example.com") .cc("manager@yourdomain.com") .bcc("archive@yourdomain.com") .subject("Monthly Newsletter") .html("<h1>This Month's Updates</h1>") .send();

Custom Headers and Reply-To

Add custom headers and set reply-to addresses:

Code
import java.util.Map; lettermint.email() .from("support@yourdomain.com") .to("customer@example.com") .replyTo("help@yourdomain.com") .subject("Support Ticket #12345") .headers(Map.of( "X-Priority", "1", "X-Ticket-ID", "12345" )) .html("<p>Your support ticket has been updated.</p>") .send();

Metadata

Add metadata for tracking and webhook payloads:

Code
import java.util.Map; lettermint.email() .from("notifications@yourdomain.com") .to("user@example.com") .subject("Order Confirmation") .metadata(Map.of( "order_id", "12345", "customer_id", "cust_789", "campaign", "order_confirmation" )) .html("<p>Your order has been confirmed.</p>") .send();

Metadata is included in webhook payloads but not added to the actual email headers. Use it for tracking and analytics purposes.

Tags

Categorize emails for filtering and analytics:

Code
lettermint.email() .from("alerts@yourdomain.com") .to("admin@example.com") .subject("System Alert") .tag("system-alerts") .html("<p>Critical system alert detected.</p>") .send();

One tag per message. Tags can contain letters, numbers, hyphens, underscores, and spaces (max 255 characters). See Tags documentation for more details.

Route Selection

Direct emails to specific routes within your project:

Code
lettermint.email() .from("notifications@yourdomain.com") .to("user@example.com") .subject("Welcome!") .route("transactional") .html("<p>Welcome to our platform.</p>") .send();

File Attachments

Attach files to your emails:

Code
import java.nio.file.Files; import java.nio.file.Path; import java.util.Base64; // Read file content byte[] fileContent = Files.readAllBytes(Path.of("/path/to/document.pdf")); String encodedContent = Base64.getEncoder().encodeToString(fileContent); lettermint.email() .from("invoices@yourdomain.com") .to("customer@example.com") .subject("Your Invoice") .html("<p>Please find your invoice attached.</p>") .attach("invoice.pdf", encodedContent) .send();

4. Response

Code
SendEmailResponse response = lettermint.email() .from("John Doe <john@yourdomain.com>") .to("recipient@example.com") .subject("Test") .text("Hello!") .send(); System.out.println(response.getMessageId()); // Email ID System.out.println(response.getStatus()); // Current status

Next Steps

Tags

Organize and filter emails with tags.

Tracking

Track opens, clicks, and deliverability.

Webhooks

Receive real-time delivery notifications.

SMTP Alternative

Send via SMTP instead of the API.

GitHub Repository

Find the complete source code, report issues, or contribute on GitHub.

Last modified on May 11, 2026
NuxtIntroduction
On this page
  • 1. Installation
  • 2. Send your first email
  • 3. Email Features
    • Basic Email
    • Multiple Recipients
    • Custom Headers and Reply-To
    • Metadata
    • Tags
    • Route Selection
    • File Attachments
  • 4. Response
  • Next Steps
<dependency> <groupId>co.lettermint</groupId> <artifactId>lettermint</artifactId> <version>LATEST</version> </dependency>
Java
Java
Java
Java
Java
Java
Java
Java
Java
Java