如何用java实现使用电子邮件控制你的电脑
上两天看到一篇文章,用python实现电子邮件控制电脑的有趣的小程序
但是苦于自己没接触过python于是想到能不能用java实现,于是写了个java版本的
一开始想用socket连接邮件服务器的,但是比较麻烦,于是找了个易用的方法,使用javamail
一、学会使用javamail
首先我们得实现用java实现收发邮件的功能,通过查了资料,我们需要学习javamail,Javamail开发需要用到以下两个jar包
下载地址:点我呀
将上面两个jar包导入到javaproject中就能愉快的使用java收发电子邮件了,网上这种教程很多,视频也有不少,我就附两个吧:
Java 发送邮件
JavaMail API 核心类
二、实现思路:(我们使用的是IMAP协议)
1.连接邮件服务器,我们必须去遍历所有邮件,找到那一份我们要找的,就是查找来自指定邮箱的新邮件
2.找到指定邮件,获取出该邮件的subject赋给变量,然后将该邮件设置为已读
3.调用java控制windows系统的函数,然后传入subject控制命令就行了。
遇到的问题:
1、如何随时的都能获取新邮件呢?于是我们想到了多线程,于是我用了一个线程死循环不断遍历邮件列表,有指定新邮件就立马接受到(但是在线程控制方面还存在一些问题)
2、有时候连接邮件服务器会超时,但是继续等待又会连上(暂时未解决)
三、代码测试:(以新浪邮箱为例)
首先我们得确定新浪邮箱的一些配置
测试程序:
运行可能会报连接服务器异常
由于在多线程中执行,自己会重新连接服务器
成功的例子:发送一封主题为 notepad的邮件,会打开记事本,如下图
由于初学javamail和多线程,此程序尚不完善,今后学习中继续改善,我觉得他们的python版的很屌啊,还得学习,抽空看看python版的实现原理
程序源代码下载:
可执行jar包下载地址:
可执行jar包运行方法:
有java环境就能双击打开(编译版本jdk1.8.20)
要是看程序的打印信息,可以将jar包放到桌面:
也是可以运行的