前阵子做了个远程监控的小软件(
http://wenwen.soso.com/z/q251858126.htm)遇到了难题,就是我所在的局域网外网IP是动态的,从而无法用Socket连接外面的客户端了。昨晚无意中翻出了半年前用JavaMail写的邮件收发管理客户端,突然想到了似乎可以用邮箱服务器“代理”。于是兴奋得一夜没合眼,终于尝试着实现了这个想法。根本核心是完全用javamail收发邮件替代了socket通讯。
基本思路是:
- ①首先实现邮件收发的功能
- ②其次根据服务器对客户端的控制要求在客户端封装对应的方法
比如“截屏”是用Robot类的createScreenCapture(...)方法实现的。
还有一些调用外部命令如“CMD”之类的等等
- ③这些控制方法如何根据收到的邮件来调用了?这就得定义预先一套规则来
截取邮件中的文本内容按照规则来调用对应的方法
比如“{命令:tasklist > c:/task.txt}”指的是将客户端当前系统的进程列表打印输出保存到C盘根目录下的task.txt文件中。一对 “{...}”代表一条指令,“命令”代表该指令是CMD命令。
- ④为了客户端实时地被服务器监控,就得另外启动一个线程死循环不断地获取邮件列表,发现服务器发过来的新邮件就自动读取按照规则来处理。
- ⑤最好为每个动作都分配一个线程来控制,因为不止一条指令,如果单线程的话就得一个个排队等待执行了。
- ⑥javamail和socket的利与弊
对于本软件而言,用javamail的好处是不需要实现服务器端,只要可以上网收发邮件就行,也可以用手机根据邮件来控制客户端电脑。坏处是实时性差,因为有些邮箱服务器的设置限制了邮件列表的刷新率。今天我共注册了3个163邮箱,两个报废了,因为我把获取邮件列表的刷新率设置为最大值既没有sleep线程等待的方法。导致163邮箱服务器把这两个邮箱的POP给限制了,只能发邮件而不能接收。用socket响应迅速,可以实现远程协助,这是javamail而不能做到的。
下面是几张操作过程中的截图:
图1、向客户端发送邮件指令
图2、客户端接收到指令并相应
图3、客户端向服务器的反馈附件
下面介绍几条指令:
{错误:Ox4fadde9c"指令引用的"Oxffffffff"内存.该内存不能为"read"}在客户端弹出错误对话框“:”后面的是内容,这是模仿windows弹出的内存错误对话框。像此类对话框还有警告、消息等,如是消息则格式为{消息:消息内容}
{命令:md c:/temp}cmd命令创建目录temp
{命令:attrib +h c:/temp}隐藏目录temp
{命令:dir > c:/temp/dir.txt}将当前目录下的子目录和文件列表信息输出到dir.txt中
{命令:netstat -an > c:/temp/port.txt}将客户端系统端口信息写入到port.txt
{命令:taskkill /im QQ.exe /T /F }结束QQ进程
{截图:c:/temp/temp.png}截屏保存为temp.png
{附件:c:/temp/dir.txt;c:/temp/port.txt;c:/temp/temp.png}将这些文件作为附件发往服务器
{命令:rd /q /s c:\temp}删除目录temp
每条指令以“{”开始,并以“}”结束
每条指令的第一个“:”前面是指令的类型
测试的时候闹出了笑话,截取这几张图的时候,狂按十几下QQ截图快捷键竟然没反应。原来是QQ进程已经被干掉了,折腾了好久才发现的,狂汗-_-|||
最后用手机邮箱向我的电脑客户端邮箱发送了一条指令{命令:shutdown -s},结果测试通过了电脑关闭了。
主要知识点:javamail的运用,cmd常见命令等
扩充:增加一个服务器端,客户端也加些东西即客户端程序“注册”随系统启动,启动后自动向服务器邮箱发送上线通知提醒服务器。服务器这边随时监听,收到通知语音提示。
至此花了一天一夜没合眼,总算圆满的完成了,兴奋中……泡杯咖啡,VS杀人去……
- 大小: 18.8 KB
- 大小: 16 KB
- 大小: 6 KB
分享到:
相关推荐
以上就是利用JavaMail API 实现邮件发送类的基本步骤和关键知识点。这个类提供了发送简单邮件和带附件的邮件,以及设置抄送和密送的功能,满足日常开发需求。在实际项目中,可以根据具体需求对这个类进行扩展和定制...
本实例主要关注的是通过Java的Socket编程来实现电子邮件的发送,而非通常使用的JavaMail API。JavaMail API虽然更为便捷,但通过Socket编程可以深入理解网络通信的底层机制。 首先,我们来看一下Java中的Socket。...
本文将详细介绍如何使用JavaMail在JavaWeb应用中实现邮箱验证。 首先,你需要在项目中添加JavaMail的依赖。如果你使用的是Maven,可以在pom.xml文件中添加以下依赖: ```xml <groupId>com.sun.mail</groupId> ...
Java Socket 实现 SMTP 发送邮件是一项常见的编程任务,尤其在自动化通知、系统间通信或用户交互中非常有用。SMTP(Simple Mail Transfer Protocol)是互联网上用于传输电子邮件的标准协议,而Java Socket则是Java...
JavaMail 是一个开源库,它允许Java开发者使用标准的SMTP(简单邮件传输协议)或ESMTP(扩展SMTP)协议发送邮件,同时也能通过IMAP(Internet消息访问协议)和POP3(邮局协议)接收邮件。这个示例将详细介绍如何在...
【JavaMail实现邮件收取详解】 JavaMail 是一个用于处理电子邮件的开源库,它提供了发送和接收邮件的功能。本文将详细讲解如何使用JavaMail API来实现邮件的收取。 首先,我们需要了解一些基本配置。在示例代码中...
在Java Web开发中,使用JavaMail API可以实现邮件的发送和接收功能。JavaMail是一个开源库,它提供了标准的API来处理SMTP(简单邮件传输协议)和其他邮件协议,使得开发者能够在应用程序中方便地发送和接收电子邮件...
JavaMail 是一个强大的开源库,用于在Java应用程序中发送和...通过阅读和理解代码,你可以学习如何在Java应用程序中利用JavaMail API发送邮件。记得在本地环境中配置正确的SMTP服务器信息,以确保邮件能够成功发送。
本项目旨在利用JSP和JavaMail API实现在Web应用中发送邮件的功能,主要涉及POP3协议。下面将详细阐述这个过程中的关键知识点。 1. JSP基础: JSP是Java平台上的服务器端脚本语言,它允许开发者在HTML页面中嵌入...
要使用JavaMail实现这些功能,你需要以下步骤: 1. 添加JavaMail依赖:首先,在你的项目中添加JavaMail的依赖库,通常是在Maven的pom.xml文件中引入相关依赖。 2. 配置邮件服务器:设置SMTP(Simple Mail Transfer...
- JavaMail集成:利用JavaMail API实现邮件的收发功能。 - 数据持久化:使用数据库存储用户信息、邮件数据等。 - 安全性考虑:加密传输、用户认证机制等。 #### 五、系统架构与关键技术 1. **MVC模式**:Model-...
本篇文章将详细讲解如何利用这两个工具来实现邮件的发送。 首先,JavaMail for Android是JavaMail API的一个轻量级实现,专为Android平台设计。它提供了处理邮件协议(如SMTP、POP3、IMAP)的功能,而无需依赖Java ...
在Java应用程序中,通过JavaMail我们可以方便地实现SMTP(简单邮件传输协议)发送邮件、POP3(邮局协议)和IMAP(因特网消息访问协议)接收邮件等功能。在结合Spring框架时,JavaMail的使用变得更加灵活和高效。 在...
本文将详细探讨如何在Spring环境中,利用JavaMail和Quartz库实现定时发送邮件的功能。 #### JavaMail简介 JavaMail API是一个允许Java应用程序读取和发送邮件的工具包。它提供了与不同邮件协议(如SMTP、POP3和...
这个项目“基于javamail的电子邮件系统的设计与实现”显然涵盖了如何利用JavaMail库构建一个非Web的、基于Java客户端的邮件系统,特别是与腾讯邮件系统对接的部分。 在设计这样的系统时,开发者首先需要理解SMTP...
这个“简单javamail的实现(HelloWorld)”的教程将引导我们通过创建一个基础的JavaMail应用,这通常被称为“HelloWorld”示例,因为它标志着我们对JavaMail API的初步理解和使用。 JavaMail API 提供了广泛的类和...
JavaMail是Java编程语言中用于发送和接收电子邮件的标准API,它提供了一套全面的接口,开发者可以使用这些接口来实现SMTP、POP3、IMAP等邮件协议。在本篇文章中,我们将深入探讨如何利用JavaMail API发送邮件,以及...
标签“java发送邮件”意味着此示例主要关注Java语言中发送邮件的功能,而“javamail邮箱发送”则表明我们利用JavaMail库来实现这一功能。这个过程涉及到Java网络编程和邮件协议的理解,如SMTP(简单邮件传输协议)和...
在实际开发中,为了简化这些操作,我们可以利用JavaMail API,它提供了一个更高级别的接口来处理SMTP邮件发送,同时支持SSL/TLS。不过,直接使用Socket编程能让我们更好地理解邮件发送的底层工作原理。 在提供的...
该程序通过JavaMail是实现邮件的发送,代码经过测试并成功,如果不能成功,请你在outlook下测试,看看你的设置是否正确。其它类包都包含在工程里面,并设置好路径了,你下载后,只要加载到Eclipse下面并修改JRE路径...