Welcome

首页 / 软件开发 / JAVA / Spring Boot 使用JavaMailSenderImpl 发送邮件

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;
    }
}