Last Updated on March 17, 2023 by
Belajar mengirim Email adalah persyaratan yang paling umum dan diperlukan untuk sebagian besar pemula dalam pembuatan aplikasi. Java menyediakan Java Mail API – kerangka kerja independen platform dan protokol untuk dilakukan Java mengirim email dan perpesanan.
Dalam panduan ini, Anda akan mendapatkan langkah-langkah mendetail tentang cara mengirim email dengan JavaMail di Proyek Java Anda dan mengimplementasikan API JavaMail untuk membuat Java mengirim email dengan protokol SMTP.
Table of Contents
Cara Termudah Java Mengirim Email
Ada berbagai cara mengirim email menggunakan JavaMail API. Untuk tujuan ini, Anda harus memiliki server SMTP yang bertanggung jawab untuk mengirim email menggunakan Java.
Anda dapat menggunakan salah satu teknik berikut untuk mendapatkan server SMTP:
- Instal dan gunakan server SMTP apa pun seperti server Postcast, server Apache James, server cmail dll. (atau)
- Gunakan server SMTP yang disediakan oleh penyedia host misalnya server SMTP saya adalah mail.javatpoint.com (atau)
- Gunakan Server SMTP yang disediakan oleh perusahaan lain misalnya gmail dll.
Di sini, kita akan mempelajari tiga pendekatan di atas untuk mengirim email menggunakan javamail API. Namun kita harus mempelajari langkah-langkah dasar untuk mengirim email dari aplikasi java.
Langkah-Langkah Dalam Java Mengirim Email Dengan Javamail API
Ada tiga langkah berikut untuk mengirim email menggunakan JavaMail. Mereka adalah sebagai berikut:
- Mendapat Session Object yang menyimpan semua informasi host seperti nama host, nama pengguna, kata sandi, dll.
- Menulis Pesan.
- Mengirim Pesan.
Mendapatkan Session Object Java Mengirim Email
Class javax.mail.Session menyediakan dua metode untuk mendapatkan Session Object, metode Session.getDefaultInstance() dan metode Session.getInstance(). Anda dapat menggunakan metode apa pun untuk mendapatkan Session Object dalam Java mengirim email.
No. | Method | Description |
1 | public static Session getDefaultInstance (Properties props) | Mengembalikan sesi default |
2 | public static Session getDefaultInstance (Properties props,Authenticator auth) | mengembalikan sesi default. |
3 | public static Session getInstance (Properties props) | Mengembalikan sesi baru. |
4 | public static Session getInstance (Properties props,Authenticator auth) | Mengembalikan sesi baru. |
Menulis Pesan
Class javax.mail.Message menyediakan metode untuk menulis pesan. Tapi itu adalah abstract class sehingga kelas javax.mail.internet.MimeMessage subkelasnya banyak digunakan.
Untuk membuat pesan, Anda harus meneruskan objek sesi di konstruktor kelas MimeMessage.
Sekarang objek pesan telah dibuat tetapi untuk menyimpan informasi pada objek ini kelas MimeMessage menyediakan banyak metode. Mari kita lihat metode yang disediakan oleh kelas MimeMessage:
No. | Method | Keterangan |
1 | public void setFrom(Address address) | digunakan untuk mengatur bidang header dari. |
2 | public void addRecipient(Message.RecipientType type, Address address) | digunakan untuk menambahkan alamat yang diberikan ke tipe penerima. |
3 | public void addRecipients(Message.RecipientType type, Address[] addresses) | digunakan untuk menambahkan alamat yang diberikan ke tipe penerima. |
4 | public void setSubject(String subject) | digunakan untuk mengatur bidang tajuk subjek. |
5 | public void setText(String textmessage) | digunakan untuk mengatur teks sebagai konten pesan menggunakan teks/jenis MIME biasa. |
6 | public void setContent(Object msg, String contentType) | digunakan untuk menyetel konten sebagai konten pesan menggunakan tipe MIME yang diberikan. |
Mengirim Pesan
Kita dapat mengirim pesan dengan metode dari Kelas javax.mail.Transport.
Contoh Cara Mengirim Email Menggunakan Java
Untuk mengirim email menggunakan Aplikasi Java Anda cukup sederhana tetapi untuk memulainya Anda harus menginstal JavaMail API dan Java Activation Framework (JAF) di mesin Anda.
- Anda dapat mengunduh JavaMail versi terbaru.
- Anda dapat mengunduh JAF versi terbaru.
Unduh dan unzip file-file ini, di direktori tingkat atas yang baru dibuat Anda akan menemukan sejumlah file jar untuk kedua aplikasi tersebut. Anda harus menambahkan file mail.jar dan activation.jar.
Java Mengirim Email Sederhana
Dalam contoh ini, kita akan mempelajari cara mengirim email menggunakan Java. Berikut adalah contoh untuk mengirim email sederhana dari mesin Anda. Diasumsikan bahwa localhost Anda terhubung ke Internet dan cukup mampu untuk mengirim email.
import java.util.*; import javax.mail.*; import javax.mail.internet.*; import javax.activation.*; public class SendEmail { public static void main(String [] args) { // Email penerima String to = "abcd@gmail.com"; // Email pengirim String from = "web@gmail.com"; // Asumsi mengirim email dari localhost String host = "localhost"; Properties properties = System.getProperties(); // Mengatur mail server properties.setProperty("mail.smtp.host", host); Session session = Session.getDefaultInstance(properties); try { MimeMessage message = new MimeMessage(session); message.setFrom(new InternetAddress(from)); message.addRecipient(Message.RecipientType.TO, new InternetAddress(to)); // Mengatur subjek email message.setSubject("Subjek email!"); // Mengatur pesan email message.setText("Pesan email"); Transport.send(message); System.out.println("Pesan berhasil terkirim...."); } catch (MessagingException mex) { mex.printStackTrace(); } } }
Mengirim Email HTML
Contoh ini sangat mirip dengan yang sebelumnya, kecuali di sini kita menggunakan metode setContent() untuk menyetel konten yang argumen keduanya adalah “teks/html” untuk menentukan bahwa konten HTML disertakan dalam pesan.
import java.util.*; import javax.mail.*; import javax.mail.internet.*; import javax.activation.*; public class SendHTMLEmail { public static void main(String [] args) { // Email penerima String to = "abcd@gmail.com"; // Email pengirim String from = "web@gmail.com"; // Asumsi mengirim email dari localhost String host = "localhost"; Properties properties = System.getProperties(); // Mengatur mail server properties.setProperty("mail.smtp.host", host); Session session = Session.getDefaultInstance(properties); try { MimeMessage message = new MimeMessage(session); message.setFrom(new InternetAddress(from)); message.addRecipient(Message.RecipientType.TO, new InternetAddress(to)); // Mengatur subjek email message.setSubject("Subjek email!"); // Mengatur pesan berupa HTML message.setContent("<h1>Pesan email</h1>", "text/html"); Transport.send(message); System.out.println("Pesan berhasil terkirim...."); } catch (MessagingException mex) { mex.printStackTrace(); } } }
Cara Mengirim Email Pada Java Melalui Server SMTP Yang Disediakan oleh Penyedia Host
Jika Anda menggunakan server SMTP yang disediakan oleh penyedia host misalnya mail.codekey.com , Anda perlu mengautentikasi nama pengguna dan kata sandi. Kelas javax.mail.PasswordAuthentication digunakan untuk mengautentikasi kata sandi.
import java.util.Properties; import javax.mail.*; import javax.mail.internet.*; public class SendMailBySite { public static void main(String[] args) { String host="mail.codekey.com"; final String user="kallaesme@codekey.com"; final String password="xxxxx"; String to="kalaesme@gmail.com"; Properties props = new Properties(); props.put("mail.smtp.host",host); props.put("mail.smtp.auth", "true"); Session session = Session.getDefaultInstance(props, new javax.mail.Authenticator() { protected PasswordAuthentication getPasswordAuthentication() { return new PasswordAuthentication(user,password); } }); try { MimeMessage message = new MimeMessage(session); message.setFrom(new InternetAddress(user)); message.addRecipient(Message.RecipientType.TO,new InternetAddress(to)); message.setSubject("Codekey"); message.setText("Belajar mengirim email di Java"); Transport.send(message); System.out.println("Pesan berhasil terkirim..."); } catch (MessagingException e) {e.printStackTrace();} } }
Seperti yang Anda lihat pada contoh di atas, userid dan kata sandi perlu diautentikasi. Seperti yang diilustrasikan oleh program ini, Anda dapat mengirim email dengan mudah. Ganti nama pengguna dan kata sandi yang sesuai.
Mengirim Email Menggunakan Java Dengan Attachment
import java.util.*; import javax.mail.*; import javax.mail.internet.*; import javax.activation.*; public class SendFileEmail { public static void main(String [] args) { // Email penerima String to = "abcd@gmail.com"; // Email pengirim String from = "web@gmail.com"; // Asumsi mengirim email dari localhost String host = "localhost"; // Get system properties Properties properties = System.getProperties(); // Mengatur mail server properties.setProperty("mail.smtp.host", host); Session session = Session.getDefaultInstance(properties); try { MimeMessage message = new MimeMessage(session); message.setFrom(new InternetAddress(from)); message.addRecipient(Message.RecipientType.TO,new InternetAddress(to)); // Mengatur subjek email message.setSubject("Subjek email!"); // Mengatur bagian pesan BodyPart messageBodyPart = new MimeBodyPart(); messageBodyPart.setText("Pesan email"); Multipart multipart = new MimeMultipart(); multipart.addBodyPart(messageBodyPart); messageBodyPart = new MimeBodyPart(); String filename = "file.txt"; DataSource source = new FileDataSource(filename); messageBodyPart.setDataHandler(new DataHandler(source)); messageBodyPart.setFileName(filename); multipart.addBodyPart(messageBodyPart); message.setContent(multipart); Transport.send(message); System.out.println("Pesan berhasil terkirim...."); } catch (MessagingException mex) { mex.printStackTrace(); } } }
Bagian Autentikasi Pengguna
Jika diperlukan untuk memberikan ID pengguna dan Kata Sandi ke server email untuk tujuan otentikasi, maka Anda dapat mengatur properti ini sebagai berikut –
props.setProperty("mail.user", "myuser"); props.setProperty("mail.password", "mypwd");
Sekarang Anda telah berhasil mengimplementasikan Java Mail API dan dapat membuat Java mengirim email menggunakan Server SMTP apa pun dari proyek Anda.
Temukan lebih banyak artikel seri belajar Java maupun bahasa pemrograman lainnya hanya di CODEKEY. Klik https://codekey.id/ sekarang juga untuk langsung belajar gratis. Sampai bertemu lagi!
Jasa Pembuatan Aplikasi, Website dan Internet Marketing | PT APPKEY
PT APPKEY adalah perusahaan IT yang khusus membuat aplikasi Android, iOS dan mengembangkan sistem website. Kami juga memiliki pengetahuan dan wawasan dalam menjalankan pemasaran online sehingga diharapkan dapat membantu menyelesaikan permasalahan Anda.