在“SprongBoot发送邮件(一)发送简单文本邮件HelloWorld”的配置基础上在MailService.java中添加方法:
/**
* @param to
* @param subject
* @param content
* @param rscPath 文件路径
* @param rscId
*/
public void sendInlinResourceMail(String to, String subject, String content,
String rscPath, String rscId) {
MimeMessage message = javaMailSender.createMimeMessage();
MimeMessageHelper helper = new MimeMessageHelper(message, true);
helper.setFrom(from);
helper.setTo(to);
helper.setSubject(subject);
helper.setText(content, true);
FileSystemResource res = new FileSystemResource(new File(rscPath));
//可以发送带多个图片的邮件
helper.addInline(rscId, res);
helper.addInline(rscId, res);
javaMailSender.send(message);
}
在测试类中添加测试方法:
@Test
public void sendInlinResourceMailTest() throws MessagingException {
String imgPath = "H:\\images\\sctu\\sctu_logo.png";
String rscId = "test001";
String content = "<html><body>" +
"这是有图片的邮件:<img src=\'cid:" + rscId + "\'></img>" +
"这是有图片的邮件:<img src=\'cid:" + rscId + "\'></img>" +
"</body></html>";
mailService.sendInlinResourceMail("824668713@qq.com", "发送带图片的邮件", content,
imgPath, rscId);
}
文中代码演示了发送两张图片的邮件,实际开发中,应该使用类似于数组的数据结构来存储文件路径,用遍历的方式添加图片。
至此,发送带图片的邮件就完成啦!