先看一下实现效果:
这是一个动态表单
一、发送邮箱需要邮箱账号及邮箱授权码
二、controller
@PostMapping("/mail") public AjaxResult mail(@RequestBody UnEventsActivityVo activityVo) throws EmailException { if (StringUtils.isEmpty(activityVo.getToken())){ return AjaxResult.error("token不能为空,请登录"); } String title=""; if (activityVo.getaId()!=null){ UnArticle article=articleService.selectUnArticleByEId(activityVo.getaId()); title=article.getTitle(); } LoginUser loginUser = tokenService.getUser(activityVo.getToken()); String mail = loginUser.getUser().getEmail(); Map<String, String> map = new HashMap<>(); // name if (StringUtils.isNotEmpty(activityVo.getName())) { map.put("Name", activityVo.getName()); } // gender if (StringUtils.isNotEmpty(activityVo.getGender())) { map.put("Gander", activityVo.getGender()); } // country if (StringUtils.isNotEmpty(activityVo.getCountry())) { map.put("Country", activityVo.getCountry()); } // mail if (StringUtils.isNotEmpty(activityVo.getEmail())) { map.put("E-mail", activityVo.getEmail()); } // number if (StringUtils.isNotEmpty(activityVo.getPhone())) { map.put("Contact Number", activityVo.getPhone()); } // ORG-name if (StringUtils.isNotEmpty(activityVo.getOrgName())) { map.put("ORG-name", activityVo.getOrgName()); } //设置邮件内容 StringBuilder stringBuilder = new StringBuilder(); stringBuilder.append("\r\n"); stringBuilder.append("<html><head></head><body><h3>Events活动报名</h3>"); stringBuilder.append("<h6>活动名称:"+title+"</h6>"); stringBuilder.append("<table border=\"4\" style=\"border:solid 1px #E8F2F9;font-size=4px;\">"); stringBuilder.append("<tr style=\"background-color: #428BCA; color:#ffffff\">"); map.forEach((key, value) -> { stringBuilder.append("<th width=\"180px\">"+key+"</th>"); }); stringBuilder.append("</tr>"); stringBuilder.append("</tr>"); map.forEach((key, value) -> { stringBuilder.append("<td style=\"text-align:center\"> <b>"+map.get(key)+"</b></td>"); }); stringBuilder.append("</tr>"); stringBuilder.append("</table>"); stringBuilder.append("</body></html>"); String htmlTxt = stringBuilder.toString(); emailService.email(htmlTxt,mail); return AjaxResult.success(); }
三、emailService
public interface EmailService { public int email(String htmlTxt,String mail) throws EmailException; }
四、EmailServiceImpl
@Service public class EmailServiceImpl implements EmailService { @Autowired private RuoYiConfig ruoYiConfig; @Override public int email(String htmlTxt, String mail) throws EmailException { // 这里需要使用HtmlEmail创建一个email对象 HtmlEmail email = new HtmlEmail(); email.setHostName(ruoYiConfig.getMailhost()); //验证 email.setAuthenticator(new DefaultAuthenticator(“邮箱发送人”, “邮箱授权码”)); email.setFrom(“邮箱发送人”); //接收人邮箱 email.addTo(mail); email.setSubject("这是一个测试邮件"); email.setCharset("UTF-8"); // 设置html内容 email.setHtmlMsg(htmlTxt); // 设置替代内容,如果不支持html email.setTextMsg("你的邮件客户端不支持html邮件:"+htmlTxt); email.send(); return 0; } }