一,整合mail
1,pom
<!-- 整合mail依赖 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
</dependency>
2,application.properties
#邮件发送配置
#smtp.163.com (163邮箱) #smtp.qq.com(qq邮箱)
spring.mail.host=smtp.163.com
spring.mail.username=(163邮箱账号) (qq邮箱账号)
spring.mail.password=(163邮箱密码) (qq邮箱授权码)
spring.mail.properties.mail.smtp.auth=true
spring.mail.properties.mail.smtp.starttls.enable=true
spring.mail.properties.mail.smtp.starttls.required=true
qq邮箱授权码
浏览器打开邮箱
3,pojo
@Component
public class Email {
@Value(value="${spring.mail.username}")
private String emailSender;
public String getEmailSender() {
return emailSender;
}
public void setEmailSender(String emailSender) {
this.emailSender = emailSender;
}
}
4,service
@Service
public class EmailServiceImpl implements EmailService {
@Autowired
private Email email;
@Autowired
private JavaMailSender javaMailSender;
@Override
public void sendSimpleMail(String receive, String title, String content) {
// 简单邮件的发送
SimpleMailMessage message = new SimpleMailMessage();
message.setFrom(email.getEmailSender());
message.setTo(receive);
message.setSubject(title);
message.setText(content);
javaMailSender.send(message);
}
}
5,controller
@Controller
@RequestMapping("email")
public class EmailController {
@Autowired
private EmailService emailService;
@RequestMapping("sendSimpleEmail")
@ResponseBody
public String sendSimpleEmail() {
try {
emailService.sendSimpleMail("********@163.com", "你好", "明天去你家借钱!!");
} catch (Exception e) {
e.printStackTrace();
return "发送失败";
}
return "发送成功";
}
}
二、带附件的mail
1,service
@Override
public void sendAppendixMail(String receive, String title, String content,File file) throws Exception {
MimeMessage message = javaMailSender.createMimeMessage();
MimeMessageHelper helper = new MimeMessageHelper(message, true);
helper.setFrom(email.getEmailSender());
helper.setTo(receive);
helper.setSubject(title);
helper.setText(content);
FileSystemResource appendix = new FileSystemResource(file);
helper.addAttachment("附件", appendix);
javaMailSender.send(message);
}
2,controller
@RequestMapping("sendAppendixMail")
@ResponseBody
public String sendAppendixMail() {
try {
File file = new File("src/main/java/com/email/file/appendix.txt");
emailService.sendAppendixMail("[email protected]", "你好", "明天去你家借钱!!", file);
} catch (Exception e) {
e.printStackTrace();
return "发送失败";
}
return "发送成功";
}
三、发送模板
1,service
@Autowired
private FreeMarkerConfig freeMarkerConfig;
@Override
public void sendTemplateMail(String receive, String title, String template) throws Exception {
MimeMessage message = javaMailSender.createMimeMessage();
MimeMessageHelper helper = new MimeMessageHelper(message, true);
helper.setFrom(email.getEmailSender());
helper.setTo(receive);
helper.setSubject(title);
//封装模板数据
Map<String, Object> map = new HashMap<>();
map.put("name", "素还真");
//获得模板
Template templatePage = freeMarkerConfig.getConfiguration().getTemplate(template);
String html = FreeMarkerTemplateUtils.processTemplateIntoString(templatePage, map);
helper.setText(html,true);
javaMailSender.send(message);
}
2,controller
@RequestMapping("sendTemplateMail")
@ResponseBody
public String sendTemplateMail() {
try {
emailService.sendTemplateMail("[email protected]", "你好", "test.ftl");
} catch (Exception e) {
e.printStackTrace();
return "发送失败";
}
return "发送成功";
}
3,test.ftl
<html>
<head>
<title>Insert title here</title>
</head>
<body>
<h1>欢迎你 ${name }</h1>
</body>
</html>