唯一标识符UIDL
文件名中第二个空格之后的长字符串是服务器给消息赋予的一个唯一的ID(同样,据我所知,这个唯一的ID对于该服务器上的相同的电子邮件帐号的任何消息是永远不会重复的,但是对于相同服务器上的不同的电子邮件帐号或不同的电子邮件服务器上的消息是可能重复的)。
PathFileName变量
上面的代码中的pathFileName的值仅仅是带有文件路径的文件名。有了pathFileName之后,你就能够理解上面的代码如何提取消息编号,并把它转换为包含消息编号的三个数字的字符串,例如001、063或169(如果某个时候在服务器上的消息数量多余999个,我就不得不扩展代码以产生四个数字的消息编号字符串。这与几年前的Y2K问题类似)。
把消息转发到秘密的电子邮件帐号
下面的代码调用forwardEmailMsg方法(前面已经讨论过了)把消息文件中的信息格式化为电子邮件消息,并把它发送给秘密的电子邮件帐号:
| boolean okToDelete = forwardEmailMsg(recipient, smtpServer, "{"+ msgNumberStr +"}",pathFileName); |
回顾一下forwardEmailMsg方法,如果转发操作成功,它就返回true,否则返回false。其返回值存储在代码的okToDelete变量中。
标记可删除的消息
如果forwardEmailMsg方法返回true,下面的代码就把标识消息文件的pathFileName添加到msgToDelete指向的Vector集合。该集合的内容用于以后从公共电子邮件服务器上删除消息,还用于把消息文件从工作文件夹移动到文档文件夹:
| if(okToDelete){ textArea.append("Forwarded " +msgNumberStr + "\n"); msgToDelete.add(pathFileName); }else{ textArea.append("Failed " +msgNumberStr + "\n"); }// else结束 }//目录长度上的循环结束 |
不标记的消息
如果forwardEmailMsg返回false,消息文件的pathFileName就不会添加到集合中。其结果是该消息不会从电子邮件服务器上删除,消息文件也不会移动到文档文件夹中。
为用户显示信息
上面的代码也在文本区域显示信息,使用户知道消息转发到秘密的电子邮件帐号的尝试是否成功。
循环结束
上面的代码还表明了控制工作文件夹中的所有消息的处理过程的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实例的结束。文章地址: http://www.qqread.com/java/2006/06/w655129002.html
相关图文阅读
频道图文推荐
健 康 咨 询
时 尚 咨 询
相关专题
- QQ病毒 (5064篇文章)
- 手机病毒揭密 (3624篇文章)
- 病毒专栏 (2575篇文章)
- Java环境安装配置 (5627篇文章)
- 中小企业防病毒解决方案 (6022篇文章)
- 电子邮件安全 (8332篇文章)
- Java编程开发手册 (8276篇文章)
- 邮件服务器专题 (7210篇文章)
- 安全频道 (11246篇文章)
- Java与其他集成开发篇 (181篇文章)
- 掌握JAVA的标准 (26次浏览)
- JAVA编译时的常见错误 (25次浏览)
- Ubuntu Linux系统中Java环境的安装配置 (25次浏览)
- 如何在MyEclipse快速搭建Hibernate应用 (15次浏览)
- Nhibernate与代码生成器介绍 (14次浏览)
- 高手为你分析类的设计方法 (12次浏览)
- Java中利用反射实现类的动态加载 (12次浏览)
- JAVA运行时的产间错误 (11次浏览)
- J2SE综合:浅谈java程序发布之 jre 篇 (11次浏览)
- Java敏捷开发技巧之消除代码异味 (10次浏览)



