【快学springboot】使用springboot发送邮件

栏目: Java · 发布时间: 6年前

内容简介:在实际项目中,经常需要用到邮件通知功能。比如,用户通过邮件注册,通过邮件找回密码等;又比如通过邮件发送系统情况,通过邮件发送报表信息等等,实际应用场景很多。这篇文章,就教大家通过springboot快速的实现一个发送邮件的功能。这里以QQ邮箱为例。登录QQ邮箱之后,点击设置,点击账户。如下图:点击开启IMAP/SMTP服务。

在实际项目中,经常需要用到邮件通知功能。比如,用户通过邮件注册,通过邮件找回密码等;又比如通过邮件发送系统情况,通过邮件发送报表信息等等,实际应用场景很多。这篇文章,就教大家通过springboot快速的实现一个发送邮件的功能。

开启smtp

这里以QQ邮箱为例。登录QQ邮箱之后,点击设置,点击账户。如下图:

【快学springboot】使用springboot发送邮件

点击开启IMAP/SMTP服务。

【快学springboot】使用springboot发送邮件

记下QQ邮箱提示的授权码:

【快学springboot】使用springboot发送邮件

这个授权码,就是发送邮件时需要的密码。

以上步骤完成之后,就可以开始开发了。

引入依赖

在springboot项目中,引入如下依赖:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-mail</artifactId>
</dependency>
复制代码

配置文件

在springboot项目中引入依赖之后,即可在其配置文件中配置邮箱的参数:

application.properties

spring.mail.host=smtp.qq.com
spring.mail.username=happyjava@foxmail.com
spring.mail.password=xxxxxxxx
spring.mail.protocol=smtp
spring.mail.default-encoding=UTF-8
复制代码

因为是QQ邮箱,所以host需要使用smtp.qq.com。如果是其它邮箱,搜索下即可找到。

username为邮箱账号,password为上面步骤中提到的授权码。

注入JavaMailSender实例

邮箱参数配置完之后,即可直接注入JavaMailSender实例。

@Autowired
private JavaMailSender javaMailSender;
复制代码

发送普通邮件

普通邮件,没有样式。实现起来最容易:

@Test
public void testSend() throws MessagingException {
    SimpleMailMessage message = new SimpleMailMessage();
    message.setFrom("happyjava@foxmail.com");
    message.setTo("1015030682@qq.com");
    message.setSubject("这是标题");
    message.setText("这是内容");
    javaMailSender.send(message);
}
复制代码

From需要和配置文件中的username一致,否则会报错。

To为邮件接收者;

Subject为邮件的标题;

Text为邮件的内容。

运行方法,即可收到邮件:

【快学springboot】使用springboot发送邮件

发送HTML邮件

很多时候,我们需要邮件带有美观的样式。这时候,可以使用HTML的样式。我们需要使用javaMailSender的createMimeMessage方法,构建一个MimeMessage,然后使用MimeMessage实例创建出MimeMessageHelper。如下:

@Test
public void testSend() throws MessagingException {
    MimeMessage mimeMessage = javaMailSender.createMimeMessage();
    MimeMessageHelper messageHelper = new MimeMessageHelper(mimeMessage);
    messageHelper.setSubject("标题");
    messageHelper.setFrom("happyjava@foxmail.com");
    messageHelper.setTo("1015030682@qq.com");
    messageHelper.setText("<h1>标题</h1><br/><p>这是内容</p>", true);
    javaMailSender.send(messageHelper.getMimeMessage());
}
复制代码

这里需要注意的是,setText的时候需要传一个布尔值进去,表名需要使用HTML样式。

运行方法查看结果:

【快学springboot】使用springboot发送邮件

可以看到,h1的样式已经出来了。

总结

本文讲解了如何在springboot中快速的发邮件。介绍了两种发送邮件的方式:1、普通模式;2、HTML模式。其实还支持多种丰富的模式,比如模板引擎等,这里就不讲解了,其实使用起来大同小异。


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

JSP 2.0技术手册

JSP 2.0技术手册

杜远君、林康司、林上杰 / 湖北教育出版社,电子工业出版社 / 2004-5-1 / 59.0

本书图文并茂,以丰富的实例为引导,全面介绍了主流的Java Web开发技术——JSP 2.0,重点介绍Java在展示层的两项重要技术:Java Servlet与JavaServer Pages。它们是最重要的Java核心技术。对这两项技术的深入了解,将有助于您未来对于JavaServer Faces(JSF)技术以及Java Web Services技术的学习。 本书分为三大部分,前......一起来看看 《JSP 2.0技术手册》 这本书的介绍吧!

JS 压缩/解压工具
JS 压缩/解压工具

在线压缩/解压 JS 代码

正则表达式在线测试
正则表达式在线测试

正则表达式在线测试