Surat Spring merangkum layanan surat Javamail, membuatnya lebih mudah untuk menggunakan layanan surat. Ambil server kotak surat QQ sebagai contoh, dan gunakan layanan Spring Mail untuk mengirim email.
Konfigurasikan kotak surat QQ, "Pengaturan" - "Akun", buka layanan SMTP, dan hasilkan kode otorisasi
Menghasilkan kode otorisasi memerlukan verifikasi ponsel. Selanjutnya, Anda dapat menggunakan akun email QQ dan kode otorisasi untuk mengirim email, dan tidak perlu untuk kata sandi QQ.
Layanan Spring Mail dikonfigurasi dalam dukungan pegas-konteks, dan kemudian Anda dapat mengirim email dengan server pengiriman yang disediakan oleh QQ Mailbox.
<dependency> <GroupId> javax.mail </groupid> <ArTifactId> mail </t ArtifactId> <version> 1.4.7 </version> </dependency> <dependency> <groupid> org.springframework </groupid> <ArTifactId> Spring-Context-Support </arttifacTid> </groupid> <ArTifactID> Version-Context-pupport </arttifacTid> 3.2.2.2.2.2.2.2.2.2.
Surat teks normal
Tes pertama adalah pesan teks normal
paket com.xmyself.mail; impor org.springframework.mail.simplemailmessage; impor org.springframework.mail.javamail.javamailsenderImpl; kelas publik utama {public static void main (string [] args) {javamailsenderImpl mailsender = new javamailsenderImpl (); mailsender.sethost ("smtp.qq.com"); mailsender.setport (587); mailsender.setusername ("[email protected]"); mailsender.setPassword ("dsruklozelxcbdba"); // kode otorisasi SimpleMailMessage mail = new SimpleMailMessage (); mail.setto ("[email protected]"); mail.setfrom ("[email protected]"); mail.setsubject ("uji surat"); mail.setText ("konten surat uji"); mailsender.send (mail); System.out.println ("Sukses"); }}Jalankan dan kirim email. Catatan: Kode otorisasi bukan kata sandi, portnya bukan 25 tapi 587
Selanjutnya, jaga agar MailSender tidak berubah, memodifikasi jenis surat, dan mengirim pesan email yang kaya
Surat HTML sederhana
Biarkan konten email ditampilkan dalam format HTML, cukup ubah sebagai berikut
Mimemessage mail = mailsender.createMimemessage (); mimemessageHelper helper = mimemessageHelper baru (mail, true); // true digunakan untuk menyalakan mode multipart dan menambahkan gambar atau lampiran helper.setTo("[email protected]");helper.setFrom("[email protected]");helper.setSubject("test mail");helper.setText("<html><head></head><body>" + "<h1>hello!!spring html Mail</h1>" + "</body> </html>", true);Masih mengirim email ini menggunakan MailSender
mailsender.send (mail);
Html mail dengan gambar
Masukkan Tampilan Gambar di Konten HTML dari Email, Ubah Konten Teks
helper.setText("<html><head></head><body>" + "<h1>hello!!spring html Mail</h1>" + "<img src=/"cid:image/" />" + "</body></html>" , true);FileSystemResource image = new FileSystemResource(new File ("d: /test.jpg")); helper.addinline ("gambar", gambar); HTML Mail dengan lampiran
Tambahkan lampiran ke email, konten teks tetap tidak berubah, cukup ubah sebagai berikut
helper.setText ("<Html> <head> </head> <body>" + "<h1> halo !! Spring html mail </h1>" + "</body> </html>", true); fileSystemResource = new filesystemResource (file baru) ("d:/jiles." gambar); Email Template Freemarker
Konten HTML biasanya sangat kaya, dan terlalu berantakan untuk menulis langsung dalam metode settext (). Oleh karena itu, HTML harus dikelola secara terpisah sebagai file, dan kemudian menggunakan alat untuk mengubah kontennya menjadi string sebagai parameter setText (). Berikut ini adalah mesin template freemarker sebagai contoh
Buat direktori Template baru di Direktori Proyek SRC/Main/Resources, dan tempatkan file test.ftl, kontennya sebagai berikut
<Html> <Head> </head> <body> <p> Tes templat freemarker, selamat datang $ {username} </p> <img src = "cid: image"/> </body> </html>Kemudian, gunakan alat yang disediakan oleh Freemarker dan Spring untuk mengubah konten menjadi string, yang tentu saja membutuhkan mengandalkan toples baru
<dependency> <GroupId> org.freemarker </groupid> <ArTifactId> freemarker </arttifactid> <version> 2.3.23 </version> </gandendency>
Buat freemarkerparser.java baru
paket com.xmyself.mail; impor java.util.map; impor org.springframework.ui.freemarker.freemarkerTemplateutils; impor freemarker.template.onfigurasi; impor freemarker.template.template; kelas publik freeMarkerParser {public String tohtmlString (nama string, peta <string, string> data) {@suppressWarnings ("deprecation") configuration config = new configuration (); config.setClassfortemplateLoading (this.getClass (), "/templates/"); coba {template template = config.gettemplate (name); return freemarkerTemplateutils.processTemplateIntoString (template, data); } catch (Exception e) {E.PrintStackTrace (); } return "fail"; }}Ganti konten $ {} dalam templat dengan nilai di peta, konversi file template ke string string
Catatan: Konfigurasi dan pembacaan jalur template selama prosesnya merepotkan, dan sementara ditangani dengan cara ini.
Kode untuk mengirim email hanya membutuhkan perubahan yang sangat kecil
Peta <String, String> Data = HashMap baru <String, String> (); data.put ("username", "chengyi"); string text = new freeMarkerParser (). Tohtmlstring ("test.ftl", data); helper.setText (teks, true); FilesystemResource Image = FileSystemResource baru (file baru ("d: /test.jpg")); helper.addinline ("gambar", gambar);Di atas adalah semua konten artikel ini. Saya berharap ini akan membantu untuk pembelajaran semua orang dan saya harap semua orang akan lebih mendukung wulin.com.