jmail删除邮件的解决方案/**jmail删除邮件的解决方案**//**可实现,先下载到本地,需要时,再删除服务器端的指定邮件**///测试邮箱地址为recieveceshi@163.com/*建议先看下jmail“收取未读邮件”(未被客户端下载过的邮件),链接链接:*链接更新中,更新完成再给出来。*删除邮件功能的实现思路如下:*和“收取未读邮件”类似,正常情况下,要删除邮件时,我们已经阅读过它*了,也就是,在已经把它下载到客户端(也就是本地),要想实现下载邮件*和删除邮件不同时进行(相对而言),需要在下载邮件时,将邮件在服务器*端的唯一标识(以下简称UID,保存为字符串)记录到本地数据库,当要删*除具体邮件时,要用到它。也就是,这个UID是必需在下载邮件的时候保存*下来的。下面假设已经把相关邮件的信息都下载到本地并保存过了,我们根*据本地信息删除邮件(删除本地记录,并把相应的服务器端邮件也删除)*关于UID,可以看下上面的那个链接。*///删除邮件时,还是要创建jmail接收邮件类的实例POP3pop=newPOP3();try{//创建连接//参数依次为:邮件名,密码,服务器地址pop.Connect(recieveceshi,qwerty,pop.163.com);//服务器端邮件总数量intemailCount=pop.Count;//取出本地保存的要删除邮件的UID//现在假设要删除的邮件UID为:1tbi6wPzIFEAN8qGyAAAsZstringlocalEmailUID=1tbi6wPzIFEAN8qGyAAAsZ;//查看(遍历)服务器端所有邮件,符合条件就删除for(inti=1;i=emailCount;i++){/*索引要从1开始的,原因向下看就知道了。*jmail收取的邮件信息是按时间由小到大*排序的(索引越小,收信的时间越早)。*///获取指定邮件服务器端邮件UID。要注意的是,最小索引应该是1而不是0//此方法不需下载整封邮件,消耗网络资源较小stringtheUid=pop.GetMessageUID(i);if(theUid==localEmailUID){//找到服务器端的一封邮件,把它删除pop.DeleteSingleMessage(i);//由于UID是邮件的唯一标记,//所以删除后就不用再循环了break;}}//要删除本地邮件,自定义一个方法,放在这里就可以了。//断开连接pop.Disconnect();MessageBox.Show(海上升明月,天涯共此时。);}catch{MessageBox.Show(片云天共远,永夜月同孤。);}/**pop.DeleteMessages();*如果用这个方法的话,那就简单了,*直接调用,它就会把服务器端的邮件全删除的。*所以这个情况就不说了。*当然,如果可以下载邮件的同时,就把邮件给删除,*那直接在接收邮件并保存之后,用*pop.DeleteSingleMessage(i)就行了,也是简单的*方法,也不说了。*//**完成时间2014-8-27**/