package cms.utils;
 
import cn.hutool.core.util.StrUtil;
import cn.hutool.extra.mail.MailAccount;
import cn.hutool.extra.mail.MailUtil;
import jakarta.mail.Authenticator;
import jakarta.mail.MessagingException;
import jakarta.mail.Multipart;
import jakarta.mail.PasswordAuthentication;
import jakarta.mail.Session;
import jakarta.mail.Transport;
import jakarta.mail.internet.InternetAddress;
import jakarta.mail.internet.MimeBodyPart;
import jakarta.mail.internet.MimeMessage;
import jakarta.mail.internet.MimeMultipart;

import java.io.IOException;
import java.util.Date;
import java.util.Properties;

public class EmailSenderUtil {
 // 163
//    private static final String SMTP_HOST = "smtp.163.com";
//    private static final int SMTP_PORT = 25;
//    private static final String EMAIL_USERNAME = "1111a@163.com";
//    private static final String EMAIL_PASSWORD = "xxxx";


    // godaddy titan
    private static final String SMTP_HOST = "smtpout.secureserver.net";
    private static final int SMTP_PORT = 465;
    private static final String EMAIL_USERNAME = "service@xxxx.com";
    private static final String EMAIL_PASSWORD = "xxxx";


    public static void send163Email(String to, String subject, String content) {
        if (StrUtil.isBlank(to)) {
            System.err.println("收件人不能为空");
            return;
        }
        if (StrUtil.isBlank(subject)) {
            System.err.println("邮件主题不能为空");
            return;
        }
        if (StrUtil.isBlank(content)) {
            System.err.println("邮件内容不能为空");
            return;
        }

        MailAccount account = new MailAccount();
        account.setHost(SMTP_HOST);
        account.setPort(SMTP_PORT);
        account.setAuth(true);
        account.setFrom(EMAIL_USERNAME);
        account.setUser(EMAIL_USERNAME);
        account.setPass(EMAIL_PASSWORD);

        try {
            MailUtil.send(account, to, subject, content, false);
            System.out.println("邮件发送成功");
        } catch (Exception e) {
            e.printStackTrace();
            System.out.println("邮件发送失败");
        }
    }


    public static void sendGodaddyTiTanUsingSmtp(String to, String subject, String content) {
        Properties props = new Properties();
        props.put("mail.smtp.host", "smtpout.secureserver.net");
        props.put("mail.smtp.port", "465");
        props.put("mail.smtp.auth", "true");
        props.put("mail.smtp.ssl.enable", "true");
        props.put("mail.smtp.ssl.trust", "*");


        Session session = Session.getInstance(props, new Authenticator() {
            protected PasswordAuthentication getPasswordAuthentication() {
                return new PasswordAuthentication(EMAIL_USERNAME, EMAIL_PASSWORD);
            }
        });
        MimeMessage msg = new MimeMessage(session);
        try {
            InternetAddress fromAddress = new InternetAddress(EMAIL_USERNAME);
//            fromAddress.setPersonal(EMAIL_USERNAME, "UTF-8");
            msg.setFrom(fromAddress);
            msg.setRecipients(MimeMessage.RecipientType.TO, InternetAddress.parse(to));
            msg.setSubject(subject, "UTF-8");
            msg.setContent(content, "text/html;charset=UTF-8");
            msg.setSentDate(new Date());

            MimeBodyPart messageBodyPart = new MimeBodyPart();
            messageBodyPart.setContent("Test Content.", "text/html");

            Multipart multipart = new MimeMultipart();
            multipart.addBodyPart(messageBodyPart);
            MimeBodyPart attachPart = new MimeBodyPart();

//            attachPart.attachFile("/var/tmp/abc.txt");
//            multipart.addBodyPart(attachPart);
//            msg.setContent(multipart);
            Transport.send(msg);
        } catch (MessagingException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }


    public static void main(String[] args) {
        String to = "123456@qq.com";
        String subject = "测试邮件主题";
        String content = "这是一封测试邮件,包含中文内容:你好世界!";
//        sendEmail(to, subject, content);
//        sendGodaddyEmail(to, subject, content);
//        sendGodaddyEmail(to, subject, content);
        sendGodaddyTiTanUsingSmtp(to, subject, content);
    }
}

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