全部产品
Search
文档中心

Alibaba Mail:Contoh Panggilan SMTP dalam Java

更新时间:Jun 21, 2025

Topik ini menyajikan contoh panggilan SMTP yang berlaku untuk Java.

Konfigurasi Alibaba Mail

Alamat server SMTP: smtp.sg.aliyun.com

Port: tanpa enkripsi adalah 25, sedangkan dengan enkripsi SSL adalah 465.

//pom.xml Tambahkan referensi ke javax.mail, atau proyek memperkenalkan paket jar dari javax.mail.
<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 QiyeMailSend {
    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");// Server SMTP.
            // props.setProperty("mail.smtp.port", "25");// Port tanpa enkripsi.
            // Konfigurasikan metode enkripsi SSL sebagai 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.auth", "true");// Menunjukkan bahwa SMTP mengirim email dan autentikasi diperlukan.
            props.setProperty("mail.smtp.from", "Alamat pengirim");// Parameter mailfrom.
            props.setProperty("mail.user","Alamat pengirim");// Akun pengirim.
            props.setProperty("mail.password","Kata sandi pengirim");// Kata sandi akun pengirim. Jika kata sandi keamanan klien pihak ketiga diaktifkan, gunakan kata sandi baru.
            // Buat sesi email.
            Session session = Session.getDefaultInstance(props, new Authenticator() {
                // Otentikasi identitas
                protected PasswordAuthentication getPasswordAuthentication() {
                    // Akun dan kata sandi 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);
            // Tentukan pengirim email.
            InternetAddress from=new InternetAddress("alamat pengirim","nama pengirim"); //parameter from, yang dapat merealisasikan pengiriman pengganti. Catatan: pengiriman pengganti mudah ditolak oleh penerima atau masuk ke kotak sampah. 
            message.setFrom(from);
            // Atur penerima email.
            String[] to = {"Alamat penerima 1","Alamat penerima 2","Alamat penerima 3"};// Daftar penerima.
            InternetAddress[] sendTo = new InternetAddress[to.length];
            for (int i=0;i<to.length;i++){
                // System.out.println("Kirim ke:" + to[i]);
                sendTo[i] = new InternetAddress(to[i]);
            }

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