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