Rumah  >  Artikel  >  Java  >  Menghantar Lampiran E-mel dalam Java

Menghantar Lampiran E-mel dalam Java

PHPz
PHPzasal
2024-08-30 15:54:11483semak imbas

Artikel berikut menyediakan garis besar untuk Menghantar Lampiran E-mel dalam Java. Ciri menyambungkan e-mel dengan bukti kelayakan untuk pembekal perkhidmatan e-mel adalah untuk membolehkan keupayaan untuk menghantar lampiran e-mel. Untuk melengkapkan ini, perkhidmatan hos e-mel mesti digunakan, selepas itu hos e-mel, port, nama pengguna dan kata laluan dimasukkan untuk mencipta objek Sesi. Perkhidmatan hos e-mel juga menawarkan semua spesifikasi ini tambahan dengan kod, yang boleh menggunakan mana-mana pelayan ujian palsu atau SMTP lain, dan untuk mengurus konfigurasi dan pengesahan untuk JavaMail, objek sesi akan berfungsi sebagai kilang sambungan.

Menghantar Lampiran E-mel dalam Java

Mulakan Kursus Pembangunan Perisian Percuma Anda

Pembangunan web, bahasa pengaturcaraan, ujian perisian & lain-lain

Pengambilan Utama

  • API JavaMail menawarkan pelbagai kelas berguna seperti BodyPart, MimeBodyPart, dll. untuk menghantar e-mel dengan lampiran.
  • Untuk mempelajari peringkat penghantaran e-mel API JavaMail sebelum membaca contoh ini untuk memahaminya.
  • Kami mesti memuatkan dua fail jar yang dipanggil mail.jar dan activation.jar untuk menghantar e-mel menggunakan API JavaMail.
  • Dapatkan Sesi dan Tetapkan Daripada, Kepada dan Subjek dalam objek MimeMessage lalai mesej.
  • Penciptaan objek MimeMultipart. Objek berbilang bahagian ini kini harus memasukkan messageBodyPart dari atas dengan mesej sebenar diletakkan di dalamnya.
  • Menggunakan objek Pengangkutan, hantar mesej.

Gambaran Keseluruhan Menghantar Lampiran E-mel dalam Java

API JavaMail menawarkan pelbagai kelas berguna seperti BodyPart dan MimeBodyPart untuk menghantar e-mel dengan lampiran. Untuk Mempelajari peringkat penghantaran e-mel API JavaMail untuk memahaminya dan harus memuatkan dua fail balang berikut untuk menghantar e-mel menggunakan API JavaMail:

  • Mail.jar
  • Pengaktifan.jar

Kemudian mari kita bina objek MimeMessage dan MimeBodyPart sekarang kerana kita mempunyai objek Sesi.

Untuk menjana mesej e-mel, kami menggunakan objek berikut:

  • Dapatkan mesej karang untuk objek sesi.
  • Buat objek MimeBodyPart dan nyatakan teks mesej di dalamnya. Buat objek MimeBodyPart lain dan tambahkan objek DataHandler padanya. Buat objek Berbilang Bahagian dan masukkan objek MimeBodyPart di dalamnya.
  • Hantar mesej dengan menetapkan objek berbilang bahagian kepada objek mesej.

Selain itu, langkah-langkah dalam program e-mel Java adalah seperti berikut:

  • Membuat objek jenis javax.mail.Session.
  • Pembangunan Javax.mail.internet.
  • Objek MimeMessage, di mana kita mesti menetapkan beberapa atribut termasuk alamat e-mel penerima, subjek e-mel, e-mel balasan, badan e-mel dan lampiran, antara lain.
  • Menghantar mesej e-mel menggunakan javax.mail.Transport.

Bagaimana untuk Menghantar Lampiran E-mel dalam Java?

Kelayakan untuk pembekal perkhidmatan e-mel mesti dikonfigurasikan. Kemudian, hos e-mel, port, nama pengguna dan kata laluan dimasukkan untuk membina objek Sesi. Perkhidmatan hos e-mel menawarkan semua butiran ini. Untuk kod tersebut, kami boleh menggunakan mana-mana pelayan ujian SMTP palsu. Untuk mengurus konfigurasi dan pengesahan untuk JavaMail, objek sesi akan berfungsi sebagai kilang sambungan. Untuk membina objek MimeMessage dan MimeBodyPart sekarang bahawa kita mempunyai objek Sesi. Untuk menjana mesej e-mel, kami menggunakan objek berikut:

Kod:

Message testmsg = new MimeMessage(sess);
testmsg.setFrom(new InternetAddress(fromaddr));
testmsg.setRecipients(Message.RecipientType.TO, InternetAddress.parse(to));
testmsg.setSubject("Welcome to our Test Site");

