前言

spring boot 的项目放下小半个月没有更新了,终于闲下来可以开心的接着写啦。之前我们配置好mybatis 多数据源的,接下来我们需要做一个邮件服务。比如你注册的时候,需要输入验证码来校验。这个验证码就可以通过邮件来发送。当然现在验证码大部分都是通过短信,单邮件有时候也是必不可少的。所以我们的spring架手架还是将邮件服务也搭建起来。下一篇将短信服务也整合进来。好了,言归正传。搭建邮件服务没有接触可能会觉得很麻烦或者单机环境测试环境都实现不了。觉得没有邮件服务。其实我们个人使用的话,是可以做到的。qq邮箱,网易邮箱都可以的。我这里使用的是QQ邮箱。网上有很多相关的教程。

邮箱服务器准备

登录QQ邮箱,点击设置 -->账户 可以找到 下图这个。




springboot搭建jsp springboot搭建邮件服务器_springboot搭建jsp


需要开通 POP3/SMTP服务。开通这个后,会生成一个秘钥。这个秘钥我们待会会在项目中用到。拿小本本记下来哈哈。

添加依赖和配置

邮箱准备好了,我们就开始我们的项目吧。首先在pom.xml 文件中添加依赖

org.springframework.boot spring-boot-starter-mail

然后在application.proteries 文件中添加配置,改成自己的邮箱。password 就是刚刚生成的那个秘钥。QQ邮箱的服务器地址是:smtp.qq.com 。网易的大家可以搜一下。

spring.mail.host=smtp.qq.comspring.mail.username=1186154608@qq.comspring.mail.password=abcdefgqazqazspring.mail.default-encoding=UTF-8mail.from=1186154608@qq.com


springboot搭建jsp springboot搭建邮件服务器_springboot搭建jsp_02


Service 层

配置信息都好了之后,我们就可以来使用啦。这里我们暂时没有涉及到数据库,就直接写Service层和controller 层。在service 包下创建一个MailService 和MailServiceImpl


springboot搭建jsp springboot搭建邮件服务器_springboot搭建jsp_03


MailServiceImpl 中代码

@Service@Slf4jpublic class MailServiceImpl implements MailService{ @Autowired private JavaMailSender mailSender; @Value("${mail.from}") private String mailFrom; @Override public void sendSimpleMail(String mailTo) { SimpleMailMessage message=new SimpleMailMessage(); message.setFrom(mailFrom); message.setTo(mailTo); message.setSubject("simple mail"); message.setText("hello world"); mailSender.send(message); log.info("邮件已经发送"); }}

这里我们就先简单的测试一下看看邮件能不能发送。mailFrom 是发件人,mailTo 是收件人。message.setSubject()设置邮件主题。message.setText()设置邮件内容。mailSender.send(message)是发送短信。

controller层

我们创建一个MailController类。代码如下:

@RestController@RequestMapping("/mail")public class MailController { @Autowired private MailService mailService; @RequestMapping(value = "/send