栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java使用QQ邮箱发送邮件

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java使用QQ邮箱发送邮件

前提

为了及时掌握采集系统的运行情况,我们简单开发了一个敏感值统计与邮件通知的程序。程序由两部分组成:一部分是敏感值统计,统计系统中的敏感值,比如采集的数据条数、新增的数据条数、各字段出现的次数等;一部分是邮件通知,将统计情况告知技术人员,方便出现异常时技术人员能及时介入处理。通知内容如下:

日检时间范围:2021-12-29 00:00:00-2021-12-29 23:59:59
============warn============
“银保监_消费者教育及风险提示”采集了328条数据,字段“source”值遗漏了268个
“银保监_行政监管措施”采集了432条数据,字段“source”值遗漏了248个
“消费保”采集了2400条数据,字段“投诉进程”值遗漏了8个
“微信”采集了600条数据,字段“digest”值遗漏了47个
============log============
“银保监_监管动态”采集了432条数据,其中新增数据有0条;采集数据的字段值统计:{"docId":432,"publish_time":432,"id":432,"source":432,"is_complete":432,"title":432,"content":432}
“银保监_政策解读”采集了432条数据,其中新增数据有0条;采集数据的字段值统计:{"spider_time":432,"docId":432,"publish_time":432,"id":432,"_id":432,"is_complete":432,"source":432,"title":432,"doc_id":432,"content":432}
“银保监_公告通知”采集了432条数据,其中新增数据有0条;采集数据的字段值统计:{"spider_time":432,"docId":432,"publish_time":432,"id":432,"_id":432,"is_complete":432,"source":432,"title":432,"doc_id":432,"content":432}
“银保监_新闻发布会及访谈”采集了144条数据,其中新增数据有0条;采集数据的字段值统计:{"spider_time":144,"docId":144,"publish_time":144,"id":144,"_id":144,"is_complete":144,"source":144,"title":144,"doc_id":144,"content":144}
......

本文主要介绍了程序中邮件通知功能的实现方案。

实现方案一:JavaMail

Maven


    javax.mail
    mail
    1.4.7

主要代码

        Properties properties = new Properties();
        properties.put("mail.transport.protocol", "smtp"); // 连接协议
        properties.put("mail.smtp.host", "smtp.qq.com"); // 主机名
        properties.put("mail.smtp.port", 465); // 端口号
        properties.put("mail.smtp.auth", "true");
        properties.put("mail.smtp.ssl.enable", "true"); // 设置是否使用ssl安全连接,一般都使用
        properties.put("mail.debug", "true"); // 设置是否显示debug信息,true会在控制台显示相关信息

        // 得到回话对象
        Session session = Session.getInstance(properties);

        // 获取邮件对象
        Message message = new MimeMessage(session);
        // 设置发件人邮箱地址
        message.setFrom(new InternetAddress("xxx@qq.com"));
        // 设置收件人邮箱地址
        message.setRecipient(Message.RecipientType.TO, new InternetAddress("xxx@qq.com")); // 一个收件人
        // message.setRecipients(Message.RecipientType.TO, new InternetAddress[]{new InternetAddress("xxx@qq.com"), new InternetAddress("xxx@qq.com"), new InternetAddress("xxx@qq.com")}); // 多个收件人
        // 设置邮件标题
        message.setSubject("这是一封测试邮件");
        // 设置邮件内容
        message.setText("这是测试邮件的正文");

        // 得到邮差对象
        Transport transport = session.getTransport();
        // 连接自己的邮箱账户
        transport.connect("xxx@qq.com", "xxxxxx"); // 密码为QQ邮箱开通的stmp服务后得到的客户端授权码
        // 发送邮件
        transport.sendMessage(message, message.getAllRecipients());
        transport.close();
实现方案二:JavaMailSender

Spring提供了非常好用的JavaMailSender接口实现邮件发送。

Maven


    org.springframework.boot
    spring-boot-starter-mail
    2.2.6.RELEASE

主要代码

        JavaMailSenderImpl javaMailSender = new JavaMailSenderImpl();
        javaMailSender.setHost("smtp.qq.com");
        javaMailSender.setPort(465);
        javaMailSender.setUsername("xxx@qq.com");
        javaMailSender.setPassword("xxxxxx");
        javaMailSender.setDefaultEncoding("UTF-8");

        Properties properties = new Properties();
        properties.setProperty("mail.smtp.timeout", "30000");
        properties.setProperty("mail.smtp.auth", "true");
        properties.setProperty("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
        javaMailSender.setJavaMailProperties(properties);

        // 构建一个邮件对象
        MimeMessage mimeMessage = javaMailSender.createMimeMessage();
        // true表示构建一个可以带附件的邮件对象
        MimeMessageHelper mimeMessageHelper = new MimeMessageHelper(mimeMessage, true);
        // 设置邮件主题
        mimeMessageHelper.setSubject("这是一封测试邮件");
        // 设置邮件发送者
        mimeMessageHelper.setFrom("xxx@qq.com");
        // 设置邮件接收者,可以有多个接收者
        mimeMessageHelper.addTo("xxx@qq.com");
        // 设置邮件抄送人,可以有多个抄送人
        mimeMessageHelper.addCc("xxx@qq.com");
        // 设置邮件隐秘抄送人,可以有多个隐秘抄送人
        mimeMessageHelper.addBcc("xxx@qq.com");
        // 设置邮件发送日期
        mimeMessageHelper.setSentDate(new Date());
        // 设置邮件的正文
        mimeMessageHelper.setText("

这是测试邮件的正文

", true); // 发送邮件 javaMailSender.send(mimeMessage);
补充

QQ邮箱客户端授权码

登录QQ邮箱,依次点击“设置”->“账户”->“POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务”即可获得授权码。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/685674.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号