Maison Java javaDidacticiel Exemple d'utilisation de JavaMailSender pour envoyer des e-mails dans Spring Boot (code source joint)

Exemple d'utilisation de JavaMailSender pour envoyer des e-mails dans Spring Boot (code source joint)

Mar 09, 2017 am 10:10 AM

Cet article présente principalement des exemples d'utilisation de JavaMailSender pour envoyer des e-mails dans Spring Boot. Je pense que de nombreux développeurs qui ont utilisé Spring savent que Spring fournit une interface JavaMailSender très simple à utiliser pour envoyer des e-mails. La configuration automatique est également fournie dans le module Starter de Spring Boot. Les amis dans le besoin peuvent s'y référer.

Démarrage rapide

Introduisez la dépendance spring-boot-starter-mail dans pom.xml dans le projet Spring Boot :

<dependency>
 <groupId>org.springframework.boot</groupId>
 <artifactId>spring-boot-starter-mail</artifactId>
</dependency>
Copier après la connexion

Comme les autres modules de configuration automatisés, après avoir terminé l'introduction des dépendances, il vous suffit de configurer le contenu de l'attribut correspondant dans application.properties .

Prenons l'exemple de la boîte aux lettres QQ et ajoutons la configuration suivante dans application.properties (note pour remplacer votre nom d'utilisateur et votre mot de passe) :

spring.mail.host=smtp.qq.com
spring.mail.username=用户名
spring.mail.password=密码
spring.mail.properties.mail.smtp.auth=true
spring.mail.properties.mail.smtp.starttls.enable=true
spring.mail.properties.mail.smtp.starttls.required=true
Copier après la connexion

Utilisez les tests unitaires pour envoyer un simple email :

@RunWith(SpringJUnit4ClassRunner.class)
@SpringApplicationConfiguration(classes = Application.class)
public class ApplicationTests {
 @Autowired
 private JavaMailSender mailSender;
 @Test
 public void sendSimpleMail() throws Exception {
 SimpleMailMessage message = new SimpleMailMessage();
 message.setFrom("dyc87112@qq.com");
 message.setTo("dyc87112@qq.com");
 message.setSubject("主题:简单邮件");
 message.setText("测试邮件内容");
 mailSender.send(message);
 }
}
Copier après la connexion

Ici, un simple email est envoyé. exécuter le test unitaire et voir comment cela fonctionne ?

« Étant donné que le module de démarrage de Spring Boot fournit une configuration automatisée, après avoir introduit la dépendance spring-boot-starter-mail, une instance JavaMailSender sera créée en fonction du contenu du fichier de configuration, afin que nous puissions la configurer directement lorsque nécessaire Utilisez @Autowired directement pour introduire l'objet d'envoi de courrier »

Utilisation avancée

Dans l'exemple ci-dessus, nous utilisons SimpleMailMessage. utilisé pour un simple envoi d'e-mails, mais en utilisation réelle, nous pouvons également apporter des pièces jointes, ou utiliser le module email, etc. À l'heure actuelle, nous devons utiliser MimeMessage pour définir un contenu de courrier électronique plus complexe. Implémentons-le dans l'ordre.

Envoyer la pièce jointe

Ajoutez le cas de test suivant au test unitaire ci-dessus (envoyer un e-mail avec pièce jointe via MimeMessageHelper) :

@Test
public void sendAttachmentsMail() throws Exception {
 MimeMessage mimeMessage = mailSender.createMimeMessage();
 MimeMessageHelper helper = new MimeMessageHelper(mimeMessage, true);
 helper.setFrom("dyc87112@qq.com");
 helper.setTo("dyc87112@qq.com");
 helper.setSubject("主题:有附件");
 helper.setText("有附件的邮件");
 FileSystemResource file = new FileSystemResource(new File("weixin.jpg"));
 helper.addAttachment("附件-1.jpg", file);
 helper.addAttachment("附件-2.jpg", file);
 mailSender.send(mimeMessage);
}
Copier après la connexion

Intégrer des ressources statiques

En plus d'envoyer des pièces jointes, nous souhaiterons peut-être intégrer des ressources statiques telles que des images dans le contenu de l'e-mail pour obtenir Pour une meilleure expérience de lecture de l'e-mail, au lieu de visualiser des images spécifiques de la pièce jointe, le cas de test suivant montre comment intégrer des ressources statiques dans le corps de l'e-mail via MimeMessageHelper.

