1. 开发环境

Java,idea,QQ邮箱

2.开启邮箱服务

首先登入QQ邮箱,点击“设置—》账号”,将POP3/SMTP 服务开启,同时生成授权码

java邮件发送失败 java邮件收发_发送邮件

3.获取授权码

点击生成授权码,按照邮箱给出的步骤发送短信后,会得到一个16位的授权码,记住,后面的代码中会用到

4.代码实现

4.1.1.导入依赖

<dependency>
            <groupId>javax.mail</groupId>
            <artifactId>mail</artifactId>
            <version>1.5.0-b01</version>
        </dependency>

4.1.2 随便创建一个启动类,含有main函数或者maven项目的test方法(我是利用的maven项目的测试类进行编写的)

import org.junit.jupiter.api.Test;
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 SendMail {
    //发件人的邮箱
    public static String Account="用于发送邮件的邮箱,例如:XXX@qq.com";
    public static String Password="刚刚获取的16位授权码";
    //QQ邮箱这里一般是相同的,可以不修改
    public static String SMTPHost="smtp.qq.com";
    //收件人邮箱
    public static String receiveMail="用于接收的邮箱账号";

    @Test
    public void SendMailTest() throws Exception {
        //1.创建参数配置,用于连接邮件服务器的参数配置
        Properties prop=new Properties();
        prop.setProperty("mail.transport.protocol","smtp");
        prop.setProperty("mail.smtp.host",SMTPHost);
        prop.setProperty("mail.smtp.auth","true");
        final String smtpPort="465";
        prop.setProperty("mail.smtp.port",smtpPort);
        prop.setProperty("mail.smtp.socketFactory.class","javax.net.ssl.SSLSocketFactory");
        prop.setProperty("mail.smtp.socketFactory.fallback","false");
        prop.setProperty("mail.smtp.socketFactory.port",smtpPort);

        //2.根据配置创建会话
        Session session=Session.getInstance(prop);
        //设置debug
        session.setDebug(true);

        //3.创建一封邮件
        MimeMessage message=createMimeMessage(session,Account,receiveMail);

        //4.根据Session获取邮件
        Transport transport=session.getTransport();

        //5.使用邮箱账号密码连接邮件服务器
        transport.connect(Account,Password);

        //6.发送邮件,发到所有的收件地址
        transport.sendMessage(message,message.getAllRecipients());

        //7.关闭连接
        transport.close();

    }

    public static MimeMessage createMimeMessage(Session session, String sendMail, String receiveMail) throws Exception {
        //1.创建一封邮件
        MimeMessage message=new MimeMessage(session);

        //2.from:发件人
        message.setFrom(new InternetAddress(sendMail,"发件人","UTF-8"));

        //3.to:收件人
        message.setRecipient(MimeMessage.RecipientType.TO,new InternetAddress(receiveMail,"收件人","UTF-8"));

        //4.邮件主题
        message.setSubject("发送邮箱的标题/主题","UTF-8");

        //5.邮件主题
        message.setContent("你需要发送的邮件内容","text/html;charset=UTF-8");

        //6.设置发件时间
        message.setSentDate(new Date());

        //7.保存设置
        message.saveChanges();
        return message;
    }
}

点击启动测试类,会受到一封邮件,表明程序运行成功!