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