@Test
public void sendInlineMail() throws Exception {
 MimeMessage mimeMessage = mailSender.createMimeMessage();
 MimeMessageHelper helper = new MimeMessageHelper(mimeMessage, true);
 helper.setFrom("dyc87112@qq.com");
 helper.setTo("dyc87112@qq.com");
 helper.setSubject("主题:嵌入静态资源");
 helper.setText("<html><body><img src=\"cid:weixin\" ></body></html>", true);
 FileSystemResource file = new FileSystemResource(new File("weixin.jpg"));
 helper.addInline("weixin", file);
 mailSender.send(mimeMessage);
}
Copier après la connexion

Ce qu'il faut noter ici, c'est que le nom de la ressource weixin dans la fonction addInline doit correspondre au cid:weixin dans le texte

Modèles d'e-mails

Habituellement, lorsque nous utilisons des services d'envoi d'e-mails, il existe certains scénarios fixes, tels que la réinitialisation du mot de passe, la confirmation de l'inscription, etc., et seulement une petite partie du le contenu envoyé à chaque utilisateur peut changer. Par conséquent, nous utiliserons souvent un moteur de modèles pour définir des modèles pour différents types d'e-mails, de sorte que nous n'ayons besoin que de remplacer les paramètres modifiés lors de l'envoi.

Il est également très simple d'utiliser le moteur de modèles de Spring Boot pour implémenter l'envoi d'e-mails par modèle. Prenons Velocity comme exemple pour l'implémenter.

Introduisez les dépendances du module de vélocité :

<dependency>
 <groupId>org.springframework.boot</groupId>
 <artifactId>spring-boot-starter-velocity</artifactId>
</dependency>
Copier après la connexion

Sous ressources/templates/, créez une page modèle template.vm :

<html>
<body>
 <h3>你好, ${username}, 这是一封模板邮件!</h3>
</body>
</html>
Copier après la connexion

Lorsque nous développions des applications Web dans Spring Boot auparavant, nous avons mentionné que dans la configuration automatisée de Spring Boot, les modèles se trouvent dans le dossier ressources/modèles/ répertoire par défaut.

Enfin, nous ajoutons un scénario de test pour l'envoi d'e-mails de modèles au test unitaire, comme suit :

@Test
public void sendTemplateMail() throws Exception {
 MimeMessage mimeMessage = mailSender.createMimeMessage();
 MimeMessageHelper helper = new MimeMessageHelper(mimeMessage, true);
 helper.setFrom("dyc87112@qq.com");
 helper.setTo("dyc87112@qq.com");
 helper.setSubject("主题:模板邮件");
 Map<String, Object> model = new HashedMap();
 model.put("username", "didi");
 String text = VelocityEngineUtils.mergeTemplateIntoString(
 velocityEngine, "template.vm", "UTF-8", model);
 helper.setText(text, true);
 mailSender.send(mimeMessage);
}
Copier après la connexion

Essayez de l'exécuter, vous pouvez simplement recevoir le contenu à votre bénéfice, didi, ceci est un modèle d'e-mail . Ici, nous remplaçons la variable ${username} dans le modèle dans le contenu de l'e-mail en passant le paramètre username.


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 de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Un nouveau paradigme de programmation, quand Spring Boot rencontre OpenAI Un nouveau paradigme de programmation, quand Spring Boot rencontre OpenAI Feb 01, 2024 pm 09:18 PM

En 2023, la technologie de l’IA est devenue un sujet brûlant et a un impact énorme sur diverses industries, notamment dans le domaine de la programmation. Les gens sont de plus en plus conscients de l’importance de la technologie de l’IA, et la communauté Spring ne fait pas exception. Avec l’évolution continue de la technologie GenAI (Intelligence Artificielle Générale), il est devenu crucial et urgent de simplifier la création d’applications dotées de fonctions d’IA. Dans ce contexte, « SpringAI » a émergé, visant à simplifier le processus de développement d'applications fonctionnelles d'IA, en le rendant simple et intuitif et en évitant une complexité inutile. Grâce à « SpringAI », les développeurs peuvent plus facilement créer des applications dotées de fonctions d'IA, ce qui les rend plus faciles à utiliser et à exploiter.

Utilisez Spring Boot et Spring AI pour créer des applications d'intelligence artificielle générative Utilisez Spring Boot et Spring AI pour créer des applications d'intelligence artificielle générative Apr 28, 2024 am 11:46 AM

