package com.ktg.iscs.config;

import com.ktg.common.utils.DateUtils;
import com.ktg.iscs.domain.vo.mail.MailVO;

import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import java.util.Date;
import java.util.Properties;

public class EmailSender {


    public static Boolean sendLocalMail(String toMail, MailVO vo, String subject, String text) {
        // subject = "今天的主题";
        // text = "今天的天气真不错";

        // 收件人邮箱地址
        String to = toMail;

        // 发件人邮箱地址
        String from = vo.getFromMail();

        // SMTP服务器地址（HMailServer的地址）
        String host = vo.getHostIp(); // 或者你的HMailServer的IP地址或域名

        // 获取系统属性
        Properties properties = System.getProperties();

        // 设置邮件服务器
        properties.setProperty("mail.smtp.host", host);
        properties.setProperty("mail.smtp.port", vo.getPort()); // HMailServer默认使用端口25
        properties.setProperty("mail.smtp.auth", vo.getAuth()); // 如果需要身份验证，设置为true

        // 获取默认的Session对象
        Session session = Session.getDefaultInstance(properties);

        try {
            // 创建默认的MimeMessage对象
            MimeMessage message = new MimeMessage(session);

            // 设置发件人
            message.setFrom(new InternetAddress(from));

            // 设置收件人
            message.addRecipient(Message.RecipientType.TO, new InternetAddress(to));

            // 设置邮件主题
            message.setSubject(subject);

            // 设置邮件内容
            String replace = text.replace("[邮件发送日期]", DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD_HH_MM_SS, new Date()));
            message.setText(replace);

            // 发送消息
            Transport.send(message);
            return true;
        } catch (MessagingException mex) {
            mex.printStackTrace();
        }
        return false;
    }
}
