Java发送邮件(QQ邮箱)

使用Java应用程序发送E-mail十分简单,但是首先你应该在你的机器上安装JavaMail APIJava Activation Framework (JAF)

JavaMail API (oracle.com)

JavaBeans Activation Framework 1.1 Download (oracle.com)

本案例以QQ邮箱为例:

在QQ邮箱中我们要先登入QQ邮箱的网页,去账户那一栏中获取授权码才可以!!!

否则就会报错:

邮箱报错javax.mail.AuthenticationFailedException: 535 Login Fail. Please enter your authorization code t

详细请看:

(2条消息) 邮箱报错javax.mail.AuthenticationFailedException: 535 Login Fail. Please enter your authorization code t_帆软无法的博客-CSDN博客icon-default.png?t=M4ADhttps://blog.csdn.net/qq_41879385/article/details/104259852

代码如下:

发送端、接收端的QQ邮箱需要自行给出! 

import java.util.Properties;

import javax.mail.Authenticator;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;

public class mail_demo_test{
    public static void main(String [] args) {

        // 收件人电子邮箱
        String to = "XXX@qq.com";

        // 发件人电子邮箱
        String from = "XXX@qq.com";

        // 指定发送邮件的主机为 smtp.qq.com
        String host = "smtp.qq.com";  //QQ 邮件服务器

        // 获取系统属性
        Properties properties = System.getProperties();

        // 设置邮件服务器
        properties.setProperty("mail.smtp.host", host);

        properties.put("mail.smtp.auth", "true");

        // 获取默认session对象
        Session session = Session.getDefaultInstance(properties,new Authenticator(){
            public PasswordAuthentication getPasswordAuthentication() {
                
                // 发件人邮件用户名、授权码
                // 我的授权码gbuoutlxeriqjeae(写你自己)
                return new PasswordAuthentication("XXX@qq.com", "gbuoutlxeriqjeae"); 
            }
        });

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

            // Set From: 头部头字段
            message.setFrom(new InternetAddress(from));

            // Set To: 头部头字段
            message.addRecipient(Message.RecipientType.TO,
                    new InternetAddress(to));

            // Set Subject: 头部头字段
            message.setSubject("2022-5-11");

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

            // 发送消息
            Transport.send(message);
            System.out.println("Sent message successfully....Harmony");
        }catch (MessagingException mex) {
            mex.printStackTrace();
        }
    }
}

对方查看如下: 

posted @   金鳞踏雨  阅读(100)  评论(0编辑  收藏  举报  
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)
点击右上角即可分享
微信分享提示