1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > 用SpringBoot轻松实现发送邮件功能

用SpringBoot轻松实现发送邮件功能

时间:2021-10-07 08:22:51

相关推荐

用SpringBoot轻松实现发送邮件功能

我不考虑将来。要是我既要想着今天,又要操心明天,生活就没意思了。 每当事情遭到不能再糟的地步时,我总发现天无绝人之路。

目录

前言环境准备所需依赖配置文件代码实现

前言

关于如何搭建SpringBoot工程以及开启Web功能,

可以查看我的这篇博客:用Spring Initializr快速构建SpringBoot及整合MVC

环境准备

首先,我们需要打开QQ邮箱,进入设置,选中账户,开启SMTP服务,如图:

并生成授权码,授权码的作用相当于QQ邮箱的密码。

所需依赖

在依赖管理文件pom.xml中导入发送邮件所需要的起步依赖:

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-mail</artifactId></dependency>

配置文件

在配置文件application.yml中配置发送邮箱方的相关信息:

spring:# 配置QQ邮箱mail:#默认发送邮件基于smtp协议 可不要protocol: smtp#smtp服务器地址host: #发送方的邮箱username: ******@#发送方的密码(授权码或者QQ邮箱密码都可以)password: ********properties:mail:smtp:auth: truestarttls:enable: truerequired: true

代码实现

首先需要一个邮件实体类:

package com.guqueyue.entity;/*** @author guqueyue* @Date /5/26**/@Data //lombok插件的注解,若是没有用lombok插件,请自行生成getter、setter方法@AllArgsConstructor //全参构造方法@NoArgsConstructor //无参构造方法@Accessors(chain = true) //开启链式编程public class Email implements Serializable {/*** 接收者*/private String to;/*** 邮件标题*/private String subject;/*** 发送内容*/private String context;/*** 发送时间*/private Date sendTime;}

其次在Web层新建一个Controller,代码如下:

package com.guqueyue.controller;/*** @author guqueyue* @Date /5/26* 发送邮件**/@Controller@RequestMapping("/send")public class MailController {@Autowiredprivate JavaMailSender javaMailSender;/*** 获取配置文件里的发送方*/@Value("${spring.mail.username}")private String from;@RequestMapping("/mail")public void sendMail() throws MessagingException {// 设置邮件内容Email email = new Email().setSubject("这是一封测试邮件").setContext("<hr/>盖西伯(周文王)拘而演《周易》;<br/> 仲尼厄而作《春秋》;<br/>屈原放逐,乃赋《离骚》;<br/>" +"左丘失明,厥有《国语》;<br/>孙子膑脚,《兵法》修列;<br/>" +"不韦迁蜀,世传《吕览》;<br/>韩非囚秦,《说难》、《孤愤》;《诗》三百篇大抵圣贤发愤之所作也。<hr/>").setTo(from).setSendTime(new Date());// 发送邮件send(email);}/*** 发送邮件的方法*/public void send(Email email) throws MessagingException {System.out.println("接收到的邮件对象为:" + email);//创建一封邮件MimeMessage mimeMessage = javaMailSender.createMimeMessage();//Spring提供的一个便捷的邮件设置对象MimeMessageHelper mimeMessageHelper = new MimeMessageHelper(mimeMessage, true);//设置邮件的内容//标题mimeMessageHelper.setSubject(email.getSubject());//发送方mimeMessageHelper.setFrom(from);//接收方mimeMessageHelper.setTo(email.getTo());//接收者// mimeMessageHelper.setCc("***@");//抄送// mimeMessageHelper.setBcc("***@");//密送//设置内容mimeMessageHelper.setText(email.getContext(), true);//发送附件// mimeMessageHelper.addAttachment("我的附件.jpg", new File("C:\\worker\\images\\7f25dc3b-13e5-42a5-a205-8276b0528040"));//设置当前时间mimeMessageHelper.setSentDate(email.getSendTime());//发送邮件javaMailSender.send(mimeMessage);System.out.println("成功发送邮件......");}}

然后运行程序,在浏览器输入http://localhost:8080/send/mail,不必理会页面的404错误,发现邮箱收到以下邮件即为成功:

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。