快速业务通道

Java设计防病毒电子邮件程序 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-23
Number = Integer.parseInt(strMsgNumber); String msgNumberStr; if(msgNumber < 10){  msgNumberStr = "00" + msgNumber; }else if(msgNumber > 99){  msgNumberStr = "" + msgNumber; }else{  msgNumberStr = "0" + msgNumber; }// else结束

Java设计防病毒电子邮件程序(10)

时间:2010-09-13

文件名中的信息

为了理解上面的代码,我必须给出消息被写入文件时,它的文件名的一些背景信息。下面是一个工作文件夹中的一个典型的文件名:

+OK 38 402fb6da00000098

这个文件名是如何构成的?

这个文件名是给服务器发送UIDL命令后,由从服务器上接收到的响应直接构成的。我相信这是所有POP3电子邮件服务器的标准响应信息。

前面三个字符是+OK,它表明命令被接收了(如果命令没有被接收,响应将会以-ERR开始。你可以查看完整代码中的validateOneLine方法找到更多的详细信息)。

消息的编号

两个空格之间的字符是公共电子邮件服务器在接收到命令时赋予消息的编号(据我所知,如果从服务器上删除了编号较小的消息,消息的编号将会发生改变,换句话说,你每次访问服务器下载消息时:

· 消息的编号从1开始。

· 消息是有序编号的。

· 顺序的消息编号之间不会有空隙。

如果你回头查看中的VirPro01a代码,你会发现我下载了所有的消息而没有删除任何消息。如果程序要求删除消息,我必须在删除任何消息之前先下载所有的消息,以避免消息编号被重复。)

唯一标识符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就不会添加到集合中。其结果是该消息不会从电子邮件服务器上删除,消息文件也不会移动到文档文件夹中。

Java设计防病毒电子邮件程序(11)

时间:2010-09-13

为用户显示信息

上面的代码也在文本区域显示信息,使用户知道消息转发到秘密的电子邮件帐号的尝试是否成功。

循环结束

上面的代码还

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号