zoukankan      html  css  js  c++  java
  • 【快学springboot】使用springboot发送邮件

    前言

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

    开启smtp

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

    点击开启IMAP/SMTP服务。

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

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

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

    引入依赖

    在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为邮件的内容。

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

    发送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样式。

    运行方法查看结果:

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

    总结

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

  • 相关阅读:
    全排列
    06-联系人管理(xib应用)
    单键模式
    在mac上截屏的几种方式
    05-Tom猫(UIImageView的简单运用)
    04-图片排列切换
    03-图片浏览器(plist的简单应用)
    02-动态创建按钮
    01-实现图片按钮的缩放、动画效果(block的初步应用)
    oracle 监听动态和静态的配置
  • 原文地址:https://www.cnblogs.com/happy4java/p/11205907.html
Copyright © 2011-2022 走看看