spring boot集成spring-boot-starter-mail邮件功能

createh53周前 (12-15)技术教程15

前情提要

以目前IT系统功能来看,邮件功能是非常重要的一个功能。例如:找回密码、邮箱验证,邮件动态码、忘记密码,邮件营销等,都需要用到邮件功能。结合当下最流行的spring boot微服务,推出了spring-boot-starter-mail邮件支持包。

功能使用

引入maven包
<dependency>
	<groupId>org.springframework.boot</groupId>
	<artifactId>spring-boot-starter-mail</artifactId>
</dependency>
相关参数配置(以QQ邮箱为例)
private static JavaMailSenderImpl javaMailSender;
    static {
        javaMailSender = new JavaMailSenderImpl();
        javaMailSender.setHost("smtp.qq.com");//链接服务器
        //javaMailSender.setPort(25);//默认使用25端口发送
        javaMailSender.setUsername("QQ邮箱");//账号
        javaMailSender.setPassword("授权码");//授权码
        javaMailSender.setDefaultEncoding("UTF-8");

        Properties properties = new Properties();
        //properties.setProperty("mail.debug", "true");//启用调试
        //properties.setProperty("mail.smtp.timeout", "1000");//设置链接超时
        //设置通过ssl协议使用465端口发送、使用默认端口(25)时下面三行不需要
        properties.setProperty("mail.smtp.auth", "true");//开启认证
        properties.setProperty("mail.smtp.socketFactory.port", "465");//设置ssl端口
        properties.setProperty("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");

        javaMailSender.setJavaMailProperties(properties);
    }
邮件发送代码(此方法支持文本和html邮件)
@ResponseBody
@RequestMapping("/mailSend")
public void mailSend(){
        log.info("--------------[mail/mailSend] start------------------");
        try {
            MimeMessage message=javaMailSender.createMimeMessage();
            MimeMessageHelper helper=new MimeMessageHelper(message,true);
            helper.setFrom("272286717@qq.com","272286717");
            helper.setTo("qsf179636252@163.com");
            helper.setSubject("测试邮件");
            helper.setText("测试邮件内容",true);
            javaMailSender.send(message);
        } catch (Exception e) {
            log.error("邮件发送失败", e.getMessage());
            e.printStackTrace();
        }
        log.info("--------------[mail/mailSend] end------------------");
    }

测试

测试地址

http://localhost:6677/api/mail/mailSend

日志输出
登录163邮箱查看是否收到邮件

总结

  • spring boot对mail的封装支持非常好,使用方便,简单几行代码就可以把邮件集成进来
  • QQ邮箱和163邮箱,使用的授权码,而不是登录密码,如果是邮箱登录密码,邮件是发不出去的

相关文章

Java 发送邮件

使用Java应用程序发送E-mail十分简单,但是首先你应该在你的机器上安装JavaMail API 和Java Activation Framework (JAF) 。 你可以在 JavaMail...

手把手教你用 Java 发送邮件,不用框架

邮件发送也是一个老生常谈的问题了,代码虽然简单,但是许多小伙伴对过程不太理解,所以还是打算和各位小伙伴聊聊这个话题。邮件协议我们经常会听到各种各样的邮件协议,比如 SMTP、POP3、IMAP ,那么...

邮件协议以及java实现邮件功能

前言公司项目要求,需要在某个时间点向全公司未填报工时的员工推送提醒邮件。借着这个机会在这边给大家分享一下邮件的一些协议以及如何通过java实现发送代码协议介绍Smtp协议:邮件服务器之间传递消息所使用...

100个Java工具类之15:免费发送邮件

该系列为java工具类系列,主要展示100个常用的java工具类。本系列工具类的核心目的主要有三点:1,以便他用:提供可用的Java工具类,方便大家使用,避免重复造轮子2,个人记录:作为个人记录,同时...

JavaMail的使用

1 JavaMail的使用1..1 用JavaMail组件发送邮件JavaMail组件: Sun公司专门用于发送邮件的工具。javax.mail.* 核心包javax.activation.* 辅助包...