Spring Boot 使用JavaMailSenderImpl 发送邮件
package cn.com.weisoft.baseclient.utils; import cn.com.weisoft.baseclient.entity.Attachment; import org.springframework.core.io.FileSystemResource; import org.springframework.mail.javamail.JavaMailSenderImpl; import org.springframework.mail.javamail.MimeMessageHelper; import javax.mail.internet.MimeMessage; import java.io.File; import java.nio.file.Files; import java.nio.file.Paths; import java.util.List; import java.util.Properties; public class EmailUtil { private int connectionTimeout = 5000;//连接超时时间 private int smtpTimeout = 3000; private int writeTimeout = 10000; private boolean ttlsEnable = true; private boolean ttlsRequired = true; private boolean smtpAuth = true; public boolean SendMail(String stmpServer, int stmpPort, String fromEmail, String fromNickname, String fromPass, String toEmail, String emailSubject, String emailBody) { boolean flag = false; try { JavaMailSenderImpl javaMailSender = new JavaMailSenderImpl(); javaMailSender.setDefaultEncoding("utf-8"); javaMailSender.setHost(stmpServer); // 设置邮箱服务器 javaMailSender.setPort(stmpPort); // 设置端口 javaMailSender.setUsername(fromEmail); // 设置用户名 javaMailSender.setPassword(fromPass); // 设置密码(记得替换为你实际的密码、授权码) javaMailSender.setProtocol("smtps"); // 设置协议 Properties properties = new Properties(); // 配置项 properties.put("mail.smtp.connectiontimeout", connectionTimeout); properties.put("mail.smtp.timeout", smtpTimeout); properties.put("mail.smtp.writetimeout", writeTimeout); properties.put("mail.smtp.auth", smtpAuth); properties.put("mail.smtp.starttls.enable", ttlsEnable); properties.put("mail.smtp.starttls.required", ttlsRequired); javaMailSender.setJavaMailProperties(properties); // 设置配置项 // 创建一个邮件消息 MimeMessage message = javaMailSender.createMimeMessage(); // 创建 MimeMessageHelper MimeMessageHelper helper = new MimeMessageHelper(message, false); // 发件人邮箱和名称 helper.setFrom(fromEmail, fromNickname); // 收件人邮箱 helper.setTo(toEmail); // 邮件标题 helper.setSubject(emailSubject); // 邮件正文,第二个参数表示是否是HTML正文 helper.setText(emailBody, true); // 发送 javaMailSender.send(message); flag = true; } catch (Exception ex) { flag = false; ex.printStackTrace(); } return flag; } //发送邮件 public boolean SendEMail(String smtpServer, int smtpPort, String fromEmail, String fromPass, String nickName, String toEmail, String subject, String content, boolean isHtml) { boolean result = false; try { JavaMailSenderImpl javaMailSender = new JavaMailSenderImpl(); javaMailSender.setDefaultEncoding("utf-8"); javaMailSender.setHost(smtpServer); // 设置邮箱服务器 javaMailSender.setPort(smtpPort); // 设置端口 javaMailSender.setUsername(fromEmail); // 设置用户名 javaMailSender.setPassword(fromPass); // 设置密码(记得替换为你实际的密码、授权码) javaMailSender.setProtocol("smtps"); // 设置协议 Properties properties = new Properties(); // 配置项 properties.put("mail.smtp.connectiontimeout", connectionTimeout); properties.put("mail.smtp.timeout", smtpTimeout); properties.put("mail.smtp.writetimeout", writeTimeout); properties.put("mail.smtp.auth", smtpAuth); properties.put("mail.smtp.starttls.enable", ttlsEnable); properties.put("mail.smtp.starttls.required", ttlsRequired); javaMailSender.setJavaMailProperties(properties); // 设置配置项 MimeMessage message = javaMailSender.createMimeMessage(); MimeMessageHelper helper = new MimeMessageHelper(message, false); helper.setFrom(fromEmail, nickName); helper.setTo(toEmail); helper.setSubject(subject); helper.setText(content, isHtml); javaMailSender.send(message); result = true; } catch (Exception ex) { ; } return result; } public boolean SendEMail(String smtpServer, int smtpPort, String fromEmail, String fromPass, String nickName, String toEmail, String subject, String content, boolean isHtml, List<Attachment> attachments) { boolean flag = false; try { JavaMailSenderImpl javaMailSender = new JavaMailSenderImpl(); javaMailSender.setDefaultEncoding("utf-8"); javaMailSender.setHost(smtpServer); // 设置邮箱服务器 javaMailSender.setPort(smtpPort); // 设置端口 javaMailSender.setUsername(fromEmail); // 设置用户名 javaMailSender.setPassword(fromPass); // 设置密码(记得替换为你实际的密码、授权码) javaMailSender.setProtocol("smtps"); // 设置协议 Properties properties = new Properties(); // 配置项 properties.put("mail.smtp.connectiontimeout", 5000); properties.put("mail.smtp.timeout", 3000); properties.put("mail.smtp.writetimeout", "5000"); properties.put("mail.smtp.auth", true); properties.put("mail.smtp.starttls.enable", true); properties.put("mail.smtp.starttls.required", true); javaMailSender.setJavaMailProperties(properties); // 设置配置项 MimeMessage message = javaMailSender.createMimeMessage(); MimeMessageHelper helper = new MimeMessageHelper(message, true); helper.setFrom(fromEmail, nickName); helper.setTo(toEmail); helper.setSubject(subject); helper.setText(content, isHtml); for (Attachment attachment : attachments) { String fileName = attachment.getFileName(); String filePath = attachment.getFilePath(); FileSystemResource file = new FileSystemResource(filePath); helper.addAttachment(fileName, file); Printer.Print("夹带附件:"+filePath); } javaMailSender.send(message); flag = true; } catch (Exception e) { ; } return flag; } }