邮件发送

这篇博客详细介绍了如何配置和使用JavaMail发送QQ邮件。首先在QQ邮箱开启POP3/SMTP服务并记录授权码,然后在Java项目中导入相关包,设置邮件服务器属性,包括SMTP和SSL加密。接着,创建Session并提供认证信息,建立与邮件服务器的连接,创建并设置邮件内容,最后发送邮件并关闭连接。示例代码中展示了完整的发送过程。
摘要由CSDN通过智能技术生成

邮件发送原理:

在这里插入图片描述首先在QQ邮箱中点击 设置–>账号—>开启POP3/SMTP服务–>保存更改就可以了(这里要记录一下)

在这里插入图片描述
记录好自己的授权码

在这里插入图片描述
新建一个web项目
导入以下两个包:

在这里插入图片描述
代码实现如下:

public static void main(String[] args) throws GeneralSecurityException, MessagingException {

        Properties prop = new Properties();
        prop.setProperty("mail.host", "smtp.qq.com");//设置QQ邮件服务器
        prop.setProperty("mail.transport.protocol", "smtp");//邮件发送协议
        prop.setProperty("mail.smtp.auth", "true");//需要验证用户名密码

        //关于QQ邮箱,还要设置SSL加密,加上以下代码即可,其他邮箱不需要!
        MailSSLSocketFactory sf = new MailSSLSocketFactory();
        sf.setTrustAllHosts(true);
        prop.put("mail.smtp.ssl.enable", "true");
        prop.put("mail.smtp.ssl.socketFactory", sf);

        //使用JavaMail发送邮件的5个步骤

        //1、创建定义整个应用程序所需的环境信息的Session对象
        //创建定义整个应用程序所需的环境信息的 Session对象

        //QQ邮箱需以下设置
        Session session = Session.getDefaultInstance(prop, new Authenticator() {
            public PasswordAuthentication getPasswordAuthentication() {
                //发送人邮件用户名、授权码
                return new PasswordAuthentication("xxx@qq.com", "授权码");
            }
        });

        //开启 session的 debug 模式,这样就可以查看到程序发送 Email 的运行状态
        session.setDebug(true);

        //2、通过session得到 transport对象
        Transport ts = session.getTransport();

        //3、使用邮箱的用户名和授权码连上邮件服务器
        ts.connect("smtp.qq.com", "xxx@qq.com", "授权码");

        //4、创建邮件:写邮件
        //注意需要传递 Session
        MimeMessage message = new MimeMessage(session);

        //指明邮件的收件人,发件人和收件人是一样的,那就是自己给自己发
        message.setFrom(new InternetAddress("xxx@qq.com"));
        message.setRecipient(Message.RecipientType.TO, new InternetAddress("xxx@qq.com"));

        //邮件的标题
        message.setSubject("学习邮件发送");

        //邮件的文本内容
        message.setContent("<h1 style='color:red'>Hello World</h1>", "text/html;charset=UTF-8");

        //5、发送邮件
        ts.sendMessage(message, message.getAllRecipients());

        //6、关闭连接
        ts.close();

    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值