import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.mail.SimpleMailMessage;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
/**
* @program: springboot-mybatis-demo
* @description: 发送邮件controller
* @author:
* @create: 2018-08-20 10:54
**/
@Controller
public class SendMailController {
@Autowired
private JavaMailSender mailSender;
@Autowired
private MailConfig mailConfig;
@RequestMapping(value = "/sendMail")
@ResponseBody
public String sendSimpleMail() throws Exception {
SimpleMailMessage message = new SimpleMailMessage();
// 必须要和上文配置的spring.mail.username内容相同
message.setFrom(mailConfig.getUsername());
message.setTo(mailConfig.getToUser());
message.setSubject("主题:测试邮件");
message.setText("测试邮件内容");
mailSender.send(message);
return "success";
}
}
将邮箱配置放到配置文件中:
#邮箱的配置
#普通的QQ邮箱,密码是授权码,使用的是TLS协议
spring.mail.username=xx@qq.com
spring.mail.password=qjmnkhmyyicybceb
spring.mail.host=smtp.qq.com
spring.mail.port=25
spring.mail.default-encoding=UTF-8
spring.mail.protocol=smtp
spring.mail.properties.mail.smtp.auth=true
spring.mail.properties.mail.smtp.starttls.enable=true
spring.mail.properties.mail.smtp.starttls.required=true
#若是企业邮箱,spring.mail.port=465和spring.mail.properties.mail.smtp.ssl.enable=true
#spring.mail.username=xx@qq.com
#spring.mail.password=
#spring.mail.host=smtp.qq.com
#spring.mail.port=465
#spring.mail.default-encoding=UTF-8
#spring.mail.protocol=smtp
#spring.mail.properties.mail.smtp.auth=true
#spring.mail.properties.mail.smtp.ssl.enable=true
#上面都是springboot整合邮件固定的属性,下面是我自己定义的属性
spring.mail.toUser=123456789@qq.com
springboot2.0以后获取配置文件的方式:@ConfigurationProperties注解中locations属性不能用了所以这种方式获取配置文件中的属性值不怎么好用了。这里我用的@PropertySource注解
/**
* @program: springboot-mybatis-demo
* @description: 读取邮箱的配置
* @author:
* @create: 2018-08-20 10:30
**/
@Component
@PropertySource("classpath:properties/resource.properties")
public class MailConfig {
@Value("${spring.mail.username}")
private String username;
@Value("${spring.mail.password}")
private String password;
@Value("${spring.mail.toUser}")
private String toUser;
public String getUsername() {
return username;
}
public String getPassword() {
return password;
}
public String getToUser() {
return toUser;
}
}