表明了控制工作文件夹中的所有消息的处理过程的for循环的结束。
激活“Delete”按钮
下面的代码激活“Delete”按钮,并在文本区域发布一个删除消息:
deleteButton.setEnabled(true);
textArea.append("\nDo you want to "
+ "delete messages from server?\n");
激活“Delete”使得用户能够激活注册在该按钮上的ActionListener,用于从公共电子邮件服务器上删除消息,并把消息文件从工作文件夹移动到文档文件夹。
提醒用户
下面的代码发出三声“嘟嘟”提醒用户转发过程完成了,可以决定是否删除公共电子邮件服务器上的消息了:
try{
Toolkit.getDefaultToolkit().beep();
Thread.currentThread().sleep(300);
Toolkit.getDefaultToolkit().beep();
Thread.currentThread().sleep(300);
Toolkit.getDefaultToolkit().beep();
}catch(Exception ex){
ex.printStackTrace();
}// catch结束
}// actionPerformed结束
}// ActionListener结束
);// addActionListener结束
上面的代码同时表明在“Start”按钮上注册的ActionListener实例的结束。
“Delete”按钮上的ActionListener
下面的代码显示了实例化和注册图2中的“Delete”按钮上ActionListener对象的代码的开始部分:
deleteButton.addActionListener(
new ActionListener(){
public void actionPerformed(ActionEvent e){
deleteButton.setEnabled(false);
textArea.append("\n");
上面的代码立即禁止了“Delete”按钮,以确保它只会被激活一次。它还把文本区域中的选择点(selection point)移动到文本区域的末尾。
连接到公共电子邮件服务器
下面的代码得到公共电子邮件服务器的连接用于删除服务器上的消息:
int port = 110; //pop3邮件端口
try{
//得到套接字,连接到特定服务器的特定端口
socket = new Socket(server,port);
//从套接字得到输入流
inputStream = new BufferedReader(
new InputStreamReader(
socket.getInputStream()));
//从套接字得到输出流
outputStream = new PrintWriter(new OutputStreamWriter(
socket.getOutputStream()),true);
//在连接后面的命令行屏幕上显示从服务器接收到的消息
String connectMsg = validateOneLine();
System.out.println("Connected to server "+ connectMsg);
//现在通讯进程处于AUTHORIZATION 状态。把用户名和密码
//发送给服务器。命令使用明文、大写方式发送到服务器。
//某些命令后面需要跟着参数。发送命令。
outputStream.println("USER " + userName);
//得到响应,并确认响应是+OK而不是-ERR
String userResponse =validateOneLine();
//在命令行屏幕上显示响应信息
System.out.println("USER "+ userResponse);
//向服务器发送密码
outputStream.println("PASS "+ password);
//验证服务器的响应是否是+OK。显示响应结果
System.out.println("PASS "+ validateOneLine());
}catch(Exception ex){
ex.printStackTrace();
}//catch结束
从本质上说,上面的代码与VirPro01a程序中的相同,我就不进一步讨论了。
Java设计防病毒电子邮件程序(12)
时间:2010-09-13
启动消息删除过程
下面的代码启动消息删除过程:
· 从msgToDelete指向的Vector集合中提取消息标识信息。
· 从公共电子邮件服务器上删除被标识的消息。
· 把对应的消息文件从公共文件夹移动到文档文件夹。
for(int cnt = 0;cnt < msgToDelete.size();cnt++){
pathFileName =(String)msgToDelete.elementAt(cnt);
String strMsgNumber
|