个人博客站链接 big学生-博客
package zks.autoemailback.util;
import org.springframework.mail.javamail.JavaMailSenderImpl;
import org.springframework.mail.SimpleMailMessage;
import org.springframework.stereotype.Component;
import zks.autoemailback.model.Email;
import zks.autoemailback.model.EmailConfig;
import jakarta.mail.internet.MimeMessage;
import org.springframework.mail.javamail.MimeMessageHelper;
import java.util.Properties;
@Component
public class EmailUtil {
/**
* 动态配置发送邮件
*
* @param to 收件人邮箱
* @param email 邮件内容
* @param emailConfig 邮箱配置信息
*/
public void sendEmail(String to, Email email, EmailConfig emailConfig) {
JavaMailSenderImpl mailSender = new JavaMailSenderImpl();
String host = "";
switch (emailConfig.getType()) {
case "Gmail":
host = "smtp.gmail.com";
break;
case "QQ":
host = "smtp.qq.com";
break;
case "企业QQ":
host = "smtp.exmail.qq.com";
break;
default:
host = "smtp.gmail.com";
}
// 设置SMTP服务器信息
mailSender.setHost(host);
mailSender.setPort(emailConfig.getPort());
mailSender.setUsername(emailConfig.getUsername());
mailSender.setPassword(emailConfig.getPassword());
Properties props = mailSender.getJavaMailProperties();
props.put("mail.transport.protocol", "smtp");
props.put("mail.smtp.auth", "true");
if (emailConfig.getPort() == 465) {
props.put("mail.smtp.ssl.enable", "true"); // 如果需要SSL,如端口465
} else {
props.put("mail.smtp.starttls.enable", "true"); // 对于非SSL端口,如587,启用STARTTLS
}
props.put("mail.debug", "true"); // 开启调试模式,可在控制台查看发送细节
// 判断标题是否为指定的内容,如果是,则发送 HTML 格式的邮件
// if ("Champtrove Team Rings Starting at Just $80—Celebrate Your Victory NOW!".equals(email.getTitle()) || "THJhairfactory Cooperation Proposal".equals(email.getTitle()) || "2025 New Year Sale + Website Revamp - Champtrove Presents".equals(email.getTitle()) || "Don't forget your ring orders in Champtrove!".equals(email.getTitle())) {
// 创建 MimeMessage 来发送 HTML 邮件
MimeMessage mimeMessage = mailSender.createMimeMessage();
try {
MimeMessageHelper helper = new MimeMessageHelper(mimeMessage, true); // true表示支持附件
helper.setFrom(emailConfig.getUsername());
helper.setTo(to);
helper.setSubject(email.getTitle());
helper.setText(email.getBody(), true); // 第二个参数设置为true表示HTML格式
} catch (Exception e) {
e.printStackTrace();
}
mailSender.send(mimeMessage);
// } else {
// // 发送普通文本邮件
// SimpleMailMessage message = new SimpleMailMessage();
// message.setFrom(emailConfig.getUsername()); // 动态设置发件人
// message.setTo(to);
// message.setSubject(email.getTitle());
// message.setText(email.getBody());
// mailSender.send(message);
// }
}
}
20万+

被折叠的 条评论
为什么被折叠?



