Maison >Java >javaDidacticiel >Comment implémenter la fonction d'envoi d'e-mails dans Springboot

Comment implémenter la fonction d'envoi d'e-mails dans Springboot

PHPz
PHPzavant
2023-05-13 10:10:061563parcourir

L'envoi d'emails est une fonction très courante, et son implémentation en Java nécessite l'interface JavaMailSender. Dans le projet springboot, une dépendance nommée spring-boot-starter-mail doit être introduite. S'il existe des exigences concernant le format de l'e-mail, vous pouvez introduire une dépendance spring-boot-starter-thymeleaf qui peut gérer les fichiers 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>

Comme les autres modules de configuration automatisés, une fois l'introduction des dépendances terminée, les valeurs d'attribut correspondantes doivent être configurées dans application.properties, sinon la méthode en cours d'exécution signalera toujours un pointeur nul.

1. Créez un nouveau projet springboot.

1. Ouvrez l'idée, cliquez sur le bouton Fichier dans la barre d'outils dans le coin supérieur gauche pour créer un nouveau projet de démarrage

Comment implémenter la fonction denvoi de-mails dans Springboot

2 Cliquez sur Suivant et sélectionnez les dépendances par défaut, les plus courantes incluent la connexion à la base de données, le Web, etc.

Comment implémenter la fonction denvoi de-mails dans Springboot

3. Cliquez sur Finish, attendez que le répertoire du projet de démarrage soit généré. Le répertoire est actuellement incomplet et vous devez ajouter vous-même les dossiers Java et Resources. Faites un clic droit sur le projet et sélectionnez

Comment implémenter la fonction denvoi de-mails dans Springboot

pour l'ajouter.

Comment implémenter la fonction denvoi de-mails dans Springboot

4. Ouvrez ensuite le fichier pom et introduisez les dépendances.

5. Ouvrez le fichier de configuration et écrivez les paramètres correspondants

Comment implémenter la fonction denvoi de-mails dans Springboot

Une fois le projet terminé, commencez à écrire les classes de test.

2. Envoyer des e-mails

1. Créez une classe util et écrivez une classe métier qui implémente la logique d'envoi. Il n'est pas nécessaire d'écrire une classe d'outils, car je souhaite implémenter un format lors de l'envoi d'e-mails, avec des pièces jointes et des styles HTML. , et peut être asynchrone Nous savons tous que l'envoi d'e-mails prend beaucoup de temps lorsqu'il s'agit de gérer des e-mails, notamment asynchrones.

Comment implémenter la fonction denvoi de-mails dans Springboot

2. Ajoutez une méthode d'écriture d'appel asynchrone :

*Ajoutez @Async si vous avez besoin d'une méthode asynchrone
*Vous devez ajouter une méthode pour activer l'asynchrone sur la classe de démarrage, @EnableAsync
*Notez que cela peut être à cause du proxy aop, si la méthode appelée et le code appelant sont dans la même classe, cela équivaut simplement à cet appel de classe, et aucune classe proxy n'est utilisée, donc @Async n'a aucun effet, c'est juste une classe d'outils.

3. Code : Email avec pièce jointe

 @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);
 
    }

L'e-mail a été envoyé avec succès

Comment implémenter la fonction denvoi de-mails dans Springboot

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer