MailSendUtils.java 5.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154
  1. package com.jeeplus.common.mail;
  2. /**
  3. * 简单邮件(不带附件的邮件)发送器
  4. */
  5. import java.util.Date;
  6. import java.util.Properties;
  7. import javax.mail.Address;
  8. import javax.mail.BodyPart;
  9. import javax.mail.Message;
  10. import javax.mail.Multipart;
  11. import javax.mail.Session;
  12. import javax.mail.Transport;
  13. import javax.mail.internet.InternetAddress;
  14. import javax.mail.internet.MimeBodyPart;
  15. import javax.mail.internet.MimeMessage;
  16. import javax.mail.internet.MimeMultipart;
  17. public class MailSendUtils {
  18. /**
  19. * 以文本格式发送邮件
  20. * @param mailInfo 待发送的邮件的信息
  21. */
  22. public boolean sendTextMail(MailBody mailInfo) throws Exception{
  23. // 判断是否需要身份认证
  24. MailAuthenticator authenticator = null;
  25. Properties pro = mailInfo.getProperties();
  26. if (mailInfo.isValidate()) {
  27. // 如果需要身份认证,则创建一个密码验证器
  28. authenticator = new MailAuthenticator(mailInfo.getUserName(), mailInfo.getPassword());
  29. }
  30. // 根据邮件会话属性和密码验证器构造一个发送邮件的session
  31. Session sendMailSession = Session.getDefaultInstance(pro,authenticator);
  32. // logBefore(logger, "构造一个发送邮件的session");
  33. // 根据session创建一个邮件消息
  34. Message mailMessage = new MimeMessage(sendMailSession);
  35. // 创建邮件发送者地址
  36. Address from = new InternetAddress(mailInfo.getFromAddress());
  37. // 设置邮件消息的发送者
  38. mailMessage.setFrom(from);
  39. // 创建邮件的接收者地址,并设置到邮件消息中
  40. Address to = new InternetAddress(mailInfo.getToAddress());
  41. mailMessage.setRecipient(Message.RecipientType.TO,to);
  42. // 设置邮件消息的主题
  43. mailMessage.setSubject(mailInfo.getSubject());
  44. // 设置邮件消息发送的时间
  45. mailMessage.setSentDate(new Date());
  46. // 设置邮件消息的主要内容
  47. String mailContent = mailInfo.getContent();
  48. mailMessage.setText(mailContent);
  49. // 发送邮件
  50. Transport.send(mailMessage);
  51. System.out.println("发送成功!");
  52. return true;
  53. }
  54. /**
  55. * 以HTML格式发送邮件
  56. * @param mailInfo 待发送的邮件信息
  57. */
  58. public boolean sendHtmlMail(MailBody mailInfo) throws Exception{
  59. // 判断是否需要身份认证
  60. MailAuthenticator authenticator = null;
  61. Properties pro = mailInfo.getProperties();
  62. //如果需要身份认证,则创建一个密码验证器
  63. if (mailInfo.isValidate()) {
  64. authenticator = new MailAuthenticator(mailInfo.getUserName(), mailInfo.getPassword());
  65. }
  66. // 根据邮件会话属性和密码验证器构造一个发送邮件的session
  67. Session sendMailSession = Session.getDefaultInstance(pro,authenticator);
  68. // 根据session创建一个邮件消息
  69. Message mailMessage = new MimeMessage(sendMailSession);
  70. // 创建邮件发送者地址
  71. Address from = new InternetAddress(mailInfo.getFromAddress());
  72. // 设置邮件消息的发送者
  73. mailMessage.setFrom(from);
  74. // 创建邮件的接收者地址,并设置到邮件消息中
  75. Address to = new InternetAddress(mailInfo.getToAddress());
  76. // Message.RecipientType.TO属性表示接收者的类型为TO
  77. mailMessage.setRecipient(Message.RecipientType.TO,to);
  78. // 设置邮件消息的主题
  79. mailMessage.setSubject(mailInfo.getSubject());
  80. // 设置邮件消息发送的时间
  81. mailMessage.setSentDate(new Date());
  82. // MiniMultipart类是一个容器类,包含MimeBodyPart类型的对象
  83. Multipart mainPart = new MimeMultipart();
  84. // 创建一个包含HTML内容的MimeBodyPart
  85. BodyPart html = new MimeBodyPart();
  86. // 设置HTML内容
  87. html.setContent(mailInfo.getContent(), "text/html; charset=utf-8");
  88. mainPart.addBodyPart(html);
  89. // 将MiniMultipart对象设置为邮件内容
  90. mailMessage.setContent(mainPart);
  91. // 发送邮件
  92. Transport.send(mailMessage);
  93. return true;
  94. }
  95. /**
  96. * @param SMTP
  97. * 邮件服务器
  98. * @param PORT
  99. * 端口
  100. * @param EMAIL
  101. * 本邮箱账号
  102. * @param PAW
  103. * 本邮箱密码
  104. * @param toEMAIL
  105. * 对方箱账号
  106. * @param TITLE
  107. * 标题
  108. * @param CONTENT
  109. * 内容
  110. * @param TYPE
  111. * 1:文本格式;2:HTML格式
  112. */
  113. public static boolean sendEmail(String SMTP, String PORT, String EMAIL,
  114. String PAW, String toEMAIL, String TITLE, String CONTENT,
  115. String TYPE) {
  116. // 这个类主要是设置邮件
  117. MailBody mailInfo = new MailBody();
  118. mailInfo.setMailServerHost(SMTP);
  119. mailInfo.setMailServerPort(PORT);
  120. mailInfo.setValidate(true);
  121. mailInfo.setUserName(EMAIL);
  122. mailInfo.setPassword(PAW);
  123. mailInfo.setFromAddress(EMAIL);
  124. mailInfo.setToAddress(toEMAIL);
  125. mailInfo.setSubject(TITLE);
  126. mailInfo.setContent(CONTENT);
  127. // 这个类主要来发送邮件
  128. MailSendUtils sms = new MailSendUtils();
  129. try {
  130. if ("1".equals(TYPE)) {
  131. return sms.sendTextMail(mailInfo);
  132. } else {
  133. return sms.sendHtmlMail(mailInfo);
  134. }
  135. } catch (Exception e) {
  136. return false;
  137. }
  138. }
  139. }