刘光辉
昨天 bb638871a7fb692d80f1b7a758f991dc0879002c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
package jnpf.message.util;
 
import com.alibaba.fastjson.JSONObject;
import jakarta.mail.Message;
import jakarta.mail.MessagingException;
import jakarta.mail.Session;
import jakarta.mail.Transport;
import jakarta.mail.internet.InternetAddress;
import jakarta.mail.internet.MimeMessage;
import jnpf.message.model.EmailModel;
 
import java.io.UnsupportedEncodingException;
import java.util.Properties;
 
/**
 * 邮件类
 *
 * @版本: V3.1.0
 * @版权: 引迈信息技术有限公司(https://www.jnpfsoft.com)
 * @作者: JNPF开发平台组
 * @日期: 2021/4/20 14:52
 */
public class EmailUtil {
    EmailUtil() {
    }
 
    private static final String EMAIL_REGEX = "^[\\w.+%-]+@[\\w.-]+\\.[a-zA-Z]{2,}$";
 
    public static boolean isEmail(String email) {
        return email.matches(EMAIL_REGEX);
    }
 
    public static JSONObject sendMail(EmailModel emailModel) {
        JSONObject retMsg = new JSONObject();
        // 邮件发送人
        String from = emailModel.getEmailAccount();
        // 邮件接收人的邮件地址
        String to = emailModel.getEmailToUsers();
 
        //定义Properties对象,设置环境信息
        Properties props = System.getProperties();
 
        // 设置邮件服务器的地址
        // 指定的smtp服务器
        props.setProperty("mail.smtp.host", emailModel.getEmailSmtpHost());
        props.setProperty("mail.smtp.auth", "true");
        //ssl安全链接
        props.setProperty("mail.smtp.ssl.enable", emailModel.getEmailSsl());
        //设置发送邮件使用的协议
        props.setProperty("mail.transport.protocol", "smtp");
        if ("587".equals(emailModel.getEmailSmtpPort())) {
            props.put("mail.smtp.starttls.enable", "true");
        }
        //创建Session对象,session对象表示整个邮件的环境信息
        Session session = Session.getInstance(props);
        //设置输出调试信息
        session.setDebug(true);
        try {
            // Message的实例对象表示一封电子邮件
            MimeMessage message = new MimeMessage(session);
            // 设置发件人的地址
            message.setFrom(new InternetAddress(from, emailModel.getEmailSenderName(), "UTF-8"));
            // 设置收件人信息
            InternetAddress[] sendTo = InternetAddress.parse(to);
            message.setRecipients(Message.RecipientType.TO, sendTo);
 
            // 设置主题
            message.setSubject(emailModel.getEmailTitle());
            // 设置邮件的文本内容
            message.setContent((emailModel.getEmailContent()), "text/html;charset=utf-8");
 
            // 获取发送邮件的对象
            Transport transport = session.getTransport();
            // 连接邮件服务器
            transport.connect(emailModel.getEmailSmtpHost(), Integer.parseInt(emailModel.getEmailSmtpPort()), emailModel.getEmailAccount(), emailModel.getEmailPassword());
            // 发送消息
            transport.sendMessage(message, sendTo);
 
            transport.close();
 
            retMsg.put("code", true);
            retMsg.put("error", "");
            return retMsg;
        } catch (MessagingException | UnsupportedEncodingException e) {
            retMsg.put("code", false);
            retMsg.put("error", e.toString());
            return retMsg;
        }
    }
}