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

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("邮件发送失败!");
}
}
}