1、pom包配置
pom包里面添加spring-boot-starter-mail包引用
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
</dependency>
2、在application.properties中添加邮箱配置
# spring mail 的配置
spring.mail.host=smtp.qq.com
spring.mail.port=587
spring.mail.username=majun*****@qq.com
spring.mail.password=dkwig********
3、编写mailService,这里只提出实现类。
@Service
public class MailServiceImpl implements MailService {
@Value("${spring.mail.username}")
private String FROM_USER;
@Autowired
private JavaMailSender javaMailSender;
@Override
public void sendTextMail(String toUser, String subject, String content) {
SimpleMailMessage message = new SimpleMailMessage();
message.setFrom(FROM_USER);
message.setTo(toUser);
message.setSubject(subject);
message.setText(content);
javaMailSender.send(message);
}
4、编写test类进行测试
@RunWith(SpringRunner.class)
@SpringBootTest(classes = {SpringBootDemoMailApplication.class})
public class MailServiceTests {
private Logger logger = LoggerFactory.getLogger(MailServiceTests.class);
private String toUser = "[email protected]";
@Autowired
private MailService mailService;
@Autowired
private TemplateEngine templateEngine;
@Test
public void testSendTextMail() {
String subject = "Jerome的文本邮件";
String content = "Jerome的文本邮件的正文部分";
logger.info("发送文本邮件开始。。。。");
mailService.sendTextMail(toUser, subject, content);
logger.info("发送文本邮件结束。。。。");
}
一个简单的文本发送就完成了
发送html格式邮件
@Override
public void sendHtmlMail(String toUser, String subject, String content) throws MessagingException {
MimeMessage mimeMessage = javaMailSender.createMimeMessage();
MimeMessageHelper mimeMessageHelper = new MimeMessageHelper(mimeMessage, true);
mimeMessageHelper.setFrom(FROM_USER);
mimeMessageHelper.setTo(toUser);
mimeMessageHelper.setSubject(subject);
mimeMessageHelper.setText(content, true);
javaMailSender.send(mimeMessage);
}
在测试类中构建html内容,测试发送
@Test
public void testSendHtmlMail() {
String subject = "Jerome的Html邮件";
String content = "<html><body><h3>Jerome的Html邮件的正文部分</h3></body></html>";
logger.info("发送Html邮件开始。。。。");
try {
mailService.sendHtmlMail(toUser, subject, content);
} catch (MessagingException e) {
logger.error("发送Html邮件失败。。。。");
logger.error("Cause By:" + e.getMessage());
}
logger.info("发送Html邮件结束。。。。");
}
发送带附件的邮件
在MailService添加sendAttachmentsMail方法.
在测试类中添加测试方法
邮件带图片和模板
测试:
1、pom中导入thymeleaf的包
2、在resorces/templates下创建emailTemplate.html
3、解析模板并发送
见上图