1. Produk
  2.   Surel
  3.   Java
  4.   JavaMail
 
  

API Java Gratis untuk Mengirim Email Sederhana & Berbasis HTML

API Pemrosesan Email Java Open Source untuk Membuat dan Mengirim Pesan Email Berbasis Teks dan HTML dengan Lampiran, Gambar Tersemat, Dukungan Protokol SMTP, IMAP, POP3, dan Dukungan Keamanan Lanjutan.

Apa itu JavaMail?

Di dunia aplikasi perusahaan dan sistem otomatis, kemampuan untuk mengirim dan menerima email secara programatik bukan sekadar kemudahan—melainkan keharusan. Dari mengirim reset kata sandi dan konfirmasi pesanan hingga memproses tiket dukungan yang masuk, integrasi email adalah fitur inti. Bagi pengembang Java, fondasi fungsionalitas ini adalah JavaMail API yang kuat dan open‑source. Halaman produk komprehensif ini akan menjelajahi JavaMail API, fitur‑fiturnya yang kuat, serta memberikan contoh kode praktis agar Anda dapat memulai integrasi email dalam aplikasi Java Anda.

JavaMail API adalah kerangka kerja matang, open source yang disediakan oleh Oracle (dulunya Sun Microsystems) yang menyediakan kerangka kerja platform‑independen dan protokol‑independen untuk membangun aplikasi surat dan pesan. Ini adalah API standar untuk menangani email dalam ekosistem Java. API ini menyederhanakan kompleksitas protokol email di bawahnya seperti SMTP, POP3, dan IMAP, memungkinkan pengembang bekerja dengan antarmuka berorientasi objek yang bersih. Beberapa fitur penting dalam perpustakaan ini meliputi pembuatan dan pengiriman email HTML, penambahan lampiran, penyisipan gambar inline, konten multipart, otentikasi kuat dan dukungan keamanan, dukungan email berbasis folder, pencarian dan penyaringan email yang lebih baik, membaca email via SMTP, dan sebagainya.

Previous Next

Memulai dengan JavaMail

Pertama-tama, Anda perlu menginstal JDK 1.6 atau lebih tinggi. Anda perlu menambahkan dependensi Maven berikut di pom.xml.

Dependensi Maven

<dependency>
  <groupId>com.sun.mail</groupId>s;
  <artifactId>javax.mail</artifactId>
  <version>1.6.2</version>
</dependency>

Anda dapat mengunduh perpustakaan langsung dari GitHub halaman.

Pengiriman Pesan Email via Perpustakaan Java

Perpustakaan JavaMail open source telah menyertakan dukungan untuk membuat dan mengirim pesan email sederhana maupun berbasis HTML di dalam aplikasi Java. Pengembang dapat membaca email yang ada, menambahkan file serta gambar sebagai lampiran, mengirim email ke banyak pengguna, menambahkan header khusus, dan banyak lagi. Anda perlu menentukan parameter koneksi seperti host, port, dan flag untuk mengaktifkan otentikasi serta TLS. Contoh berikut menunjukkan cara mengirim email teks biasa dasar menggunakan server SMTP (seperti Gmail) di dalam aplikasi Java.

Cara Mengirim Email Teks Biasa Dasar menggunakan Server SMTP via API Java?


import java.util.Properties;
import javax.mail.*;
import javax.mail.internet.*;

public class SimpleEmailSender {

    public static void main(String[] args) {
        // Sender's and recipient's email ID
        String from = "your.email@gmail.com";
        String to = "recipient.email@example.com";
        
        // SMTP server configuration (for Gmail)
        String host = "smtp.gmail.com";
        final String username = "your.email@gmail.com";
        final String password = "your-app-password"; // Use an App Password for Gmail

        // Setup mail server properties
        Properties properties = new Properties();
        properties.put("mail.smtp.auth", "true");
        properties.put("mail.smtp.starttls.enable", "true"); // Use TLS
        properties.put("mail.smtp.host", host);
        properties.put("mail.smtp.port", "587");

        // Get the Session object and pass username and password
        Session session = Session.getInstance(properties, new javax.mail.Authenticator() {
            protected PasswordAuthentication getPasswordAuthentication() {
                return new PasswordAuthentication(username, password);
            }
        });

        try {
            // Create a default MimeMessage object
            Message message = new MimeMessage(session);
            
            // Set From: header field
            message.setFrom(new InternetAddress(from));
            
            // Set To: header field
            message.setRecipients(Message.RecipientType.TO, InternetAddress.parse(to));
            
            // Set Subject: header field
            message.setSubject("Hello from JavaMail API");
            
            // Set the actual message body
            message.setText("This is a test email sent programmatically using the JavaMail API.");

            // Send message
            Transport.send(message);
            System.out.println("Email sent successfully!");

        } catch (MessagingException e) {
            throw new RuntimeException(e);
        }
    }
}

Pencarian & Penyaringan Email via Java

Perpustakaan JavaMail open source telah menyertakan dukungan penuh untuk mencari pesan email dalam folder berdasarkan berbagai kriteria (pengirim, subjek, tanggal, flag) di dalam aplikasi Java. Ini sangat berguna saat mengembangkan klien email atau otomasi. Anda juga dapat menggabungkan beberapa istilah pencarian (AND, OR, NOT) melalui AndTerm, OrTerm, NotTerm. Contoh berikut menunjukkan cara mencari pesan dari pengirim tertentu menggunakan perintah Java.

Cara Mencari Pesan dari Pengirim Tertentu di dalam Aplikasi Java?


Store store = session.getStore("imap");
store.connect("imap.example.com", username, password);

Folder inbox = store.getFolder("INBOX");
inbox.open(Folder.READ_ONLY);

// Search for messages from a specific sender
SearchTerm senderTerm = new FromStringTerm("alerts@example.com");
Message[] found = inbox.search(senderTerm);

for (Message m : found) {
    System.out.println("Subject: " + m.getSubject());
}

inbox.close(false);
store.close();

Dukungan Protokol SMTP, IMAP, POP3

JavaMail open source secara default mendukung tiga protokol email paling umum, seperti SMTP (Simple Mail Transfer Protocol) untuk mengirim pesan, POP3 (Post Office Protocol 3) untuk pengambilan email sederhana, dan IMAP (Internet Message Access Protocol) untuk akses email yang lebih maju (folder, pengambilan parsial). Selain itu, ia juga mendukung varian aman seperti SMTPS, POP3S, IMAPS, dan dapat diperluas ke penyedia khusus.

Otentikasi dan Keamanan Lanjutan via Java

JavaMail open source mendukung komunikasi aman dengan server email, yang sangat penting dalam lingkungan yang sadar keamanan saat ini. Perpustakaan ini mendukung TLS (Transport Layer Security) yang mengenkripsi saluran komunikasi antara aplikasi Anda dan server mail. Ia juga mendukung SSL (Secure Sockets Layer) yang merupakan pendahulu TLS, juga didukung untuk membangun koneksi aman. Selain itu, perpustakaan ini mendukung otentikasi standar username/password untuk terhubung ke server yang memerlukan login.

 Indonesia