Java: javax.mail envia e-mail através do servidor 163

<dependency>
    <groupId>javax.mail</groupId>
    <artifactId>mail</artifactId>
    <version>1.4.7</version>
</dependency>
package com.example.demo;

import javax.mail.*;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import java.util.Properties;

public class SendEmail {

    public static Properties getProperties(){

        Properties properties = new Properties();

        // 开启debug调试
        properties.setProperty("mail.debug", "true");
        // 邮件服务器
        properties.setProperty("mail.smtp.host", "smtp.163.com");
        // 端口号
        properties.setProperty("mail.smtp.port", "25");
        // 需要身份验证
        properties.setProperty("mail.smtp.auth", "true");

        // 发送邮件协议
        properties.setProperty("mail.transport.protocol", "smtp");
        
        properties.setProperty("mail.smtp.ssl.enable", "true");
        
        return properties;

    }

    public static void main(String[] args) {

        // 发件人
        String fromUser = "[email protected]";
        // 客户端授权码
        String password = "xxx";
        // 收件人
        String toUser = "[email protected]";

        // 获取默认session对象
        Session session = Session.getInstance(getProperties());

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

            // 发送人
            message.setFrom(new InternetAddress(fromUser));

            // 接收人
            message.addRecipient(Message.RecipientType.TO,
                    new InternetAddress(toUser));

            // 标题
            message.setSubject("This is the Subject Line!");

            // 消息体
            //message.setText("This is actual message");

            //设置消息体StringhtmlContent="<h1>Hello World!</h1><p>This is a HTML email.</p>";
            message.setContent("htmlContent", "text/html;charset=utf-8");

            // 发送消息
            Transport transport = session.getTransport();
            transport.connect(fromUser, password);
            transport.sendMessage(message, new Address[]{new InternetAddress(toUser)});
            transport.close();

            System.out.println("Sent message successfully....");
        } catch (MessagingException e) {
            e.printStackTrace();
        }
    }
}

Como resolver o problema de não conseguir enviar e-mails quando o projeto SpringBoot é implantado no servidor

Erro um:

tentando se conectar ao host “smtp.163.com”, porta 25, isSSL  false

在发送邮件的类加上: props.put("mail.smtp.ssl.enable", true);

Erro 2:

tentando se conectar ao host “smtp.163.com”, porta 25, isSSL  true

将SMTP端口号25改为465:
props.put("mail.smtp.port", "465");

Guess you like

Origin blog.csdn.net/yyongsheng/article/details/132684058