1、前言
发送邮件应该是网站的必备拓展功能之一,注册验证,忘记密码或者是给用户发送营销信息。正常我们会用JavaMail相关api来写发送邮件的相关代码,但现在springboot提供了一套更简易使用的封装。
2、依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
<version>${spring-boot-mail.version}</version>
</dependency>
3、配置
mail:
host: smtp.qq.com
username: aa@qq.com
password: aaaaa
port: 25
protocol: smtp
default-encoding: utf-8
4、调用方法类 Controller
package com.chongdian.api.controller;
import com.chongdian.api.core.http.ResultResponse;
import com.chongdian.api.service.MailService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RequestMapping("/mail")
@RestController
public class MailController {
@Autowired
MailService mailService;
@RequestMapping("/send")
public ResultResponse send()
{
return new ResultResponse(mailService.sendMail());
}
}
5、实现接口
package com.chongdian.api.service;
import java.util.Map;
public interface MailService {
boolean sendMail();
}
6、实现类
package com.chongdian.api.service.impl;
import com.chongdian.api.service.MailService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.mail.SimpleMailMessage;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.mail.javamail.MimeMessageHelper;
import org.springframework.stereotype.Service;
import javax.mail.MessagingException;
import javax.mail.internet.MimeMessage;
import java.io.File;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
@Service
public class MailServiceImpl implements MailService {
@Autowired
private JavaMailSender javaMailSender;
public boolean sendMail(){
System.out.println(1111);
// SimpleMailMessage message = new SimpleMailMessage();
// message.setSubject("这是一封测试邮件");
// message.setFrom("aaa@qq.com");
// message.setTo("aaa@qq.com");
// message.setCc("aa@aa.com");
// message.setSentDate(new Date());
// message.setText("这是测试邮件的正文");
// javaMailSender.send(message);
//
// return true;
StringBuilder stringBuilder=new StringBuilder();
stringBuilder.append("<html><head><title></title></head><body>");
stringBuilder.append("亲爱的用户 ,您的当前密码是:" );
stringBuilder.append("</br><a href='https://www.baidu.com/'>访问百度</a></body><html>");
MimeMessage mimeMessage = javaMailSender.createMimeMessage();
//multipart模式
try {
MimeMessageHelper mimeMessageHelper=new MimeMessageHelper(mimeMessage, true);
mimeMessageHelper.setTo("aa@qq.com");//收件人邮箱
mimeMessageHelper.setFrom("aa@qq.com");//发件人邮箱
//mimeMessageHelper.setCc("luozhen@gaodun.com");
mimeMessage.setSubject("找回密码");
//启用html
mimeMessageHelper.setText(stringBuilder.toString(),true);
System.out.println(22222);
// mimeMessageHelper.addAttachment("aaa", new File("C:/Users/Administrator/Desktop/a.txt"));
javaMailSender.send(mimeMessage);
return true;
} catch (MessagingException e) {
e.printStackTrace();
System.out.println(333);
return false;
}
}
}