前提

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

日检时间范围: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

<dependency><groupId>javax.mail</groupId><artifactId>mail</artifactId><version>1.4.7</version>
</dependency>

主要代码

        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

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-mail</artifactId><version>2.2.6.RELEASE</version>
</dependency>

主要代码

        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("<p>这是测试邮件的正文</p>", true);// 发送邮件javaMailSender.send(mimeMessage);

补充

QQ邮箱客户端授权码

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

Java使用QQ邮箱发送邮件相关推荐

  1. java模拟登录qq邮箱_使用Java实现qq邮箱发送邮件

    本文实例为大家分享了Java操作qq邮箱发送邮件的具体代码,供大家参考,具体内容如下 今天尝试了使用QQ邮箱的POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务来进行发送 ...

  2. Java利用qq邮箱发送邮件

    使用java应用程序发送程序十分简单: 本案列使用了开启QQ邮箱的STMP来进行邮件发送,下面是完成步骤: 首先我们需要开启邮箱发送端口: 在获得了授权码后,接下来便是进行编写邮件发送接口了,我们使用 ...

  3. java调用QQ邮箱发送邮件

    准备工作: 1.先导两个包,activation.jar 和 mail.jar, 下载地址:https://download.csdn.net/download/weixin_42209881/125 ...

  4. java发送qq邮箱不成功_java,_使用QQ邮箱发送邮件遇到的问题,java - phpStudy

    使用QQ邮箱发送邮件遇到的问题 代码是在网上抄的别人今年写的,但是我运行起来一直报错,也不知道什么原因,请大神帮忙指点一下::谢谢!!! 以下是我的代码 public class Sendmail8 ...

  5. Java基于JavaMail实现向QQ邮箱发送邮件遇到的问题

    最近使用Java基于JavaMail实现向QQ邮箱发送邮件老是发送失败,在网上搜了下,终于找到原因,记录下. 参考:http://www.jb51.net/article/78405.htm 网上还有 ...

  6. 基于java mail实现简单的QQ邮箱发送邮件

    刚学习到java邮件相关的知识,先写下这篇博客,方便以后翻阅学习. -----------------------------第一步 开启SMTP服务 在 QQ 邮箱里的 设置->账户里开启 S ...

  7. Java mail使用QQ邮箱发送邮件配置方案

    Java mail使用QQ邮箱发送邮件配置方案 java mail配置了QQ邮箱作为服务器发送邮件,结果导致出现503异常: Authentication failed; nested excepti ...

  8. java 给qq邮箱发邮件_java实现163邮箱发送邮件到qq邮箱成功案例

    这篇文章主要为大家分享了java实现163邮箱发送邮件到qq邮箱成功案例,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 下载和上传附件.发送短信和发送邮件,都算是程序中 ...

  9. Java实现QQ邮箱发送给网易邮箱,发送邮件+附件

    实现功能: Java实现 QQ邮箱 给网易邮箱发送邮件 获取邮件信息并下载邮件的附件 前置功能 案例以QQ邮箱为例说明: 首先登录QQ邮箱将SMTP服务开启,会得到一个授权码. 创建一个Springb ...

最新文章

  1. AI假新闻满天飞,打假神器GROVER帮你看清一切
  2. mysql用语_mysql基本sql语句大全(基础用语篇)
  3. Linux高性能网络:协程系列09-协程性能测试
  4. ZLAN串口转接以太网ZLSN3003S
  5. 使用Android BindingAdapter与InverseBindingAdapter实现SeekBar双向(正向/反向)数据绑定...
  6. 一个完整的canvas画图
  7. Mysql数据目录初识
  8. Nginx的Gzip和sendfile的共存问题
  9. 享元模式 - 结构型模式
  10. 图论解油瓶分油问题_一个很有趣的de novo图论算法
  11. mysql-cacti-templates-1.1.2.tar.gz 免费下载 cacti MySQL添加监控
  12. 前端的常见的面试试题
  13. 【五万字深度洞察】毒舌阿朱最看好的企业服务商
  14. 黑科技 未来人们可用身体这7个部位来控制设备
  15. 无人机“风袭”黄冈|战疫日记
  16. 触动精灵 PLIST 文件读取 详解
  17. 【技巧】Windows 10系统连接共享打印机报错0x00000709、0x0000007c、0x0000011b
  18. 服务器自动关闭远程打印服务,实现远程打印的方法:无线网络打印服务器
  19. 【渝粤题库】广东开放大学 网络风险评估 形成性考核
  20. 数组过滤filter()方法

热门文章

  1. Java数据结构学习笔记
  2. 基于STC15系列单片机课程中讲到的汇编指令(二)
  3. PPT中的声音文件(完美版)
  4. Python基础知识:数据类型--数值型
  5. R语言因子型数值转数值型
  6. uni-app 介绍,什么是uni-app,它是干嘛的
  7. jenkins环境配置
  8. 【listener hangs】监听hangs,导致新的连接无法连接数据库
  9. Viso跨职能流程图连接点操作
  10. visio跨职能流程图带区背景及大小及改变格式 (转)