SpringBoot项目实现文件上传和邮件发送 (3)

这里我们还是定义接口来进行邮件的发送,我们发送邮件的时候依旧只需要知道发件人、收件人、发送主题和发送的消息这四点就可以了,其余的可以在代码中完成。这里我们就简单的定义几个接口,用于实现上述的要求

控制层代码:

代码如下:

@RestController @RequestMapping("/api/mail") public class MailController { private static Logger LOG=LoggerFactory.getLogger(MailController.class); @Autowired private JavaMailSender mailSender; @Autowired private TemplateEngine templateEngine; /* * 发送普通邮件 */ @PostMapping("/sendMail") public String sendMail(@RequestBody Mail mail) { SimpleMailMessage message = new SimpleMailMessage(); message.setFrom(mail.getSender()); message.setTo(mail.getReceiver()); message.setSubject(mail.getSubject()); message.setText(mail.getText()); mailSender.send(message); LOG.info("发送成功!"); return "发送成功!"; } /* * 发送附件 */ @PostMapping("/sendAttachments") public String sendAttachmentsMail(@RequestBody Mail mail) throws MessagingException { MimeMessage mimeMessage = mailSender.createMimeMessage(); MimeMessageHelper helper = new MimeMessageHelper(mimeMessage, true); helper.setFrom(mail.getSender()); helper.setTo(mail.getReceiver()); helper.setSubject(mail.getSubject()); helper.setText(mail.getText()); FileSystemResource file = new FileSystemResource(new File("1.png")); helper.addAttachment("附件.jpg", file); mailSender.send(mimeMessage); return "发送成功!"; } /* * 发送文件 */ @PostMapping("/sendInlineMail") public String sendInlineMail(@RequestBody Mail mail) throws Exception { MimeMessage mimeMessage = mailSender.createMimeMessage(); MimeMessageHelper helper = new MimeMessageHelper(mimeMessage, true); helper.setFrom(mail.getSender()); helper.setTo(mail.getReceiver()); helper.setSubject(mail.getSubject()); //这里的text 是html helper.setText(mail.getText(), true); FileSystemResource file = new FileSystemResource(new File("1.png")); helper.addInline("文件", file); mailSender.send(mimeMessage); return "发送成功!"; } /* * 发送模板 */ @PostMapping("/sendTemplateMail") public void sendTemplateMail(@RequestBody Mail mail) throws Exception { MimeMessage mimeMessage = mailSender.createMimeMessage(); MimeMessageHelper helper = new MimeMessageHelper(mimeMessage, true); helper.setFrom(mail.getSender()); helper.setTo(mail.getReceiver()); helper.setSubject(mail.getSubject()); //创建邮件正文 Context context = new Context(); context.setVariable("id", "1"); context.setVariable("name", "xuwujing"); String emailContent = templateEngine.process("emailTemplate", context); helper.setText(emailContent, true); mailSender.send(mimeMessage); } }

App 入口

和普通的SpringBoot项目基本一样。

代码如下:

@SpringBootApplication public class MailApp { public static void main( String[] args ) { SpringApplication.run(MailApp.class, args); System.out.println("MailApp启动成功!"); } } 功能测试

我们成功启动该程序之后,我们使用Postman工具进行测试。

使用POST方式进行请求

POST :8182/api/mail/sendMail

Body参数为:

{
"sender":"xxx@qq.com",
"receiver":"xxx@qq.com",
"subject":"测试主题",
"text":"测试消息"
}

:当然这里的参数填写你自己的邮箱即可!

返回参数为:

发送成功!

示例图:

在这里插入图片描述


可以看到邮件已经发送成功了!

有的同学可能不知道授权码如何生成,这里我就用QQ邮箱生成授权码的一张示例图来说明。

示例图:

在这里插入图片描述

其它

关于SpringBoot项目实现文件上传和邮件发送的功能的文章就讲解到这里了,如有不妥,欢迎指正!

项目地址

SpringBoot实现文件上传的项目工程地址:
https://github.com/xuwujing/springBoot-study/tree/master/springboot-fileUpload

SpringBoot实现邮件发送的项目工程地址:
https://github.com/xuwujing/springBoot-study/tree/master/springboot-mail

SpringBoot整个集合的地址:
https://github.com/xuwujing/springBoot-study

SpringBoot整合系列的文章

SpringBoot配置文件的读取以及过滤器和拦截器的使用

SpringBoot的Restful风格的服务

SpringBoot+Mybatis+ Druid+PageHelper实现多数据源并分页

SpringBoot整合ElasticSearch实现多版本的兼容

SpringBoot整合Kafka和Storm

SpringBoot整合Jsp和Thymeleaf

SpringBoot整合Netty并使用Protobuf进行数据传输

SpringBoot简单打包部署

SpringBoot整合Redis使用Restful风格实现CRUD功能

SpringBoot优雅的全局异常处理

音乐推荐

推荐一首在静下心来看书的纯音乐!

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wpdspf.html