O
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

42 lines
1.9 KiB

6 months ago
  1. package com.xujie.sys.common.utils;
  2. import com.xujie.sys.modules.pms.data.MailSendAddressData;
  3. import lombok.extern.slf4j.Slf4j;
  4. import org.springframework.mail.javamail.JavaMailSenderImpl;
  5. import org.springframework.mail.javamail.MimeMessageHelper;
  6. import jakarta.mail.internet.MimeMessage;
  7. import java.util.Arrays;
  8. import java.util.Properties;
  9. @Slf4j
  10. public class MailUtil {
  11. public static void sendMail(String textHead, String text, String[] mailAddress, MailSendAddressData mailSendData) {
  12. JavaMailSenderImpl sender = new JavaMailSenderImpl();
  13. sender.setHost(mailSendData.getHost());
  14. sender.setPort(mailSendData.getPort());
  15. sender.setUsername(mailSendData.getUsername());
  16. sender.setPassword(mailSendData.getPassword());
  17. sender.setDefaultEncoding("Utf-8");
  18. Properties p = new Properties();
  19. p.setProperty("mail.smtp.timeout", mailSendData.getTimeout());
  20. p.setProperty("mail.smtp.auth", "false");
  21. p.setProperty("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
  22. sender.setJavaMailProperties(p);
  23. MimeMessage mimeMessage = sender.createMimeMessage();
  24. // 设置utf-8或GBK编码,否则邮件会有乱码
  25. try {
  26. MimeMessageHelper messageHelper = new MimeMessageHelper(mimeMessage, true, "UTF-8");
  27. messageHelper.setFrom(mailSendData.getEmailForm(), mailSendData.getPersonal());
  28. messageHelper.setTo(Arrays.stream(mailAddress)
  29. .filter(s -> s != null && !s.trim().isEmpty())
  30. .toArray(String[]::new));
  31. messageHelper.setSubject(textHead); // 标题
  32. messageHelper.setText(text, true);
  33. sender.send(mimeMessage);
  34. log.info(textHead + "通知邮件已发送!收件箱地址:" + Arrays.toString(mailAddress));
  35. } catch (Exception e) {
  36. log.info("邮件发送失败!");
  37. }
  38. }
  39. }