En tant que leader du secteur, Spring+AI fournit des solutions de pointe pour divers secteurs grâce à son API puissante et flexible et ses fonctions avancées. Dans cette rubrique, nous examinerons les exemples d'application de Spring+AI dans divers domaines. Chaque cas montrera comment Spring+AI répond à des besoins spécifiques, atteint ses objectifs et étend ces LEÇONS APPRISES à une gamme plus large d'applications. J'espère que ce sujet pourra vous inciter à comprendre et à utiliser plus profondément les possibilités infinies de Spring+AI. Le framework Spring a une histoire de plus de 20 ans dans le domaine du développement logiciel, et cela fait 10 ans que la version Spring Boot 1.0 est sortie. Maintenant, personne ne peut contester ce printemps

Quelles sont les méthodes de mise en œuvre des transactions programmatiques Spring ? Quelles sont les méthodes de mise en œuvre des transactions programmatiques Spring ? Jan 08, 2024 am 10:23 AM

Comment implémenter les transactions programmatiques Spring : 1. Utilisez TransactionTemplate ; 2. Utilisez TransactionCallback et TransactionCallbackWithoutResult ; 3. Utilisez les annotations Transactional ; 4. Utilisez TransactionTemplate en combinaison avec @Transactional ;

Pratique de développement PHP : utilisez PHPMailer pour envoyer des e-mails aux utilisateurs de la base de données MySQL Pratique de développement PHP : utilisez PHPMailer pour envoyer des e-mails aux utilisateurs de la base de données MySQL Aug 05, 2023 pm 06:21 PM

Pratique de développement PHP : utilisez PHPMailer pour envoyer des e-mails aux utilisateurs de la base de données MySQL Introduction : Dans la construction de l'Internet moderne, l'e-mail est un outil de communication important. Qu’il s’agisse d’enregistrement d’utilisateur, de réinitialisation de mot de passe ou de confirmation de commande en e-commerce, l’envoi d’emails est une fonction essentielle. Cet article explique comment utiliser PHPMailer pour envoyer des e-mails et enregistrer les informations de courrier électronique dans le tableau d'informations utilisateur de la base de données MySQL. 1. Installez la bibliothèque PHPMailer PHPMailer est

Les différences et les connexions entre Spring Boot et Spring Cloud Les différences et les connexions entre Spring Boot et Spring Cloud Jun 22, 2023 pm 06:25 PM

SpringBoot et SpringCloud sont tous deux des extensions de Spring Framework qui aident les développeurs à créer et déployer des applications de microservices plus rapidement, mais elles ont chacune des objectifs et des fonctions différents. SpringBoot est un framework permettant de créer rapidement des applications Java, permettant aux développeurs de créer et de déployer plus rapidement des applications basées sur Spring. Il fournit un moyen simple et facile à comprendre de créer des applications Spring autonomes et exécutables.

Comment envoyer des e-mails avec Flask-Mail Comment envoyer des e-mails avec Flask-Mail Aug 02, 2023 am 10:17 AM

Comment utiliser Flask-Mail pour envoyer des e-mails Avec le développement d'Internet, le courrier électronique est devenu un outil important pour communiquer. Lors du développement d'applications Web, nous devons parfois envoyer des e-mails dans des scénarios spécifiques, comme l'envoi d'un e-mail de bienvenue après l'inscription réussie d'un utilisateur, ou l'envoi d'un e-mail de réinitialisation de mot de passe lorsqu'un utilisateur oublie son mot de passe, etc. Flask est un framework Web Python simple et flexible, et Flask-Mail est une bibliothèque d'extensions pour envoyer des e-mails sous le framework Flask. Cet article explique comment le faire.

Comment définir le niveau d'isolement des transactions au printemps Comment définir le niveau d'isolement des transactions au printemps Jan 26, 2024 pm 05:38 PM

Comment définir le niveau d'isolement des transactions dans Spring : 1. Utilisez l'annotation @Transactional ; 2. Définissez-le dans le fichier de configuration Spring ; 3. Utilisez PlatformTransactionManager ; Introduction détaillée : 1. Utilisez l'annotation @Transactional, ajoutez l'annotation @Transactional à la classe ou à la méthode qui nécessite la gestion des transactions et définissez le niveau d'isolement dans l'attribut 2. Dans le fichier de configuration Spring, etc.

Les 7 annotations les plus utilisées dans Spring, l'organisation la plus puissante de l'histoire ! Les 7 annotations les plus utilisées dans Spring, l'organisation la plus puissante de l'histoire ! Jul 26, 2023 pm 04:38 PM

Avec la mise à jour et l'itération de la technologie, Java5.0 a commencé à prendre en charge les annotations. En tant que framework leader en Java, Spring a lentement commencé à abandonner la configuration XML depuis sa mise à jour vers la version 2.5, et davantage d'annotations sont utilisées pour contrôler le framework Spring.

See all articles