Menghantar e-mel ialah fungsi yang sangat biasa, dan pelaksanaannya dalam Java memerlukan antara muka JavaMailSender. Dalam projek springboot, kebergantungan bernama spring-boot-starter-mail perlu diperkenalkan Jika terdapat keperluan untuk format e-mel, anda boleh memperkenalkan kebergantungan spring-boot-starter-thymeleaf yang boleh mengendalikan fail html.
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-mail</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId> </dependency>
adalah sama seperti modul konfigurasi automatik yang lain Selepas pengenalan kebergantungan selesai, nilai atribut yang sepadan perlu dikonfigurasikan dalam application.properties
, jika tidak kaedah berjalan akan sentiasa melaporkan penunjuk nol.
1. Buka idea, klik butang fail pada bar alat di sudut kiri atas, dan buat projek but baharu
2 pilih kebergantungan lalai, biasa Terdapat sambungan pangkalan data, web, dll.
3. Klik finsh dan tunggu direktori projek but dijana. Direktori pada masa ini tidak lengkap dan anda perlu menambah folder java dan sumber sendiri. Klik kanan item dan pilih
untuk menambahkannya.
4. Kemudian buka fail pom dan perkenalkan dependencies.
5. Buka fail konfigurasi dan tulis parameter yang sepadan.
2. Hantar e-mel
1. Buat kelas util dan tulis kelas perniagaan yang melaksanakan logik penghantaran Tidak perlu menulis kelas alat kerana saya ingin melaksanakan format semasa menghantar e-mel. E-mel dengan lampiran, gaya HTML dan operasi tak segerak Semua orang tahu bahawa menghantar e-mel sangat memakan masa, terutamanya tak segerak.2. Tambah cara untuk menulis panggilan tak segerak:
*Tambah @Async untuk kaedah yang memerlukan kaedah tak segerak *Perlu mendayakan tak segerak pada kaedah kelas permulaan, @EnableAsync
*Perhatikan bahawa ia mungkin disebabkan oleh proksi aop Jika kaedah yang dipanggil dan kod panggilan berada dalam kelas yang sama, ia hanya setara dengan panggilan kelas ini dan tiada kelas proksi. digunakan, jadi @Async Ia tidak mempunyai kesan, ia berada dalam kelas alat. 3 Kod: E-mel dengan lampiran@Test public void sendAttachmentsMail() { Context context = new Context(); context.setVariable("agencyName", "11"); context.setVariable("busTypeName", "22"); context.setVariable("busAllowance", 33); String emailContent = templateEngine.process("emailTeplate", context); try { emailService.sendAttachmentsMail(new String[]{"xxx.com"}, "测试提示", emailContent); } catch (Exception e) { e.printStackTrace(); } System.out.println("send mail success!,please wait a few mintens"); }
Atas ialah kandungan terperinci Bagaimana untuk melaksanakan fungsi penghantaran e-mel dalam springboot. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!