Heim  >  Artikel  >  Java  >  So implementieren Sie die E-Mail-Versandfunktion in Springboot

So implementieren Sie die E-Mail-Versandfunktion in Springboot

PHPz
PHPznach vorne
2023-05-13 10:10:061435Durchsuche

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. Erstellen Sie ein neues Springboot-Projekt.

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.

So implementieren Sie die E-Mail-Versandfunktion in Springboot

2

So implementieren Sie die E-Mail-Versandfunktion in Springboot

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

So implementieren Sie die E-Mail-Versandfunktion in Springboot

, um es hinzuzufügen.

So implementieren Sie die E-Mail-Versandfunktion in Springboot

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.

So implementieren Sie die E-Mail-Versandfunktion in Springboot

Wenn das Projekt abgeschlossen ist, beginnen Sie mit dem Schreiben von Testklassen.

2. E-Mails senden

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.

So implementieren Sie die E-Mail-Versandfunktion in Springboot

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

So implementieren Sie die E-Mail-Versandfunktion in Springboot

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!

Stellungnahme:
Dieser Artikel ist reproduziert unter:yisu.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen