Das Versenden von E-Mails ist eine sehr häufige Funktion und ihre Implementierung in Java erfordert die JavaMailSender-Schnittstelle. Im Springboot-Projekt muss eine Abhängigkeit namens spring-boot-starter-mail eingeführt werden. Wenn Anforderungen an das E-Mail-Format bestehen, können Sie eine Spring-boot-starter-thymeleaf-Abhängigkeit einführen, die HTML-Dateien bedienen kann.
<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>
Wie bei anderen automatisierten Konfigurationsmodulen müssen nach Abschluss der Abhängigkeitseinführung die entsprechenden Attributwerte in application.properties
konfiguriert werden, andernfalls meldet die laufende Methode immer einen Nullzeiger.
1. Öffnen Sie die Idee, klicken Sie auf die Schaltfläche „Datei“ in der Symbolleiste in der oberen linken Ecke, um ein neues Boot-Projekt zu erstellen.
2
3. Klicken Sie auf „Fertig stellen“ und warten Sie, bis das Boot-Projektverzeichnis generiert wurde. Das Verzeichnis ist derzeit unvollständig und Sie müssen die Ordner „java“ und „resources“ selbst hinzufügen. Klicken Sie mit der rechten Maustaste auf das Projekt und wählen Sie
, um es hinzuzufügen.
4. Öffnen Sie dann die POM-Datei und führen Sie Abhängigkeiten ein.
5. Öffnen Sie die Konfigurationsdatei und schreiben Sie die entsprechenden Parameter.
Wenn das Projekt abgeschlossen ist, beginnen Sie mit dem Schreiben von Testklassen.
1. Erstellen Sie eine Util-Klasse und schreiben Sie eine Business-Klasse, die die Sendelogik implementiert, da ich beim Senden von E-Mails ein Format mit Anhängen und HTML-Stilen implementieren möchte und kann asynchron sein Wir alle wissen, dass das Versenden von E-Mails sehr zeitaufwändig ist, wenn es um den Betrieb von E-Mails geht, insbesondere bei asynchronen.
2. Fügen Sie eine Möglichkeit zum Schreiben eines asynchronen Aufrufs hinzu:
*Fügen Sie @Async hinzu, wenn Sie asynchrone Methoden benötigen.
*Sie müssen eine Methode hinzufügen, um Asynchronität in der Startup-Klasse zu aktivieren, @EnableAsync.
*Beachten Sie, dass dies der Fall ist Möglicherweise liegt es am AOP-Proxy. Wenn sich die aufgerufene Methode und der aufrufende Code in derselben Klasse befinden, entspricht dies lediglich dem Aufruf dieser Klasse und es wird keine Proxy-Klasse verwendet. Daher hat @Async keine Auswirkung, sondern ist nur ein Tool Klasse.
3. Code: E-Mail mit Anhang
@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"); }
/** * fujian * @throws Exception */ @Async public void sendAttachmentsMail(String[] to, String subject, String contnet) throws Exception { MimeMessage mimeMessage = mailSender.createMimeMessage(); MimeMessageHelper helper = new MimeMessageHelper(mimeMessage, true); helper.setFrom("xxx.com"); helper.setTo(to); helper.setSubject(subject); helper.setText(contnet,true); Path picturePath = Paths.get("E:WorkFiles estBill", "test.png"); byte[] bytes = Files.readAllBytes(picturePath); helper.addAttachment("附件-1.jpg", picturePath.toFile()); mailSender.send(mimeMessage); }
Die E-Mail wurde erfolgreich gesendet
Das obige ist der detaillierte Inhalt vonSo implementieren Sie die E-Mail-Versandfunktion in Springboot. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!