这是4中发送邮件的方式 public interface SendMailService { //简单邮件 public void sendSimpleMail(String to,String centent,String subject); //html邮件 public void sendHtmlMail(String to,String subject,String content); //带附件的邮件 public void sendAttachmentMail(String to,String subject,String content,String filePath); //带静态资源文件的邮件 public void sendInlineResourceMail(String to,String subject,String content,String rscPath,String rscId);
} //创建实现类实现4中方法 package com.mgetwd.jspdemo.sendservice;
@Component @Slf4j public class SendService implements SendMailService { @Autowired private JavaMailSender mailSender; @Value("${spring.mail.username}") private String from;
@Override public void sendSimpleMail(String to, String centent, String subject) { SimpleMailMessage message = new SimpleMailMessage(); message.setFrom(from); message.setTo(to); message.setText(centent); message.setSubject(subject); try { mailSender.send(message); } catch (Exception e) { e.printStackTrace(); } } @Override public void sendHtmlMail(String to, String subject, String content) { MimeMessage message = mailSender.createMimeMessage(); try { MimeMessageHelper helper = new MimeMessageHelper(message, true); helper.setFrom(from); helper.setSubject(subject); helper.setTo(to); helper.setText(content,true); helper.setCc("xxxxxx @qq.com"); mailSender.send(message); } catch (Exception e) { e.printStackTrace(); } } @Override public void sendAttachmentMail(String to, String subject, String content, String filePath) { MimeMessage message = mailSender.createMimeMessage(); try { MimeMessageHelper helper = new MimeMessageHelper(message, true); helper.setFrom(from); helper.setTo(to); helper.setSubject(subject); helper.setText(content); helper.setCc("xxxxxx @qq.com");//抄送 FileSystemResource file = new FileSystemResource(new File(filePath)); String fileName = file.getFilename(); helper.addAttachment(fileName, file); mailSender.send(message); } catch (Exception e) { e.printStackTrace(); } } @Override public void sendInlineResourceMail(String to, String subject, String content, String rscPath, String rscId) { MimeMessage message = mailSender.createMimeMessage(); try { MimeMessageHelper helper=new MimeMessageHelper(message,true); helper.setFrom(from); helper.setTo(to); helper.setSubject(subject); helper.setText(content); helper.setCc("xxxxxx @qq.com"); FileSystemResource file=new FileSystemResource(new File(rscPath)); helper.addInline(rscId,file); mailSender.send(message); } catch (Exception e) { e.printStackTrace(); } }} //编写测试类 package com.mgetwd.jspdemo.test;
@RunWith(SpringRunner.class) @SpringBootTest public class SenMailTest { @Autowired private SendService sendService;
@Autowired private TemplateEngine templateEngine; @Test public void testSimpleMail() throws Exception { sendService.sendSimpleMail("xxxxxx @qq.com", "从此随心所欲地老去", "我仅仅是用来测试的"); } @Test public void testHtmlMail() throws Exception { String content = "<html > \n" + "<head >\n" + "<title > 网页恶搞程序,关不掉的弹出框</title >\n" + "</head >" + "<body >" + "<input type = button value = \"点我之前要有心理准备哦,我是永远也不关不完的对话框!\" onClick = \"var e=1;while(1==1){alert('烈火网提示:这个对话框是关不掉的!')}\" >\n" + " 关掉窗口的方法:按下ctrl + alt + del打开任务管理器,结束浏览器进程!\n" + "</body >\n" + "</html >\n" + " <div style = \"text-align:center;margin:30px 0 0 0;\" >" + "<hr style = \"color:#999;height:1px;\" > " + "如不能显示效果,\n 请按Ctrl + F5刷新本页,更多网页代码:" + "<a href = 'http://www.veryhuo.com/' target = '_blank' > " + "http://www.baidu.com/</a></div>"; sendService.sendHtmlMail("xxxxxx @qq.com", "这是一个html页面", content); } @Test public void testsendInlineResourceMail() { String filePath = "E:\\start\\测试的.doc"; sendService.sendAttachmentMail("xxxxxx @qq.com", "请看附件内容", "有附件,请查收", filePath); } @Test public void sendInlineResourceMail() { String rscId = "neo006"; String content="<html><body>这是有图片的邮件:<img src=\'cid:" + rscId + "\' ></body></html>"; String imgPath = "C:\\bqs\\分期还打包目录\\test\\login-bg.jpg"; sendService.sendInlineResourceMail("1132879189@qq.com", "主题:这是有图片的邮件", content, imgPath, rscId); }} 要想实现发送邮件还需要在qq邮箱上面 ! 之后是配置文件 spring.mail.host=smtp.qq.com spring.mail.username=2xxxxxxx@qq.com spring.mail.password=aoierfnzcfjwdbge #密码是生成的授权码 spring.mail.default-encoding=UTF-8 spring.application.name=spirng-boot-mail 在此感谢 https://blog.csdn.net/liyingblog/article/details/81099536