前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >简单易用的Spring Boot邮件发送

简单易用的Spring Boot邮件发送

原创
作者头像
bug菌
修改2023-10-08 00:06:35
4000
修改2023-10-08 00:06:35
举报
文章被收录于专栏:《项目实战教学》

🏆本文收录于 《Spring Boot从入门到精通》 ,专门攻坚指数提升,2023 年国内最系统+最强(更新中)。

本专栏致力打造最硬核 Spring Boot 从零基础到进阶系列学习内容,🚀均为全网独家首发,打造精品专栏,专栏持续更新中…欢迎大家订阅持续学习。


前言

在现代web应用程序中,发送邮件是一项非常重要的任务。Spring Boot提供了一种简单易用的方式来发送邮件。在本文中,我们将学习如何使用Spring Boot发送邮件。

摘要

本文将介绍如何使用Spring Boot发送邮件。我们将演示如何配置SMTP邮件服务器,创建一个邮件模板,以及如何使用JavaMailSender发送邮件。我们还将介绍如何测试我们的邮件发送代码。

Spring如何实现邮件发送?

本文介绍了如何使用Spring Boot发送邮件。我们首先需要配置SMTP邮件服务器,然后创建邮件模板并使用Thymeleaf模板引擎解析动态内容。最后,我们使用JavaMailSender类来发送邮件。我们还编写了一个测试用例来测试我们的代码。通过阅读本文,你将了解到如何在Spring Boot中发送邮件。

实现步骤:

实现步骤如下:

  1. 配置SMTP邮件服务器,包括地址、端口、用户名、密码等。
  2. 创建Thymeleaf模板,包含邮件内容和动态内容。
  3. 使用JavaMailSender类发送邮件,包括设置主题、收件人、内容等。
  4. 编写测试用例进行测试。

总之,Spring Boot提供了一个简单的方法来发送电子邮件,使得发送电子邮件变得更加容易和高效。如果您需要发送电子邮件,这个技术是值得一试的。

配置SMTP邮件服务器

要发送邮件,我们需要配置SMTP服务器。Spring Boot提供了一个spring.mail的配置属性来设置SMTP服务器的地址和端口。例如,以下是一个配置示例:

代码语言:txt
复制
spring.mail.host=smtp.gmail.com
spring.mail.port=587
spring.mail.username=your-email@gmail.com
spring.mail.password=your-password
spring.mail.properties.mail.smtp.starttls.enable=true

在上面的配置中,我们将SMTP服务器地址和端口设置为smtp.gmail.com587。我们还提供了一个帐户名和密码,这是我们将使用的帐户来发送邮件。

创建邮件模板

在发送邮件之前,我们需要创建一个邮件模板。邮件模板是一个HTML文件,可以包含动态内容,例如收件人姓名,邮件正文,附件等。我们可以使用Thymeleaf模板引擎来创建邮件模板。

下面是一个示例邮件模板:

代码语言:html
复制
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8"/>
    <title>Spring Boot Email</title>
</head>
<body>
    <h1 th:text="'Hello, ' + ${recipientName} + '!'">Hello!</h1>
    <p th:text="${message}"></p>
</body>
</html>

在上面的模板中,我们使用了Thymeleaf的模板表达式来显示动态内容。例如,我们使用${recipientName}表达式来显示收件人姓名。

发送邮件

现在我们已经准备好发送邮件了。我们将使用JavaMailSender类来发邮件。这个类是Spring Boot提供的一个用于发送邮件的简单JavaMail实现。

下面是一个示例邮件发送代码:

代码语言:java
复制
@Service
public class EmailService {
 
    private JavaMailSender javaMailSender;
 
    @Autowired
    public EmailService(JavaMailSender javaMailSender) {
        this.javaMailSender = javaMailSender;
    }
 
