Apa itu Spring Boot
Spring Boot adalah kerangka kerja yang dirancang untuk menyederhanakan konfigurasi konstruksi awal dan proses pengembangan aplikasi pegas. Kerangka kerja ini menggunakan metode konfigurasi tertentu, sehingga pengembang tidak perlu mendefinisikan konfigurasi boilerplate.
Manfaat boot musim semi
1. Konfigurasi sederhana;
2. Pengkodean sederhana;
3. Penempatan sederhana;
4. Pemantauan sederhana;
Ringkasan
Spring Boot mengintegrasikan server surat, dan menggunakan boot Spring dapat dengan mudah mencapai pengiriman email; Urutkan email baru -baru ini pengiriman dan tindakan pencegahan untuk Spring Boot;
Ketergantungan paket Maven
<dependency> <GroupId> org.springframework.boot </groupid> <ArTifactId> Spring-boot-starter-mail </artifactid> </dependency>
Konfigurasi Boot Musim Semi
spring.mail.host = smtp.servie.comspring.mail.username = username // alamat email pengirim spring.mail.password = kata sandi // untuk qq mailbox, kata sandi mengacu pada kode otorisasi.mail.mail.mail. #Apakah untuk mengaktifkan transmisi terenkripsi menggunakan item verifikasi protokol spring.mail.properties.mail.smtp.starttls.Required = fasle #pengenik yang memungkinkan transmisi terenkripsi menggunakan item verifikasi protokol spring.mail.password tidak merupakan kode otorisasi yang perlu dihasilkan dalam kotak surat, yang akan dihasilkan.
Implementasi Kode Musim Semi
Paket com.dbgo.webservicedemo.email; impor org.springframework.beans.factory.annotation.Autowired; impor org.springframework.core.io.filesystemResource; impor org.springframework.mail.javamail.javamailsender; org.springframework.mail.javamail.mimemessageHelper; impor org.springframework.stereotype.component; import javax.mail.messagingException; import javax.mail.internet.mimemessage; impor java.io.file; @component ("componon (" clomeool "mail {loadool" mailool (" Javamailsender Javamailsender; public void sendSimplemail () {mimemessage pesan = null; coba {message = javamailsender.createMimeMessage (); MimemessageHelper helper = mimemessageHelper baru (pesan, true); helper.setfrom ("[email protected]"); helper.setto ("[email protected]"); helper.setsubject ("Judul: Kirim konten html"); StringBuffer SB = StringBuffer baru (); SB.Append ("<H1> Judul-H1 besar-H1 </h1>") .Append ("<p style = 'Color:#f00'> Word merah </p>") .append ("<p style = 'text-align: right'> kanan </p>"); helper.setText (sb.tostring (), true); FileSyStemResource FilesystemResource = FileSystemResource baru (file baru ("d: /76678.pdf")) helper.addattachment ("Faktur elektronik", fileSySySourSource); javamailsender.send (pesan); } catch (MessagingException e) {E.PrintStackTrace (); }}}Kirim email di bawah boot non-musim semi:
Ketergantungan paket Maven
<Dependencies> <dependency> <GroupId> com.sun.mail </groupid> <ArTifactId> javax.mail </artifactid> <version> 1.5.2 </version> </dependency> </dependensi>
Contoh Kode Demo1
Paket com.justin.framework.core.utils.email; import java.io.file; impor java.io.fileinputStream; java.io.unsupportedencodingException; impor java.util.date; impor java.util.properties; impor javax.activation.dataHandler; impor javax.activation.dataSource; impor javax.fileDataSource; impor javax.mail.mail.mail.address. javax.mail.message; impor javax.mail.message.recipienttype; impor javax.mail.message.recipienttype; impor javax.mail.messagingException; impor javax.mail.passwordAuthentication; impor javax.mail.sesesion. javax.mail.internet.internetaddress; impor javax.mail.internet.Mimebodypart; impor javax.mail.internet.mimemessage; import javax.mail.internet.mimemultipart; smailp smailp smail.mail.Ininternet Email Kirim Protokol Private Final Static String Protocol = "SMTP"; // smtp mail server pribadi string statis final host = "mail.tdb.com"; // SMTP Mail Server Default Port Private Final Static String Port = "25"; // apakah akan membutuhkan otentikasi string statis final privat is_auth = "true"; // apakah akan mengaktifkan mode debug (mengaktifkan mode debug untuk mencetak pesan respons dari pertanyaan dan menjawab ketika klien dan server berinteraksi) string statis akhir pribadi is_enabled_debug_mod = "true"; // pengirim string statis pribadi dari = "[email protected]"; // penerima string statis privat ke = "[email protected]"; string statis private sendusername = "[email protected]"; Private Static String sendUserPwd = "New*2016"; // Inisialisasi informasi sesi yang menghubungkan ke server mail Private Static Properties Props = NULL; statis {props = properti baru (); props.setProperty ("mail.enable", "true"); props.setProperty ("mail.transport.protocol", protokol); props.setProperty ("mail.smtp.host", host); props.setProperty ("mail.smtp.port", port); props.setProperty ("mail.smtp.auth", is_auth); // tergantung pada situasinya, props.setProperty ("mail.debug", is_enabled_debug_mod); } / *** Kirim email teks sederhana* / public static boolean sendTextemail (string ke, kode int) melempar pengecualian {coba {// buat sesi sesi sesi sesi sesi1 = session.getDefaultInstance (props); // Buat mimemessage instance objek mimemessage pesan = mimemessage baru (session1); // atur pesan pengirim.setFrom (internetAddress baru (dari)); // Atur pesan subjek email. // Atur pesan penerima. // atur pesan waktu pengiriman.setsentDate (tanggal baru ()); // Atur konten teks biasa ke pesan teks email. // simpan dan hasilkan pesan konten email akhir.savechanges (); // Dapatkan Transport Instance Object Transport Transport = session1.getTransport (); // buka koneksi transport.connect ("meijiajiang2016", ""); // Lewati objek pesan ke objek transportasi dan kirim pesan keluar transport.sendMessage (pesan, message.getAllrecipients ()); // tutup transportasi koneksi.close (); Kembali Benar; } catch (Exception e) {E.PrintStackTrace (); mengembalikan false; }} public static void main (string [] args) melempar Exception {sendHtMlemail ("[email protected]", 8888); } / *** Kirim email html sederhana* / public static boolean sendHtmlemail (string ke, kode int) melempar pengecualian {// buat sesi sesi sesi sesi sesi1 = session.getInstance (props, myAuthenticator baru ()); // Buat mimemessage instance objek mimemessage pesan = mimemessage baru (session1); // Atur pesan subjek email. // atur pengirim pesan.setFrom (internetAddress baru (dari)); // atur kirim waktu pesan.setsentDate (tanggal baru ()); // atur pesan penerima. // Atur konten html ke badan email, tentukan tipe mime ke tipe teks/html, dan tentukan pengkodean karakter sebagai gbk pesan.setContent ("<div style = 'width: 600px; margin: 0 auto'> <h3 style = 'color:#003e64; Text-laign: center;'> <h3 style = 'color:#003e64; Text-laign: center;'> COLTY; '> COLTY; Style = '> Halo pengguna: </p> <p style =' Text-Indent: 2em '> Anda sedang mendaftarkan akun mesin pembakaran internal. Society </p> </div> "," Text/html; charset = UTF-8 "); // atur string nama panggilan pengirim kustom nick = ""; coba {nick = javax.mail.internet.Mimeutility.encodetext ("China Internal Combustion Engine Society"); } catch (UnsupportedEncodingException e) {e.printstacktrace (); } message.setFrom (new internetAddress (nick+"<"+from+">")); // simpan dan hasilkan pesan konten email akhir.savechanges (); // Kirim email coba {transport.send (pesan); Kembali Benar; } catch (Exception e) {E.PrintStackTrace (); mengembalikan false; }} / *** Kirim email html dengan gambar tertanam* / public static void sendHtmlWithInnerImageMail () melempar MessagingException {// buat sesi sesi sesi sesi = session.getDefaultInstance (Props, myAuthentikator baru ()); // Buat konten email mimemessage pesan = mimemessage baru (sesi); // Subjek email, dan tentukan format pengkodean pesan.setsubject ("html mail dengan gambar tertanam", "utf-8"); // pengirim pesan.setFrom (InternetAddress baru (dari)); // penerima pesan. // cc message.setrecipient (penerimaType.cc, new internetAddress ("[email protected]")); // Secret Send (tidak ditampilkan dalam daftar penerima email) pesan. // kirim kali pesan.setsentDate (tanggal baru ()); // Buat objek mimemultipart dengan mime subtipe "terkait" mimemultipart mp = mimemultipart baru ("terkait"); // Buat objek mimebodypart yang mewakili tubuh dan tambahkan ke objek mimemultipart yang dibuat sebelumnya mimebodypart htmlpart = mimebodypart baru (); mp.addbodypart (htmlpart); // Buat objek Mimebodypart yang mewakili sumber daya gambar dan tambahkan ke objek Mimemultipart yang dibuat sebelumnya mimebodypart imagepart = mimebodypart baru (); mp.addbodypart (imagepart); // Atur objek Mimemultipart ke konten seluruh pesan pesan.setContent (MP); // Atur body body surat gambar tertanam DataSource ds = new fileDataSource (file baru ("sumber daya/firefoxlogo.png")); DataHandler DH = DataHandler baru (DS); ImagePart.setDataHandler (DH); imagePart.setContentId ("firefoxlogo.png"); // Atur nomor konten yang akan digunakan untuk referensi badan surat lainnya // Buat objek Mimemultipart dengan subtipe mime "alternatif" dan berfungsi sebagai konten email dari objek htmlpart yang dibuat sebelumnya mimemultipart htmlmultipart = mimemultipart baru ("alternatif"); // Buat objek mimebodypart yang mewakili html body mimebodypart htmlbodypart = mimebodypart baru (); // di mana cid = androidlogo.gif adalah gambar di dalam pesan referensi, yaitu, imagepart.setContentId ("androidlogo.gif"); metode htmlbodypart.setContent ("<span style = 'color: red;'> Ini adalah email html dengan gambar tertanam !!! <img src =/" cid: firefoxlogo.png/"/> </span>", "text/html; charset = utf-8"); htmlmultipart.addbodypart (htmlbodypart); htmlpart.setContent (htmlmultipart); // simpan dan hasilkan pesan konten email akhir.savechanges (); // Kirim email transport.send (pesan); } / *** Kirim pesan html lengkap dengan gambar tertanam, lampiran, banyak penerima (menampilkan nama kotak surat), prioritas email, dan membaca tanda terima* / public static void sendMultipleemail () melempar pengecualian {string charset = "UTF-8"; // Tentukan format pengkodean Cina // Buat sesi sesi sesi sesi sesi = session.getInstance (alat peraga, myauthenticator baru ()); // Buat mimemessage instance objek mimemessage pesan = mimemessage baru (sesi); // Atur Topic Message.setsubject ("Gunakan Javamail untuk mengirim tes surat kombinasi campuran"); // Setel pengirim pesan.setFrom (new internetAddress (dari, "SINA Test Email", Charset)); // Setel pesan penerima. InternetAddress ("[email protected]", "Li si_163", charset),}); // atur cc message.setrecipient (recepementType.cc, new internetAddress ("[email protected]", "wang wu_gmail", charset)); // atur pesan rahasia // atur kirim waktu pesan.setsentDate (tanggal baru ()); // Setel Balas (penerima default diberikan ketika penerima menanggapi email ini) pesan. // Tetapkan prioritas (1: darurat 3: normal 5: rendah) pesan.setHeader ("x-prioritas", "1"); // Minta tanda terima bacaan (penerima akan meminta pengirim untuk membalas saat membaca email, menunjukkan bahwa email telah diterima dan telah dibaca) pesan. // Buat objek Mimemultipart dengan subtipe mime "campuran", menunjukkan bahwa ini adalah tipe kombinasi campuran email mimemultipart mailcontent = mimemultipart baru ("campuran"); message.setContent (mailcontent); // lampiran mimebodypart attach1 = mimebodypart baru (); Mimebodypart attach2 = mimebodypart baru (); // konten mimebodypart mailbody = mimebodypart baru (); // Tambahkan lampiran dan konten ke mail mailcontent.addbodypart (lampiran1); mailcontent.addbodypart (lampiran2); mailcontent.addbodypart (mailbody); // Lampiran 1 (Gunakan kerangka kerja JAF untuk menghasilkan badan surat) DataSource ds1 = new FileDataSource ("Resource/Earth.bmp"); DataHandler DH1 = DataHandler baru (DS1); lampiran1.setFileName (mimeutility.encodetext ("earth.bmp")); lampiran1.setDataHandler (DH1); // lampiran 2 DataSource ds2 = new FileDataSource ("Sumber Daya/Cara Belajar C Bahasa C Well.txt"); DataHandler DH2 = DataHandler baru (DS2); lampiran2.setDataHandler (DH2); lampiran2.setFileName (mimeutility.encodetext ("Cara mempelajari bahasa C well.txt")); // Badan Email (gambar tertanam + teks html) mimemultipart body = mimemultipart baru ("terkait"); // Badan email juga merupakan kombinasi, dan hubungan kombinasi perlu ditentukan mailbody.setContent (body); // Tubuh email terdiri dari html dan gambar mimebodypart imgpart = mimebodypart baru (); Mimebodypart htmlpart = mimebodypart baru (); body.addbodypart (imgpart); body.addbodypart (htmlpart); // gambar teks DataSource ds3 = new FileDataSource ("Resource/firefoxlogo.png"); DataHandler DH3 = DataHandler baru (DS3); imgpart.setDataHandler (DH3); imgpart.setContentId ("firefoxlogo.png"); // konten email html mimemultipart htmlmultipart = mimemultipart baru ("alternatif"); htmlpart.setContent (htmlmultipart); Mimebodypart htmlcontent = mimebodypart baru (); htmlcontent.setContent ("<span style = 'color: red'> Ini adalah email yang saya kirim dengan java mail sendiri!" + "<img src = 'cid: firefoxlogo.png'/> </span>", "teks/html; charset = gbk"); htmlmultipart.addbodypart (htmlcontent); // simpan konten pesan dan ubah pesan.savechanges (); /*File emml = buildeMlFile (pesan); sendmailforeml (eml);*/ // kirim surat transport.send (pesan); }/*** Hasilkan file EML ke konten email* @param pesan konten email*/public static file buildeMlFile (pesan pesan) melempar MessagingException, FileNotFoundException, ioException {file file = file baru ("c:/" + mimeutility.decodeText (message.getsubject ())) () () () () (); ");"). message.writeto (FileOutputStream baru (file)); pengembalian file; } / *** Kirim file email yang dihasilkan secara lokal* / public static void sendMailForeml (file emml) melempar pengecualian {// dapatkan sesi email sesi sesi = session.getInstance (props, myAuthenticator baru ()); // Dapatkan konten email, yaitu file EML yang dihasilkan sebelum terjadi inputStream adalah = FileInputStream baru (EML); MIMEMESSAGE Pesan = mimemessage baru (sesi, IS); // Kirim email transport.send (pesan); } / *** Kirim informasi otentikasi ke server email* / kelas statis myAuthenticator memperluas authenticator {private string username = ""; Private String Password = ""; public myAuthenticator () {super (); this.password = senduserpwd; this.username = sendusername; } public myAuthenticator (string username, string password) {super (); this.username = nama pengguna; this.password = kata sandi; } @Override Protected PasswordAuthentication getPasswordAuthentication () {return New PasswordAuthentication (nama pengguna, kata sandi); }}}
Contoh Kode Demo2:
Paket com.justin.framework.core.utils.email; import java.util.hashset; impor java.util.properties; import java.util.set; impor javax.activation.dataHandler; impor javax.activation.fileDataSource; impor javax.mail.address; impor javax.activation.fileDataSource; impor javax.mail.address; import; impor javax. javax.mail.message; import javax.mail.multipart; impor javax.mail.Session; import javax.mail.transport; impor javax.mail.internet.internetaddress; impor javax.mailet.imebodypart; impor javax.mail. javax.mail.internet.mimemultipart; import javax.mail.internet.mimeutility; kelas publik mailManagerutils {// kirim email public static boolean sendmail (email) {string subjek = email.getsubject (); String content = email.getContent (); String [] rekrutor = email.getRecevers (); String [] Hak cipta = email.getCopyTo (); String attbody = email.getattbody (); String [] attbodys = email.getattbodys (); if (recievers == null || collecters.length <= 0) {return false; } coba {properti props = properti baru (); props.setProperty ("mail.enable", "true"); props.setProperty ("mail.protocal", "smtp"); props.setProperty ("mail.smtp.auth", "true"); props.setProperty ("mail.user", "[email protected]"); props.setProperty ("mail.pass", "new ***"); props.setProperty ("mail.smtp.host", "mail.tdb.com"); props.setProperty ("mail.smtp.from", "[email protected]"); props.setProperty ("mail.smtp.fromname", "tdbvc"); // Buat program untuk berkomunikasi dengan sesi server mail mailconnection = session.getInstance (props, null); Pesan msg = mimemessage baru (mailconnection); // atur pengirim dan alamat penerima pengirim = internetAddress baru (props.getProperty ("mail.smtp.from")); // Beberapa penerima msg.setFrom (pengirim); Set <et InternetAddress> touserset = hashset baru <EnTENETADDRESS> (); // Mailbox validity validation for (int i = 0; i < receivers.length; i++) { if (recievers[i].trim().matches("^//w+([-+.]//w+)*@//w+([-.]//w+)+$")) { toUserSet.add(new InternetAddress(recievers[i].trim())); }} msg.setrecipients (message.recipienttype.to, Touserset.toArray (InternetAddress baru [0])); // atur cc if (copyto! = Null) {set <et InternetAddress> copyTouserset = new HashSet <EnTENETADDRESS> (); // Email validitas valid untuk (int i = 0; i <copyto.length; i ++) {if (copyto [i] .trim (). Mencocokkan ("^// w+([-+.] // w+)*@// w+([-.] // w+)+$")) {copyerset.add (copyset.address (copyset.add () (copytousto (copytousto. }} // msg.setrecipients (message.recipienttype.cc, (alamat []) internetAddress.parse (copyto)); msg.setrecipients (message.recipienttype.cc, copytouserset.toArray (InternetAddress baru [0])); } // Atur subjek email msg.setsubject (mimeutility.encodetext (subjek, "utf-8", "b")); // Masalah Kode Berkaca Daya Cina // Atur konten email Bodypart MessageBodyPart = new mimebodypart (); MessageBodyPart.setContent (konten, "Teks/html; charset = UTF-8"); // Multipart Multipart = Mimemultipart baru (); multipart.addbodypart (MessageBodyPart); msg.setContent (multipart); / *************************************/ if (attbody! = null) {string [] filepath = attbody.split (";"); untuk (string filepath: filepath) {// atur lampiran huruf (gunakan file pada mesin lokal sebagai lampiran) bodypart mdp = mimebodypart baru (); FileDataSource fds = FileDataSource baru (FilePath); DataHandler DH = DataHandler baru (FDS); mdp.setFileName (mimeutility.encodetext (fds.getName ())); MDP.SetDataHandler (DH); multipart.addbodypart (MDP); } // Masukkan MTP sebagai konten dari objek pesan msg.setContent (multipart); }; if (attbodys! = null) {for (string filepath: attbodys) {// atur lampiran huruf (gunakan file pada mesin lokal sebagai lampiran) bodypart mdp = mimebodypart baru (); FileDataSource fds = FileDataSource baru (FilePath); DataHandler DH = DataHandler baru (FDS); mdp.setFileName (mimeutility.encodetext (fds.getName ())); MDP.SetDataHandler (DH); multipart.addbodypart (MDP); } // Masukkan MTP sebagai konten dari objek pesan msg.setContent (multipart); }; /************************************************* // Simpan email pertama msg.savechanges (); System.out.println ("Email sedang dikirim ......"); Transfer transport = mailconnection.getTransport (props.getproperty ("mail.protocal")); // nama server surat, nama pengguna, kata sandi trans.connect (props.getProperty ("mail.smtp.host"), props.getproperty ("mail.user"), props.getproperty ("mail.pass")); trans.sendMessage (msg, msg.getallrecipients ()); System.out.println ("Kirim surat berhasil!"); // tutup saluran if (trans.isconnected ()) {trans.close (); } return true; } catch (Exception e) {System.err.println ("Email Kirim Gagal!" + E); mengembalikan false; } akhirnya {}} // pengirim, penerima, dan pemegang balasan telah mengacak -acak kode Cina dalam email, res adalah alamat yang diperoleh // metode pengkodean default http adalah iSo8859_1 // untuk mengirimkan alamat pubatik, Gunakan Mimeutility.decodetex Metode // Untuk yang lain, untuk mengonversi alamat China, menggunakan Mimeutility. getChinesEfrom (string res) {string from = res; coba {if (from.startswith ("=? gb") || from.startswith ("=? gb") || from.startswith ("=? utf")) {from = mimeutility.decodetext (from); } else {from = new string (from.getBytes ("iso8859_1"), "gbk"); }} catch (Exception e) {e.printstacktrace (); } kembali dari; } // Konversi ke GBK mengkode public static string tochinese (string strvalue) {coba {if (strvalue == null) return null; else {strvalue = string baru (strvalue.getbytes ("iso8859_1"), "gbk"); mengembalikan strvalue; }} catch (Exception e) {return null; }} public static void main (string [] args) {email email = email baru (); email.setrecievers (string baru [] {"[email protected]"}); email.setsubject ("tes tes"); email.setContent ("tes tes"); sendmail (email); }}Meringkaskan
Di atas adalah seluruh konten artikel ini. Saya berharap konten artikel ini memiliki nilai referensi tertentu untuk studi atau pekerjaan semua orang. Jika Anda memiliki pertanyaan, Anda dapat meninggalkan pesan untuk berkomunikasi. Terima kasih atas dukungan Anda ke wulin.com.