程序员最近都爱上了这个网站  程序员们快来瞅瞅吧!  it98k网:it98k.com

本站消息

站长简介/公众号

  出租广告位,需要合作请联系站长


+关注
已关注

分类  

暂无分类

标签  

暂无标签

日期归档  

java发送html模板

发布于2021-06-12 15:27     阅读(346)     评论(0)     点赞(4)     收藏(2)


首先看一下模板:

 引入一下邮件依赖:

  1. <dependency>
  2. <groupId>org.apache.commons</groupId>
  3. <artifactId>commons-email</artifactId>
  4. <version>1.5</version>
  5. </dependency>

eamil-template.html模板文件

模板中的{0}、{1}这样的占位符后面java代码会替换掉

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="utf-8">
  5. <title></title>
  6. </head>
  7. <body style="color: #666; font-size: 14px; font-family: 'Open Sans',Helvetica,Arial,sans-serif;">
  8. <div class="box-content" style="width: 80%; margin: 20px auto; max-width: 800px; min-width: 600px;">
  9. <div class="header-tip" style="font-size: 12px;
  10. color: #aaa;
  11. text-align: right;
  12. padding-right: 25px;
  13. padding-bottom: 10px;">
  14. 中国动物疫病预防控制中心
  15. </div>
  16. <div class="info-top" style="padding: 15px 25px;
  17. border-top-left-radius: 10px;
  18. border-top-right-radius: 10px;
  19. background: rgb(0,128,128);
  20. color: #fff;
  21. overflow: hidden;
  22. line-height: 32px;">
  23. <img src="data:image/png;base64,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" style="float: left; margin: 0 10px 0 0; width: 32px;" />
  24. <div style="color:white"><strong>SDK服务离线通知</strong></div>
  25. </div>
  26. <div class="info-wrap" style="border-bottom-left-radius: 10px;
  27. border-bottom-right-radius: 10px;
  28. border:1px solid #ddd;
  29. overflow: hidden;
  30. padding: 15px 15px 20px;">
  31. <div class="tips" style="padding:15px;">
  32. <p style=" list-style: '100%'; margin: 10px 0;">Hi 您好:</p>
  33. <p style=" list-style: '100%'; margin: 10px 0;">您管理的服务:{0} ,已经离线!</p>
  34. </div>
  35. <div class="time" style="text-align: right; color: #999; padding: 0 15px 15px;">离线时间:{1}</div>
  36. <br>
  37. </div>
  38. </div>
  39. </body>
  40. </html>

位置如图所示:

 

编写邮件发送工具类apacheEmail.java:

  1. import lombok.extern.slf4j.Slf4j;
  2. import org.apache.commons.mail.EmailException;
  3. import org.apache.commons.mail.HtmlEmail;
  4. import org.springframework.beans.factory.annotation.Value;
  5. import org.springframework.context.annotation.Configuration;
  6. import org.springframework.stereotype.Component;
  7. import javax.mail.MessagingException;
  8. import java.io.IOException;
  9. import java.text.SimpleDateFormat;
  10. import java.util.Date;
  11. /**
  12. * @author qushen
  13. * @date 2021/6/7 13:43
  14. */
  15. @Slf4j
  16. @Configuration
  17. public class apacheEmail {
  18. @Value("${mail.server}")
  19. private String server;
  20. @Value("${mail.username}")
  21. private String username;
  22. @Value("${mail.password}")
  23. private String password;
  24. @Value("${mail.sender}")
  25. private String sender;
  26. public void sendMail(String receiver, String subject, String context) throws IOException, MessagingException, EmailException {
  27. HtmlEmail email=new HtmlEmail();//创建一个HtmlEmail实例对象
  28. email.setHostName(server);//邮箱的SMTP服务器,一般123邮箱的是smtp.123.com,qq邮箱为smtp.qq.com
  29. email.setCharset("utf-8");//设置发送的字符类型
  30. email.addTo(receiver);//设置收件人
  31. email.setFrom(sender,"服务");//发送人的邮箱为自己的,用户名可以随便填
  32. email.setAuthentication(sender,password);//设置发送人到的邮箱和用户名和授权码(授权码是自己设置的)
  33. email.setSubject(subject);//设置发送主题
  34. email.setHtmlMsg(context);
  35. email.send();
  36. log.info("邮件发送成功:{}", receiver);
  37. }
  38. }

application.properties中的邮件配置:

  1. mail.server=smtp.88.com
  2. mail.sender=qushen@88.com
  3. mail.username=qushen@88.com
  4. mail.password=tgyGHxxxxxxxx

最后就是发送获取html模板并发送的邮件的代码

  1. import com.sws.sdkemail.email.apacheEmail;
  2. import lombok.extern.log4j.Log4j2;
  3. import org.apache.commons.mail.EmailException;
  4. import org.springframework.beans.factory.annotation.Autowired;
  5. import org.springframework.scheduling.annotation.Scheduled;
  6. import org.springframework.stereotype.Component;
  7. import javax.mail.MessagingException;
  8. import java.io.*;
  9. import java.text.MessageFormat;
  10. import java.text.SimpleDateFormat;
  11. import java.util.Date;
  12. /**
  13. * @author qushen
  14. * @date 2021/6/8 10:40
  15. */
  16. @Component
  17. @Log4j2
  18. public class Test {
  19. @Autowired
  20. private apacheEmail apcemail;
  21. @Scheduled(cron = "0 0/1 * * * ?")
  22. public void emailTask() throws EmailException, MessagingException, IOException {
  23. final String path = "static/eamil-template.html";
  24. ClassPathResource resource = new ClassPathResource(path);
  25. InputStream is = resource.getInputStream();
  26. Reader reader = new InputStreamReader(is);
  27. BufferedReader htmlReader = new BufferedReader(reader);
  28. StringBuffer buffer = new StringBuffer();
  29. String line = "";
  30. try {
  31. while ((line = htmlReader.readLine()) != null) {
  32. buffer.append(line);
  33. }
  34. } catch (Exception e) {
  35. log.error("读取文件失败,fileName:{}", path, e);
  36. } finally {
  37. is.close();
  38. htmlReader.close();
  39. }
  40. SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
  41. String dateString = formatter.format(new Date());
  42. String htmlText = MessageFormat.format(buffer.toString(), "陕西", dateString);
  43. apcemail.sendMail("qushencn@qq.com", "服务离线通知", htmlText);
  44. }
  45. }

 

 

原文链接:https://blog.csdn.net/weixin_38959210/article/details/117700810



所属网站分类: 技术文章 > 博客

作者:忽明忽灭

链接:http://www.javaheidong.com/blog/article/222471/35226dd7e2d9fe9c47f8/

来源:java黑洞网

任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任

4 0
收藏该文
已收藏

评论内容:(最多支持255个字符)