SendHTMLMail.java 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121
  1. package com.xc.utils.email;
  2. import com.xc.pojo.User;
  3. import com.xc.pojo.UserRecharge;
  4. import com.xc.utils.PropertiesUtil;
  5. import java.io.File;
  6. import java.io.FileReader;
  7. import java.io.FileWriter;
  8. import java.util.Calendar;
  9. import java.util.List;
  10. import org.dom4j.Attribute;
  11. import org.dom4j.Document;
  12. import org.dom4j.Element;
  13. import org.dom4j.io.SAXReader;
  14. import org.dom4j.io.XMLWriter;
  15. import org.slf4j.Logger;
  16. import org.slf4j.LoggerFactory;
  17. public class SendHTMLMail {
  18. private static final Logger log = LoggerFactory.getLogger(SendHTMLMail.class);
  19. public static void send(User user, UserRecharge userRecharge, String emailToken, String host, String emailTo) {
  20. SAXReader reader = new SAXReader();
  21. Document document = null;
  22. String path = SendHTMLMail.class.getResource("/").getPath().replaceAll("%20", " ");
  23. String html_path = path + "email/auth.html";
  24. File file = new File(html_path);
  25. try {
  26. document = reader.read(file);
  27. document.setXMLEncoding("utf-8");
  28. Element root = document.getRootElement();
  29. Element time = getNodes(root, "id", "time");
  30. Calendar calendar = Calendar.getInstance();
  31. time.setText(calendar
  32. .get(1) + "-" + (calendar.get(2) + 1) + "-" + calendar
  33. .get(5) + " " + calendar.get(10) + ":" + calendar
  34. .get(12) + ":" + calendar.get(13));
  35. Element noticeName = getNodes(root, "id", "noticeName");
  36. noticeName.setText(user.getRealName());
  37. Element userid = getNodes(root, "id", "userid");
  38. userid.setText(user.getId() + "");
  39. Element realname = getNodes(root, "id", "realname");
  40. realname.setText((user.getAccountType().intValue() == 0) ? ("正式用户 - " + user
  41. .getRealName()) : ("模拟用户 - " + user
  42. .getRealName()));
  43. Element amt = getNodes(root, "id", "amt");
  44. amt.setText(userRecharge.getPayAmt().toString());
  45. Element ordersn = getNodes(root, "id", "ordersn");
  46. ordersn.setText(userRecharge.getOrderSn());
  47. String authurl = PropertiesUtil.getProperty("site.email.auth.url");
  48. String emailUrl = host + authurl + "?token=" + emailToken + "&orderSn=" + userRecharge.getOrderSn() + "&state=";
  49. String successUrl = emailUrl + '\001';
  50. Element dosuccessurl = getNodes(root, "id", "dosuccessurl");
  51. dosuccessurl.setText(successUrl);
  52. Element dosuccess = getNodes(root, "id", "dosuccess");
  53. dosuccess.setAttributeValue("href", successUrl);
  54. String failUrl = emailUrl + '\002';
  55. Element dofailurl = getNodes(root, "id", "dofailurl");
  56. dofailurl.setText(failUrl);
  57. Element dofail = getNodes(root, "id", "dofail");
  58. dofail.setAttributeValue("href", failUrl);
  59. String cancelUrl = emailUrl + '\003';
  60. Element docancelurl = getNodes(root, "id", "docancelurl");
  61. docancelurl.setText(cancelUrl);
  62. Element docancel = getNodes(root, "id", "docancel");
  63. docancel.setAttributeValue("href", cancelUrl);
  64. FileWriter fwriter = new FileWriter(path + "email/temp.html");
  65. XMLWriter writer = new XMLWriter(fwriter);
  66. writer.write(document);
  67. writer.flush();
  68. FileReader in = new FileReader(path + "email/temp.html");
  69. char[] buff = new char[10240];
  70. in.read(buff);
  71. String str = new String(buff);
  72. str = str.replaceAll("\000", "");
  73. // (new MailSender.Builder(str.toString(), emailTo)).send();
  74. } catch (Exception e) {
  75. e.printStackTrace();
  76. }
  77. }
  78. public static Element getNodes(Element node, String attrName, String attrValue) {
  79. List<Attribute> listAttr = node.attributes();
  80. for (Attribute attr : listAttr) {
  81. String name = attr.getName();
  82. String value = attr.getValue();
  83. if (attrName.equals(name) && attrValue.equals(value)) {
  84. return node;
  85. }
  86. }
  87. List<Element> listElement = node.elements();
  88. for (Element e : listElement) {
  89. Element temp = getNodes(e, attrName, attrValue);
  90. if (temp != null) {
  91. return temp;
  92. }
  93. }
  94. return null;
  95. }
  96. }