实现发送邮件有好多方法,今天就来说一下springboot的实现方式,简单易上手,首先添加依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
</dependency>
接下来就是配置的问题,我使用的是.property的配置方式
spring.mail.host=smtp.qq.com
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.password=qwmkrbwzpixfbgdb
spring.mail.username=3******@qq.com
spring.mail.default-encoding=UTF-8
由于在阿里云上发送不了邮件,所以要修改一下配置,首先开通阿里云465端口,其次在配置下面添加上这三行
spring.mail.port=465
spring.mail.properties.mail.smtp.socketFactory.port = 465
spring.mail.properties.mail.smtp.socketFactory.class = javax.net.ssl.SSLSocketFactory
spring.mail.properties.mail.smtp.socketFactory.fallback = false
这个邮箱配置的话需要开通协议,具体怎么操作可见百度,我的账号也就不分享给大家了
接下来就是邮件的实现代码了
@Autowired
private JavaMailSender javaMailSender;
public void setJavaMailSender(JavaMailSender javaMailSender) {
this.javaMailSender = javaMailSender;
}
//首先要注入javaMailSender
@RequestMapping("/sendEmail")
@ResponseBody
public String sendEmail(@RequestParam String yx,@RequestParam String password,
HttpServletRequest request) throws Exception {
int num=(int)(Math.random()*9000)+1000;
String pwd=num+"";
MimeMessage maMessage = javaMailSender.createMimeMessage();
// 不添加,文件名会不正常显示
MimeMessageHelper helper = new MimeMessageHelper(maMessage, true, "utf-8");
helper.setFrom("3********@qq.com");//表明是谁发送的
helper.setTo(yx);//说明这是发送给谁的
helper.setSubject("验证码邮件");//邮件的标题
helper.setText("这是验证码啊:"+pwd+"这是密码:"+password);//邮件的内容内容
System.out.println("-----------------------"+num);
javaMailSender.send(maMessage);
System.out.println("*******************************"+num);
/*Properties javaMailProperties = new Properties();
javaMailProperties.setProperty("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
javaMailProperties.setProperty("mail.smtp.socketFactory.port", "465");
javaMailProperties.setProperty("mail.smtp.port", "465");
final MimeMessage mimeMessage = javaMailSender.createMimeMessage();
final MimeMessageHelper message = new MimeMessageHelper(mimeMessage);
message.setFrom("3******@qq.com");
message.setTo(yx);
message.setSubject("验证码邮件");
message.setText("这是验证码啊:"+pwd+"这是密码:"+password);
javaMailSender.send(mimeMessage);*/
return "1";
}
两种方式均可实现,直接复制即可使用,问题可能就是开通QQ邮箱的协议上面,大家仔细阅读百度教程即可,谢谢!!!