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


    前情提要

    以目前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邮箱,使用的授权码,而不是登录密码,如果是邮箱登录密码,邮件是发不出去的
  • 相关阅读:
    Android登入界面
    安卓第4周作业
    第13周作业
    5.28上机作业
    5.22作业
    数据返回值
    登录
    安卓
    安卓第四周
    安卓第四周
  • 原文地址:https://www.cnblogs.com/qinshengfei/p/12149336.html
Copyright © 2020-2023  润新知