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