EmailUtil.java 3.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. package jnpf.message.util;
  2. import com.alibaba.fastjson.JSONObject;
  3. import jnpf.message.model.message.EmailModel;
  4. import jakarta.mail.MessagingException;
  5. import jakarta.mail.Session;
  6. import jakarta.mail.Transport;
  7. import jakarta.mail.internet.InternetAddress;
  8. import jakarta.mail.internet.MimeMessage;
  9. import java.io.UnsupportedEncodingException;
  10. import java.util.Properties;
  11. /**
  12. * 邮件类
  13. *
  14. * @版本: V3.1.0
  15. * @版权: 引迈信息技术有限公司(https://www.jnpfsoft.com)
  16. * @作者: JNPF开发平台组
  17. * @日期: 2021/4/20 14:52
  18. */
  19. public class EmailUtil {
  20. public static boolean isEmail(String email){
  21. String EMAIL_REGEX = "^[\\w-_\\.+]*[\\w-_\\.]\\@([\\w]+\\.)+[\\w]+[\\w]$";
  22. Boolean b = email.matches(EMAIL_REGEX);
  23. return b;
  24. }
  25. public static JSONObject sendMail(EmailModel emailModel) {
  26. JSONObject retMsg = new JSONObject();
  27. // 邮件发送人
  28. String from = emailModel.getEmailAccount();
  29. // 邮件接收人的邮件地址
  30. String to = emailModel.getEmailToUsers();
  31. //定义Properties对象,设置环境信息
  32. Properties props = System.getProperties();
  33. // 设置邮件服务器的地址
  34. // 指定的smtp服务器
  35. props.setProperty("mail.smtp.host", emailModel.getEmailSmtpHost());
  36. props.setProperty("mail.smtp.auth", "true");
  37. //ssl安全链接
  38. props.setProperty("mail.smtp.ssl.enable", emailModel.getEmailSsl());
  39. //设置发送邮件使用的协议
  40. props.setProperty("mail.transport.protocol", "smtp");
  41. if("587".equals(emailModel.getEmailSmtpPort())){
  42. props .put("mail.smtp.starttls.enable", "true");
  43. }
  44. //创建Session对象,session对象表示整个邮件的环境信息
  45. Session session = Session.getInstance(props);
  46. //设置输出调试信息
  47. session.setDebug(true);
  48. try {
  49. // Message的实例对象表示一封电子邮件
  50. MimeMessage message = new MimeMessage(session);
  51. // 设置发件人的地址
  52. message.setFrom(new InternetAddress(from,emailModel.getEmailSenderName(),"UTF-8"));
  53. // 设置收件人信息
  54. InternetAddress[] sendTo = InternetAddress.parse(to);
  55. message.setRecipients(MimeMessage.RecipientType.TO, sendTo);
  56. // 设置主题
  57. message.setSubject(emailModel.getEmailTitle());
  58. // 设置邮件的文本内容
  59. message.setContent((emailModel.getEmailContent()),"text/html;charset=utf-8");
  60. // 设置附件
  61. //message.setDataHandler(dh);
  62. // 获取发送邮件的对象
  63. Transport transport=session.getTransport();
  64. // 连接邮件服务器
  65. transport.connect(emailModel.getEmailSmtpHost(),Integer.parseInt(emailModel.getEmailSmtpPort()), emailModel.getEmailAccount(), emailModel.getEmailPassword());
  66. // 发送消息
  67. transport.sendMessage(message,sendTo);
  68. transport.close();
  69. retMsg.put("code",true);
  70. retMsg.put("error","");
  71. return retMsg;
  72. // return true;
  73. } catch (MessagingException | UnsupportedEncodingException e) {
  74. retMsg.put("code",false);
  75. retMsg.put("error",e.toString());
  76. return retMsg;
  77. // e.printStackTrace();
  78. // return false;
  79. }
  80. }
  81. }