    public void sendEmail(String recipientEmail, String subject, String message) throws MessagingException, IOException, TemplateException {
        MimeMessage mimeMessage = javaMailSender.createMimeMessage();
        MimeMessageHelper mimeMessageHelper = new MimeMessageHelper(mimeMessage, true);
 
        mimeMessageHelper.setSubject(subject);
        mimeMessageHelper.setTo(recipientEmail);
 
        Context context = new Context();
        context.setVariable("recipientName", "John Doe");
        context.setVariable("message", message);
 
        String content = templateEngine.process("email-template", context);
        mimeMessageHelper.setText(content, true);
 
        javaMailSender.send(mimeMessage);
    }
}

在上面的代码中,我们注入了JavaMailSender并使用它来创建MimeMessage。我们还使用MimeMessageHelper类来设置邮件主题,收件人和其他属性。

我们还使用了Thymeleaf的TemplateEngine类来解析邮件模板。我们设置了一个上下文对象来传递动态内容,并将其与模板合并生成HTML内容。

最后,我们调用JavaMailSendersend方法来发送邮件。这个方法将使用之前配置的SMTP服务器和帐户来发送邮件。

测试用例

为了测试我们的邮件发送代码,我们需要编写一些测试用例。我们可以使用JUnit框架来编写这些测试用例。

以下是一个示例测试用例:

代码语言:java
复制
@SpringBootTest
public class EmailServiceTest {
 
    @Autowired
    private EmailService emailService;
 
    @Test
    public void testSendEmail() throws Exception {
        String recipientEmail = "recipient@example.com";
        String subject = "Test Email";
        String message = "This is a test email";
 
        emailService.sendEmail(recipientEmail, subject, message);
    }
}

在上面的测试用例中,我们注入了EmailService并调用了sendEmail方法。我们只需要向方法传递一些基本参数,例如收件人地址,主题和消息。

小结

在本文中,我们学习了如何使用Spring Boot发送邮件。我们了解了如何配置SMTP服务器,创建邮件模板,以及如何使用JavaMailSender发送邮件。我们还编写了一个测试用例来测试我们的代码。如果您有任何疑问,请随时在评论区下方进行留言。

附录源码

  如上涉及所有源码均已上传同步在「GitHub」,提供给同学们一对一参考学习,辅助你更迅速的掌握。

总结

本文介绍了如何使用Spring Boot发送邮件和实现步骤。发送邮件是Web应用程序中的常见需求,通过本文的学习,您可以快速了解如何在Spring Boot中实现邮件发送功能。

总之,Spring Boot提供了一个简单的方法来发送电子邮件,使得发送电子邮件变得更加容易和高效。如果您需要发送电子邮件,这个技术是值得一试的。

☀️建议/推荐你


无论你是计算机专业的学生,还是对编程有兴趣的小伙伴,都建议直接毫无顾忌的学习此专栏「滚雪球学Spring Boot」,从入门到精通,凡是学习此专栏的同学,均能获取到所需的知识和技能,全网最快速入门SpringBoot,就像滚雪球一样,越滚越大,指数级提升。

  最后,如果这篇文章对你有所帮助,帮忙给作者来个一键三连,关注、点赞、收藏,您的支持就是我坚持写作最大的动力。   同时欢迎大家关注公众号:「猿圈奇妙屋」 ,以便学习更多同类型的技术文章,免费白嫖最新BAT互联网公司面试题、4000G pdf电子书籍、简历模板、技术文章Markdown文档等海量资料。

📣关于我

我是bug菌,CSDN | 掘金 | InfoQ | 51CTO 等社区博客专家,历届博客之星Top30,掘金年度人气作者Top40,51CTO年度博主Top12,华为云 | 阿里云| 腾讯云等社区优质创作者,全网粉丝合计15w+ ;硬核微信公众号「猿圈奇妙屋」,欢迎你的加入!免费白嫖最新BAT互联网公司面试题、4000G pdf电子书籍、简历模板等海量资料。


我正在参与2023腾讯技术创作特训营第二期有奖征文,瓜分万元奖池和键盘手表

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 摘要
  • Spring如何实现邮件发送?
    • 实现步骤:
      • 配置SMTP邮件服务器
        • 创建邮件模板
          • 发送邮件
            • 测试用例
              • 小结
                • 附录源码
                • 总结
                • ☀️建议/推荐你
                • 📣关于我
                领券
                问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档