springboot学习十一--整合mail、带附件的mail、发送模板

一,整合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>

猜你喜欢

转载自blog.csdn.net/yzx15855401351/article/details/100056294