Java邮件客户端设计实现:使用JavaMail向QQ邮箱发邮件

2024-06-11 1656阅读

Java邮件客户端设计实现:使用JavaMail向QQ邮箱发邮件


目录

JavaMail

用JavaMail向qq邮箱发消息

▐ 授权码的获取 


JavaMail

JavaMail 是一个用于发送和接收电子邮件的 Java API。它提供了一个平台无关和协议无关的框架,允许开发人员通过标准电子邮件协议(如 SMTP、POP3 和 IMAP)来创建、发送和读取电子邮件。以下是 JavaMail 的一些关键概念和功能介绍:

▐ 基本概念

  • Session:JavaMail 的 Session 对象表示邮件会话。它存储了配置信息,如邮件服务器地址和认证信息。
  • Store:Store 对象用于与邮件服务器通信,特别是接收邮件时。它支持协议如 IMAP 和 POP3。
  • Transport:Transport 对象用于发送邮件。它支持协议如 SMTP。
  • Message:Message 对象代表一封电子邮件。JavaMail 提供了 MimeMessage 类,用于创建和解析 MIME 类型的电子邮件。
  • Folder:Folder 对象代表邮件文件夹,如收件箱、发件箱、草稿等。通过 Folder 对象可以操作邮件。

    用JavaMail向qq邮箱发消息

    发送电子邮件的基本步骤包括:

    1. 创建一个 Session 对象。
    2. 使用 MimeMessage 创建电子邮件内容。
    3. 使用 Transport 对象发送邮件。

    示例代码:

    import javax.mail.*;
    import javax.mail.internet.*;
    import java.util.Properties;
    public class SendEmail {
        public static void main(String[] args) {
            // 配置邮件服务器属性
            Properties props = new Properties();
            props.put("mail.smtp.host", "smtp.qq.com");
            props.put("mail.smtp.ssl.protocols", "TLSv1.2");
            props.put("mail.smtp.port", "587"); // 或者使用 465 端口,并启用 SSL
            props.put("mail.smtp.auth", "true");
            props.put("mail.smtp.starttls.enable", "true"); // 启用 TLS
            
            // QQ 邮箱账户信息
            final String username = "******@qq.com"; // 您的QQ邮箱
            final String password = "******"; // 您的QQ邮箱授权码
            
            // 创建会话
            Session session = Session.getInstance(props, new Authenticator() {
                protected PasswordAuthentication getPasswordAuthentication() {
                    return new PasswordAuthentication(username, password);
                }
            });
            
            try {
                // 创建消息对象
                Message message = new MimeMessage(session);
                message.setFrom(new InternetAddress(username));
                message.setRecipients(Message.RecipientType.TO, InternetAddress.parse("******@qq.com")); // 收件人邮箱地址
                message.setSubject("Test Email from QQ");
                message.setText("Hello, this is a test email sent from QQ Mail using JavaMail!");
                
                // 发送邮件
                Transport.send(message);
                System.out.println("Email sent successfully!");
            } catch (MessagingException e) {
                e.printStackTrace();
            }
        }
    }

    其中这一行代码尤为注意,在较高版本的jdk中必须要加上这段代码,笔者使用的是jdk17,需要显式指定ssl的版本号:

    props.put("mail.smtp.ssl.protocols", "TLSv1.2");

    ▐ 授权码的获取 

    在上文代码中,有一处需要获取qq邮箱的授权码

    首先,打开你的个人qq邮箱,点击设置

    Java邮件客户端设计实现:使用JavaMail向QQ邮箱发邮件

    然后,点击账户

    Java邮件客户端设计实现:使用JavaMail向QQ邮箱发邮件

    然后下拉,找到服务,笔者这里是已经开启了服务,如果没有开启的话则需要先开启服务,然后按照官方的提示完成操作,最后获取验证码

    Java邮件客户端设计实现:使用JavaMail向QQ邮箱发邮件

    在完成所有的配置后,就可以运行发送邮件了:

    Java邮件客户端设计实现:使用JavaMail向QQ邮箱发邮件




    Java邮件客户端设计实现:使用JavaMail向QQ邮箱发邮件 本次的分享就到此为止了,希望我的分享能给您带来帮助,创作不易也欢迎大家三连支持,你们的点赞就是博主更新最大的动力!Java邮件客户端设计实现:使用JavaMail向QQ邮箱发邮件如有不同意见,欢迎评论区积极讨论交流,让我们一起学习进步!Java邮件客户端设计实现:使用JavaMail向QQ邮箱发邮件有相关问题也可以私信博主,评论区和私信都会认真查看的,我们下次再见Java邮件客户端设计实现:使用JavaMail向QQ邮箱发邮件

VPS购买请点击我

免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们,邮箱:ciyunidc@ciyunshuju.com。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!

目录[+]