springboot集成springbootstartermail邮件功能

编程

前情提要

以目前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邮箱,使用的授权码,而不是登录密码,如果是邮箱登录密码,邮件是发不出去的

以上是 springboot集成springbootstartermail邮件功能 的全部内容, 来源链接: utcz.com/z/512345.html

回到顶部