Kod di atas membantu mencipta perkhidmatan Mesej dengan bantuan objek sesi MimeMessage. Supaya kita boleh lulus sesi(sess) sebagai parameter untuk baris gilir Mesej. Dengan bantuan contoh, kita boleh memanggil kaedah yang dipanggil setFrom() supaya digunakan untuk menghantar alamat Daripada atau senarai penghantar. Dalam contoh yang sama, kita boleh memanggil kaedah lain yang dipanggil setRecipients() dengan parameter lulus seperti kelas Mesej dengan kaedah tambahan yang dipanggil RecipientType dengan memanggil Kepada penerima mel dan tambahan InternetAddress dengan kaedah lalai dipanggil parse(to) untuk menghantar ke alamat Penerima. SetSubject() menghantar nilai rentetan dalam contoh kelas Mesej. Objek MimeMessage telah dijana dalam petikan di atas dengan maklumat yang diperlukan, termasuk daripada, kepada, dan subjek. Seterusnya, kami mempunyai objek MimeBodyPart yang mengandungi badan e-mel. Selain itu, untuk menambah lampiran pada perkhidmatan mel, kita kini harus membina satu lagi MimeBodyPart.

Kod:

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

The MimeBodyPart is the mail class body that created the instance and the same will be called for the method called attachFile() with additional parameters like to pass the new File object creation with file path parameters. TLS authentication is possible but different in several ways. As we can see, we are calling additional EmailUtil class methods to deliver email attachments and images even though we haven’t yet defined them.

Example of Sending Email Attachments in Java

Given below is the example mentioned:

Code:

package TestNG;
import java.util.Properties;
import javax.activation.DataHandler;
import javax.activation.DataSource;
import javax.activation.FileDataSource;
import javax.mail.BodyPart;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.Multipart;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeBodyPart;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMultipart;
public class NewTest{
public static void main(String[] args) throws Exception {
Properties props = new Properties();
props.setProperty("mail.smtp.host", "smtp.gmail.com");
props.put("mail.smtp.auth", "true");
props.put("mail.smtp.port", "465");
props.put("mail.debug", "true");
props.put("mail.smtp.socketFactory.port", "465");
props.put("mail.smtp.socketFactory.class","javax.net.ssl.SSLSocketFactory");
Session sess = Session.<em><i>getDefaultInstance</i></em>(props,
new javax.mail.Authenticator() {
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication("[email protected]","xodbizaoiqijifre");
}
});
try{
MimeMessage msg = new MimeMessage(sess);
msg.setFrom(new InternetAddress("[email protected]"));
msg.addRecipient(Message.RecipientType.<em><i>TO</i></em>,new InternetAddress("[email protected]"));
msg.setSubject("Welcome To My Domain");
BodyPart mbody = new MimeBodyPart();
mbody.setText("Your Message body is sent");
MimeBodyPart mbody1 = new MimeBodyPart();
String filename = "D://articles1.txt";
DataSource source = new FileDataSource(filename);
mbody1.setDataHandler(new DataHandler(source));
mbody1.setFileName(filename);
Multipart mpart = new MimeMultipart();
mpart.addBodyPart(mbody);
mpart.addBodyPart(mbody1);
msg.setContent(mpart );
Transport.<em><i>send</i></em>(msg);
System.<em><i>out</i></em>.println("Your email is sent successfully");
}catch (MessagingException ex) {ex.printStackTrace();}
}
}

Output:

Menghantar Lampiran E-mel dalam Java

  • In the above example, we first set the properties class and call the required mail.smtp.host parameters.
  • By using the session class instance, we can call and validate the user details like username and password.
  • Default session class creation like MimeMessage, MimeBodyPart, and Multipart to connect the user communications.
  • Using try and catch block to get the exception if the condition is not satisfied.
  • The transport protocol and its method for sending the message along with the attachment.

FAQs

Given below are the FAQs mentioned:

Q1. Define sending email with an attachment.

Answer: When enabling the functionality of sending email attachments, the email host, port, username, and password are entered after configuring the email with the email service provider’s credentials.

Q2. What is MimeMultipart in Java?

Answer: The abstract Multipart class is implemented by the MimeMultipart class, which employs MIME standards for multipart data.

Q3. What are the steps to follow sending email with an attachment?

Answer: Get the compose message for the session object.

Create a MimeBodyPart object and specify the message text in it. Create another MimeBodyPart object and add a DataHandler object to it. Create a Multipart object and include MimeBodyPart objects in it.

Send a message by setting the multipart object to the message object.

Conclusion

To obtain the session object, which contains all of the host’s data, including hostname, username, and password. Write the message, the message along with the attachment, and send it. The JavaMail API provides a platform- and protocol-neutral foundation for building mail and messaging applications. The JavaMail API makes a number of abstract classes defining the components of a mail system available.

Atas ialah kandungan terperinci Menghantar Lampiran E-mel dalam Java. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel sebelumnya:Jenis Pengumpul Sampah di JawaArtikel seterusnya:Jenis Pengumpul Sampah di Jawa