package com.xujie.sys.common.utils; import com.xujie.sys.modules.pms.data.MailSendAddressData; import lombok.extern.slf4j.Slf4j; import org.springframework.mail.javamail.JavaMailSenderImpl; import org.springframework.mail.javamail.MimeMessageHelper; import jakarta.mail.internet.MimeMessage; import java.util.Arrays; import java.util.Properties; @Slf4j public class MailUtil { public static void sendMail(String textHead, String text, String[] mailAddress, MailSendAddressData mailSendData) { JavaMailSenderImpl sender = new JavaMailSenderImpl(); sender.setHost(mailSendData.getHost()); sender.setPort(mailSendData.getPort()); sender.setUsername(mailSendData.getUsername()); sender.setPassword(mailSendData.getPassword()); sender.setDefaultEncoding("Utf-8"); Properties p = new Properties(); p.setProperty("mail.smtp.timeout", mailSendData.getTimeout()); p.setProperty("mail.smtp.auth", "false"); p.setProperty("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory"); sender.setJavaMailProperties(p); MimeMessage mimeMessage = sender.createMimeMessage(); // 设置utf-8或GBK编码,否则邮件会有乱码 try { MimeMessageHelper messageHelper = new MimeMessageHelper(mimeMessage, true, "UTF-8"); messageHelper.setFrom(mailSendData.getEmailForm(), mailSendData.getPersonal()); messageHelper.setTo(Arrays.stream(mailAddress) .filter(s -> s != null && !s.trim().isEmpty()) .toArray(String[]::new)); messageHelper.setSubject(textHead); // 标题 messageHelper.setText(text, true); sender.send(mimeMessage); log.info(textHead + "通知邮件已发送!收件箱地址:" + Arrays.toString(mailAddress)); } catch (Exception e) { log.info("邮件发送失败!"); } } }