Java:javax.mail通过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();
        }
    }
}

SpringBoot项目部署到服务器上无法发送邮件解决方式

错误一:

trying to connect to host “smtp.163.com”, port 25, isSSL false

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

错误二:

trying to connect to host “smtp.163.com”, port 25, isSSL true

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

猜你喜欢

转载自blog.csdn.net/yyongsheng/article/details/132684058
今日推荐