All Products
Search
Document Center

Alibaba Mail:Contoh kode Java untuk pengiriman email SMTP

Last Updated:Jun 17, 2026

Anda dapat menggunakan contoh kode Java ini untuk mengirim email dari Alibaba Mail melalui SMTP.

Konfigurasi Alibaba Mail

Alamat server SMTP: smtp.sg.aliyun.com

Port: 25 untuk koneksi tanpa enkripsi, atau 465 untuk koneksi dengan enkripsi SSL.

//Tambahkan referensi ke javax.mail dalam file pom.xml, atau impor paket JAR javax.mail ke dalam proyek Anda.
<dependency>
    <groupId>com.sun.mail</groupId>
    <artifactId>javax.mail</artifactId>
    <version>1.6.2</version>
</dependency>
import javax.mail.*;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import java.security.Security;
import java.util.Date;
import java.util.Properties;

public class EnterpriseMailSend {
    public static void main(String[] args) {
        try{
            //Atur koneksi SSL dan lingkungan email.
            Security.addProvider(new com.sun.net.ssl.internal.ssl.Provider());
            final String SSL_FACTORY = "javax.net.ssl.SSLSocketFactory";
            Properties props = System.getProperties();
            //Protokol
            //props.setProperty("mail.transport.protocol", "smtp");

            props.setProperty("mail.smtp.host", "smtp.sg.aliyun.com");//Alamat server SMTP
            //props.setProperty("mail.smtp.port", "25");//Port tanpa enkripsi
            // Untuk menggunakan enkripsi SSL, terapkan konfigurasi berikut:
            props.setProperty("mail.smtp.socketFactory.class", SSL_FACTORY);
            props.setProperty("mail.smtp.socketFactory.fallback", "false");
            props.setProperty("mail.smtp.socketFactory.port", "465");
            props.setProperty("mail.smtp.ssl.enable", "true");
            //props.setProperty("mail.smtp.ssl.protocols", "TLSv1.2");//Jika versi default gagal, coba tentukan versi tertentu.

            props.setProperty("mail.smtp.auth", "true");//Menentukan bahwa otentikasi identitas diperlukan untuk mengirim email melalui SMTP.
            props.setProperty("mail.smtp.from", "sender_address");//Parameter mailfrom.
            props.setProperty("mail.user","sender_address");//Akun pengirim.
            props.setProperty("mail.password","sender_password");//Password akun pengirim. Jika Anda mengaktifkan password keamanan untuk klien pihak ketiga, gunakan password yang baru dibuat.
            //Buat session email.
            Session session = Session.getDefaultInstance(props, new Authenticator() {
                //Otentikasi identitas.
                protected PasswordAuthentication getPasswordAuthentication() {
                    //Akun dan password pengirim.
                    String userName = props.getProperty("mail.user");
                    String password = props.getProperty("mail.password");
                    return new PasswordAuthentication(userName, password);
                }
            });
            //Buat objek email.
            MimeMessage message = new MimeMessage(session);
            //Atur pengirim email.
            InternetAddress from = new InternetAddress("sender_address","sender_name"); //Parameter from, yang dapat digunakan untuk meneruskan email. Catatan: Email yang diteruskan lebih berisiko ditolak oleh server penerima atau dipindahkan ke folder spam.
            message.setFrom(from);
            //Atur penerima email.
            String[] to = {"recipient_address_1","recipient_address_2","recipient_address_3"};//Daftar penerima.
            InternetAddress[] sendTo = new InternetAddress[to.length];
            for (int i=0;i<to.length;i++){
                //System.out.println("Mengirim ke: " + to[i]);
                sendTo[i] = new InternetAddress(to[i]);
            }

            //Masukkan penerima.
            message.setRecipients(Message.RecipientType.TO,sendTo);
            //Atur subjek email.
            message.setSubject("email_subject");
            //Atur isi email.
            String content="email_body";
            message.setContent(content,"text/html;charset=UTF-8");
            //Atur waktu.
            message.setSentDate(new Date());
            message.saveChanges();
            //Kirim email.
            Transport.send(message);
            System.out.println("Berhasil dikirim!");
        }catch(Exception e){
            System.out.println("Exception: "+e.toString());
        }
    }
}

Perintah uji konektivitas:

telnet smtp.sg.aliyun.com 25

openssl s_client -connect smtp.sg.aliyun.com:465 -crlf