Javamail API - Menghantar E -mel Menggunakan Java dari Gmail SMTP

Javamail API - Menghantar E -mel Menggunakan Java dari Gmail SMTP

API Javamail Menyokong Javamail (Javax.mel) antara muka untuk menghantar mesej e -mel. Ia menyediakan kelas untuk menghantar e -mel dari pelayan smtp jauh dengan pengesahan seperti gmail, sendgrid dll.

Dalam artikel ini kami menggunakan API Javamail untuk menghantar e -mel menggunakan bahasa pengaturcaraan Java melalui pelayan SMTP jauh. Contoh artikel ini menggunakan pelayan smtp gmail sebagai pelayan smtp jauh untuk menghantar e -mel.

Langkah 1: Persediaan Persekitaran Javamail

Mula -mula kita perlu memuat turun fail balang yang mengandungi semua kelas di javax.mel. Muat turun balang (mel.balang) fail dari laman web rasmi Oracle.

Sekarang tetapkan kelas dalam persekitaran sistem. Pengguna Windows pastikan anda telah mengkonfigurasi pembolehubah laluan untuk pemasangan Java anda.

Windows:

c:> tetapkan classpath = mel.balang;.; 

Linux:

# Eksport java_home =/opt/jdk1.8.0_05/ # Path Export = $ Path: $ java_home/bin # Export classpath = $ java_home/jre/lib/ext: $ java_home/lib/alat.JAR: Mel.balang:. 

Langkah 2: Tulis program Java untuk menghantar e -mel

Buat fail Java Hantar surat.Java dengan kandungan berikut. Dalam skrip ini, anda perlu menukar banyak tetapan mengikut persediaan anda. Skrip ini boleh digunakan untuk menghantar e -mel melalui sambungan TLS atau SSL SMTP melalui pelayan SMTP Gmail.

Import Java.util.Sifat; Import Javax.mel.Mesej; Import Javax.mel.MessagingException; Import Javax.mel.Kata laluanAuthentication; Import Javax.mel.Sesi; Import Javax.mel.Pengangkutan; Import Javax.mel.Internet.InternetAddress; Import Javax.mel.Internet.Mimemessage; Import Javax.mel.Internet.AlamatException; kelas awam Sendmail public static void main (string [] args) melemparkan pengecualian final string smtp_host = "smtp.gmail.com "; String akhir smtp_username =" [email protected] "; rentetan akhir smtp_password =" _email_password_ "; String akhir smtp_connection =" tls "; // menggunakan 'tls' atau 'ssl' connection final string toemail =" penerima@[email protected] "; rentetan akhir dariEmail =" [email protected] "; props props = Properties baru (); props.masukkan ("mel.SMTP.auth "," benar "); jika (smtp_connection.sama dengan ("tls")) props.masukkan ("mel.SMTP.starttls.membolehkan "," benar "); props.masukkan ("mel.SMTP.pelabuhan "," 587 "); else props.masukkan ("mel.SMTP.socketfactory.pelabuhan "," 465 "); props.masukkan ("mel.SMTP.socketfactory.Kelas "," Javax.jaring.SSL.Sslsocketfactory "); props.masukkan ("mel.SMTP.pelabuhan "," 465 "); sesi sesi = sesi.getInstance (alat peraga, javax baru.mel.Authenticator () dilindungi passwordAuthentication GetPassWordAuthentication () return new passwordAuthentication (smtp_username, smtp_password); ); cuba mesej msg = mimeMessage baru (sesi); msg.setFrom (InternetAddress baru (dariMemail, "noreply")); msg.addRecipient (mesej.Penerima.Kepada, InternetAddress baru (Toemail, "Encik. Penerima ")); msg.setSubject ("Selamat datang ke Javamail API"); msg.Settext ("Ujian API Javamail - menghantar contoh e -mel melalui pelayan SMTP jauh"); Pengangkutan.hantar (msg); Sistem.keluar.println ("E -mel dihantar dengan jayanya ..."); tangkapan (alamatException e) membuang runtimeException baru (e); menangkap (MessagingException e) membuang runtimeException baru (e);
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657Import Java.util.Sifat; import javax.mel.Mesej; import javax.mel.MessagingException; import javax.mel.Kata laluan.mel.Sesi; import javax.mel.Pengangkutan; import javax.mel.Internet.Internetaddress; import javax.mel.Internet.Mimemessage; import javax.mel.Internet.AlamatException; kelas awam Sendmail public static void main (string [] args) melemparkan pengecualian final string smtp_host = "smtp.gmail.com "; String akhir smtp_username =" [email protected] "; rentetan akhir smtp_password =" _email_password_ "; String akhir smtp_connection =" tls "; // menggunakan 'tls' atau 'ssl' connection final string toemail =" [email protected] "; rentetan akhir dariEmail =" [email protected] "; props props = Properties baru (); props.masukkan ("mel.SMTP.auth "," benar "); jika (smtp_connection.sama dengan ("tls")) props.masukkan ("mel.SMTP.starttls.membolehkan "," benar "); props.masukkan ("mel.SMTP.pelabuhan "," 587 "); else props.masukkan ("mel.SMTP.socketfactory.pelabuhan "," 465 "); props.masukkan ("mel.SMTP.socketfactory.Kelas "," Javax.jaring.SSL.Sslsocketfactory "); props.masukkan ("mel.SMTP.pelabuhan "," 465 "); sesi sesi = sesi.getInstance (alat peraga, javax baru.mel.Authenticator () dilindungi passwordAuthentication GetPassWordAuthentication () return new passwordAuthentication (smtp_username, smtp_password); ); cuba mesej msg = mimeMessage baru (sesi); msg.setFrom (InternetAddress baru (dariMemail, "noreply")); msg.addRecipient (mesej.Penerima.Kepada, InternetAddress baru (Toemail, "Encik. Penerima ")); msg.setSubject ("Selamat datang ke Javamail API"); msg.Settext ("Ujian API Javamail - menghantar contoh e -mel melalui pelayan SMTP jauh"); Pengangkutan.hantar (msg); Sistem.keluar.println ("E -mel berjaya dihantar..."); tangkapan (alamatException e) membuang runtimeException baru (e); menangkap (MessagingException e) membuang runtimeException baru (e);

Langkah 3: Laksanakan program untuk menghantar e -mel

Akhirnya kita perlu melaksanakan program Java untuk menghantar e -mel. Seperti yang kita tahu bahawa ini berlaku dalam dua langkah, pertama untuk menyusun program dan kedua untuk menjalankannya.

# Javac Sendmail.Java # Java Sendmail