Spring Boot中使用JavaMailSender发送邮件

message.setFrom(“dyc87112@qq.com”);

message.setTo(“dyc87112@qq.com”);

message.setSubject(“主题:简单邮件”);

message.setText(“测试邮件内容”);

mailSender.send(message);

}

}

到这里,一个简单的邮件发送就完成了,运行一下该单元测试,看看效果如何?

由于Spring Boot的starter模块提供了自动化配置,所以在引入了spring-boot-starter-mail依赖之后,会根据配置文件中的内容去创建JavaMailSender实例,因此我们可以直接在需要使用的地方直接@Autowired来引入邮件发送对象。

进阶使用


在上例中,我们通过使用SimpleMailMessage实现了简单的邮件发送,但是实际使用过程中,我们还可能会带上附件、或是使用邮件模块等。这个时候我们就需要使用MimeMessage来设置复杂一些的邮件内容,下面我们就来依次实现一下。

发送附件

在上面单元测试中加入如下测试用例(通过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);

}

嵌入静态资源

除了发送附件之外,我们在邮件内容中可能希望通过嵌入图片等静态资源,让邮件获得更好的阅读体验,而不是从附件中查看具体图片,下面的测试用例演示了如何通过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(“<img src=“cid:weixin” >”, true);

FileSystemResource file = new FileSystemResource(new File(“weixin.jpg”));

helper.addInline(“weixin”, file);

mailSender.send(mimeMessage);

}

这里需要注意的是addInline函数中资源名称weixin需要与正文中cid:weixin对应起来

模板邮件

通常我们使用邮件发送服务的时候,都会有一些固定的场景,比如重置密码、注册确认等,给每个用户发送的内容可能只有小部分是变化的。所以,很多时候我们会使用模板引擎来为各类邮件设置成模板,这样我们只需要在发送时去替换变化部分的参数即可。

在Spring Boot中使用模板引擎来实现模板化的邮件发送也是非常容易的,下面我们以velocity为例实现一下。

引入velocity模块的依赖:

org.springframework.boot

spring-boot-starter-velocity

resources/templates/下,创建一个模板页面template.vm

你好, ${username}, 这是一封模板邮件!

最后

看完上述知识点如果你深感Java基础不够扎实,或者刷题刷的不够、知识不全面

小编专门为你量身定制了一套<Java一线大厂高岗面试题解析合集:JAVA基础-中级-高级面试+SSM框架+分布式+性能调优+微服务+并发编程+网络+设计模式+数据结构与算法>

image

针对知识面不够,也莫慌!还有一整套的<Java核心进阶手册>,可以瞬间查漏补缺

image

全都是一丢一丢的收集整理纯手打出来的

更有纯手绘的各大知识体系大纲,可供梳理:Java筑基、MySQL、Redis、并发编程、Spring、分布式高性能架构知识、微服务架构知识、开源框架知识点等等的xmind手绘图~

image

image

46)]

全都是一丢一丢的收集整理纯手打出来的

更有纯手绘的各大知识体系大纲,可供梳理:Java筑基、MySQL、Redis、并发编程、Spring、分布式高性能架构知识、微服务架构知识、开源框架知识点等等的xmind手绘图~

[外链图片转存中…(img-sqc7Kjdv-1714147349147)]

[外链图片转存中…(img-CcJbmi8s-1714147349147)]

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

  • 24
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,下面是一个使用Spring Boot发送邮件的示例代码: 首先需要在pom.xml文件添加Spring Boot Mail依赖: ```xml <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-mail</artifactId> </dependency> ``` 然后在application.properties文件配置邮件服务器相关信息: ```properties # 邮件服务器地址 spring.mail.host=smtp.example.com # 邮件服务器端口号 spring.mail.port=587 # 邮件发送者账号 spring[email protected] # 邮件发送者密码 spring.mail.password=**************** # 是否开启SSL spring.mail.properties.mail.smtp.ssl.enable=true # 是否开启TLS spring.mail.properties.mail.smtp.starttls.enable=true ``` 接下来创建一个EmailService类: ```java @Service public class EmailService { @Autowired private JavaMailSender mailSender; public void sendSimpleMail(String to, String subject, String content) { SimpleMailMessage message = new SimpleMailMessage(); message.setTo(to); message.setSubject(subject); message.setText(content); mailSender.send(message); } public void sendHtmlMail(String to, String subject, String content) throws MessagingException { MimeMessage message = mailSender.createMimeMessage(); MimeMessageHelper helper = new MimeMessageHelper(message, true); helper.setTo(to); helper.setSubject(subject); helper.setText(content, true); mailSender.send(message); } } ``` 其,sendSimpleMail方法用于发送普通文本邮件,sendHtmlMail方法用于发送HTML格式邮件。 最后,可以在Controller调用EmailService进行邮件发送: ```java @RestController public class EmailController { @Autowired private EmailService emailService; @GetMapping("/sendSimpleMail") public String sendSimpleMail() { String to = "[email protected]"; String subject = "测试邮件"; String content = "这是一封测试邮件"; emailService.sendSimpleMail(to, subject, content); return "发送成功"; } @GetMapping("/sendHtmlMail") public String sendHtmlMail() throws MessagingException { String to = "[email protected]"; String subject = "测试邮件"; String content = "<html><body><h1>这是一封测试邮件</h1></body></html>"; emailService.sendHtmlMail(to, subject, content); return "发送成功"; } } ``` 以上就是一个简单的使用Spring Boot发送邮件的示例代码,你可以根据自己的需要进行修改和扩展。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值