Menghantar E-mel dengan Lampiran di Java

1. Gambaran keseluruhan

Dalam tutorial ringkas ini, kita akan belajar cara mengirim e-mel dengan satu dan beberapa lampiran di Java menggunakan JavaMail API.

2. Penyediaan Projek

Dalam artikel ini, kami membuat projek Maven sederhana dengan kebergantungan javax.mail :

 javax.mail mail 1.5.0-b01 

3. Menghantar Mel Dengan Lampiran

Pertama, kita perlu mengkonfigurasi kelayakan penyedia perkhidmatan e-mel. Kemudian, objek Sesi dibuat dengan memberikan hos e-mel, port, nama pengguna, dan kata laluan. Semua butiran ini diberikan oleh perkhidmatan hos e-mel. Kami boleh menggunakan pelayan ujian SMTP palsu untuk kod kami.

Objek sesi akan berfungsi sebagai kilang sambungan untuk menangani konfigurasi dan pengesahan untuk JavaMail .

Sekarang kita mempunyai Sesi objek, mari kita bergerak lagi dan mewujudkan MimeMessage dan MimeBodyPart objek. Kami menggunakan objek ini untuk membuat mesej e-mel:

Message message = new MimeMessage(session); message.setFrom(new InternetAddress(from)); message.setRecipients(Message.RecipientType.TO, InternetAddress.parse(to)); message.setSubject("Test Mail Subject"); BodyPart messageBodyPart = new MimeBodyPart(); messageBodyPart.setText("Mail Body"); 

Dalam coretan di atas, kami telah membuat objek MimeMessage dengan perincian yang diperlukan seperti dari, hingga, dan subjek. Kemudian, kami mempunyai objek MimeBodyPart dengan isi e-mel.

Sekarang, kita perlu membuat MimeBodyPart lain untuk menambahkan lampiran dalam mel kita:

MimeBodyPart attachmentPart = new MimeBodyPart(); attachmentPart.attachFile(new File("C:\\Document1.txt")); 

Kami kini mempunyai dua objek MimeBodyPart untuk satu sesi Sesi. Oleh itu, kita perlu membuat satu objek MimeMultipart dan kemudian menambahkan kedua-dua objek MimeBodyPart ke dalamnya:

Multipart multipart = new MimeMultipart(); multipart.addBodyPart(messageBodyPart); multipart.addBodyPart(attachmentPart); 

Akhirnya, MimeMultiPart ditambahkan ke objek MimeMessage kerana kandungan surat kami dan kaedah Transport.send () dipanggil untuk menghantar mesej:

message.setContent(multipart); Transport.send(message); 

Untuk meringkaskan, Mesej tersebut mengandungi MimeMultiPart yang selanjutnya mengandungi beberapa MimeBodyPart . Begitulah cara kami mengumpulkan e-mel yang lengkap.

Lebih-lebih lagi, untuk menghantar beberapa lampiran anda boleh menambahkan MimeBodyPart yang lain .

4. Kesimpulan

Dalam tutorial ini, kami telah belajar cara mengirim e-mel dengan lampiran tunggal dan banyak di Java.

Seperti biasa, kod sumber lengkap boleh didapati di GitHub.