java发送邮件(qq邮箱)

2025-10-22 04:45:18

1、本示例是以qq邮箱来演示说明。通过程序客户端发送邮件,需要开启IMAP/SMTP服务,登录qq邮箱web页面,设置里面进行开启设置。

java发送邮件(qq邮箱)

2、开启时需要手机验证,验证完成之后,会显示授权码,这个授权码需要记录下来,后面程序里需要这个授权码作为密码来使用

java发送邮件(qq邮箱)

3、查看qq邮箱的发送邮件服务器,点击(什么是 IMAP,它又是如何设置?)可以查看

java发送邮件(qq邮箱)

4、现在开始写代码,创建一封简单邮件对象,Message,设置发件人,收件人,主题,正文,时间

java发送邮件(qq邮箱)

5、创建参数配置,设置发送协议、发送邮件服务器、ssl端口服务。然后获取传输对象Transport,进行连接和发送邮件,发送完成之后关闭连接

java发送邮件(qq邮箱)

6、完整的示例代码:

package cn.sw.study.common.test;

import javax.mail.Message;

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;

/**

 * java发送邮件测试

 */

public class TestMail {

    // 发件人的邮箱地址和密码

    public static String sendEmailAccount = "xxx";

    //如果有授权码,此处填写授权码

    public static String sendEmailPassword = "xxx";

    // 发件人邮箱的 SMTP 服务器地址, 可以登录web邮箱查询

    public static String sendEmailSMTPHost = "smtp.qq.com";

    // 收件人邮箱地址

    public static String receiveMailAccount = "xxx";

    public static void main(String[] args) throws Exception {

        // 参数配置

        Properties props = new Properties();

        props.setProperty("mail.transport.protocol", "smtp");

        props.setProperty("mail.smtp.host", sendEmailSMTPHost);

        props.setProperty("mail.smtp.auth", "true");

        props.setProperty("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");

        props.setProperty("mail.smtp.port", "465");

        props.setProperty("mail.smtp.socketFactory.port", "465");

        // 根据配置创建会话对象, 用于和邮件服务器交互

        Session session = Session.getDefaultInstance(props);

        session.setDebug(true);   // 设置为debug模式, 可以查看详细的发送 log

        // 创建一封邮件

        Message message = createMimeMessage(session, sendEmailAccount, receiveMailAccount);

        // 根据 Session 获取邮件传输对象

        Transport transport = session.getTransport();

        // 使用 邮箱账号 和 密码 连接邮件服务器, 这里认证的邮箱必须与 message 中的发件人邮箱一致, 否则会报错

        transport.connect(sendEmailAccount, sendEmailPassword);

        // 发送邮件

        transport.sendMessage(message, message.getAllRecipients());

        // 关闭连接

        transport.close();

    }

    /**

     * 创建一封简单邮件

     */

    private static Message createMimeMessage(Session session, String sendMail, String receiveMail) throws Exception {

        Message message = new MimeMessage(session);

        message.setFrom(new InternetAddress(sendMail));

        message.setRecipient(MimeMessage.RecipientType.TO, new InternetAddress(receiveMail));

        // 设置邮件标题

        message.setSubject("发送邮件测试");

        // 设置邮件正文

        message.setText("这是测试内容,请忽略此内容详情");

        message.setSentDate(new Date());

        //保存设置

        message.saveChanges();

        return message;

    }

}

右击运行此测试程序,控制台打印出"message successfully delivered to mail server"表示发送成功

java发送邮件(qq邮箱)

7、此时,如果你的接受邮箱的qq是登录状态,会收到邮件的提醒,进入邮箱,查看刚刚收到的邮件

java发送邮件(qq邮箱)

java发送邮件(qq邮箱)

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