Mengirim Email dengan Java

1. Ikhtisar

Dalam tutorial singkat ini, kita akan melihat pengiriman email dengan dan tanpa lampiran - menggunakan pustaka email inti Java.

2. Pengaturan dan Ketergantungan Proyek

Untuk artikel ini, kami akan menggunakan proyek berbasis Maven sederhana dengan ketergantungan pada pustaka email Java:

 javax.mail mail 1.5.0-b01 

Versi terbaru dapat ditemukan di sini.

3. Mengirim Teks Biasa dan Email HTML

Pertama, kita perlu mengonfigurasi perpustakaan dengan kredensial penyedia layanan email kita. Kemudian, kami akan membuat Sesi yang akan digunakan dalam menyusun pesan kami untuk dikirim.

Konfigurasi melalui objek Properti Java :

Properties prop = new Properties(); prop.put("mail.smtp.auth", true); prop.put("mail.smtp.starttls.enable", "true"); prop.put("mail.smtp.host", "smtp.mailtrap.io"); prop.put("mail.smtp.port", "25"); prop.put("mail.smtp.ssl.trust", "smtp.mailtrap.io");

Dalam konfigurasi properti di atas, kami mengonfigurasi host email sebagai Mailtrap dan menggunakan port yang disediakan oleh layanan juga.

Sekarang mari melangkah lebih jauh dengan membuat sesi dengan nama pengguna dan kata sandi kita:

Session session = Session.getInstance(prop, new Authenticator() { @Override protected PasswordAuthentication getPasswordAuthentication() { return new PasswordAuthentication(username, password); } });

Nama pengguna dan kata sandi diberikan oleh penyedia layanan surat bersama dengan parameter host dan port.

Sekarang setelah kita memiliki objek Sesi email , mari buat Pesan Pantomim untuk dikirim:

Message message = new MimeMessage(session); message.setFrom(new InternetAddress("[email protected]")); message.setRecipients( Message.RecipientType.TO, InternetAddress.parse("[email protected]")); message.setSubject("Mail Subject"); String msg = "This is my first email using JavaMailer"; MimeBodyPart mimeBodyPart = new MimeBodyPart(); mimeBodyPart.setContent(msg, "text/html"); Multipart multipart = new MimeMultipart(); multipart.addBodyPart(mimeBodyPart); message.setContent(multipart); Transport.send(message);

Pada potongan di atas, pertama-tama kita membuat instance pesan dengan properti yang diperlukan - to, from, dan subject. Diikuti oleh mimeBodyPart yang memiliki pengkodean teks / html, karena pesan kita ditata dalam HTML.

Hal berikutnya yang kami lakukan adalah membuat instance objek MimeMultipart yang dapat kami gunakan untuk membungkus mimeBodyPart yang kami buat.

Akhirnya, kami menetapkan multipart objek sebagai isi kami pesan dan menggunakan send () dari Transportasi objek untuk melakukan pengiriman email.

Jadi, kita dapat mengatakan bahwa mimeBodyPart terkandung dalam multipart yang terdapat dalam pesan. Karenanya, multipart dapat berisi lebih dari satu mimeBodyPart .

Ini akan menjadi fokus bagian selanjutnya.

4. Mengirim Email Dengan Lampiran

Selanjutnya, untuk mengirim lampiran, kita hanya perlu membuat MimeBodyPart lain dan melampirkan file ke dalamnya:

MimeBodyPart attachmentBodyPart = new MimeBodyPart(); attachmentBodyPart.attachFile(new File("path/to/file"));

Kami kemudian dapat menambahkan bagian tubuh baru ke objek MimeMultipart yang kami buat sebelumnya:

multipart.addBodyPart(attachmentBodyPart);

Hanya itu yang perlu kita lakukan.

Sekali lagi, kami menetapkan instance multipart sebagai konten objek pesan dan akhirnya kami akan menggunakan send () untuk melakukan pengiriman email .

5. Kesimpulan

Sebagai kesimpulan, kita telah melihat bagaimana menggunakan perpustakaan surat Java asli untuk mengirim email bahkan dengan lampiran.

Seperti biasa, kode sumber lengkap tersedia di Github.