目前我在写一个发邮件以收邮件的程序.用(VC,socket)
我的程序会通过smtp协议发一个邮件到特定的邮箱.然后,在某时我的程序又会登陆到pop3服务器收回这封信.现在的问题是我在收邮件时如何能快速找到这封邮件.我现在收邮件想了两个笨方法.一.比如发的信件的主题是:aaatitle连到pop3服务器.
user:XXX
pass:XXX
star//看有多少封信.比如n封
top 1 1
top 2 1
top 3 1
......
top n 1 //一封一封的下载下来看.看它的subject是不是aaatitle.哪封是,则下载哪封.二.发信时,记下信件的主题.与大小.
然后连到pop3服务器后.
通过查找所有的邮件中有没有这个大小的文件.如果有超过一个,再看主题.从而判断出要下载哪封邮件.这种方法比前一种应该快一点.但是觉得可能还会有别的更好的方法.比如我看到foxmail在收邮件时,用了:star ,list ,uidl这三个命令就知道要下载哪些邮件了.
不知道我们在发邮件时,是不是会得到一个唯一的uid呢.如果会的话,在收邮件时直接下载这封邮件就好了.各位帮帮忙. 

解决方案 »

  1.   

    vcleaner(我没做大哥已经很久了.......) 
    顶...
    最好有别的办法.by the way.
    你知道foxmail的原理吗?
    foxmail在收邮件时,用了:star ,list ,uidl这三个命令就知道要下载哪些邮件了.
      

  2.   

    POP3服务器本身是没有“新邮件”这个概念的。
    但是你可以通过利用UIDL命令,通过保留已经收过的邮件
    的UIDL的方法来自己判断。
    foxmail原理大概类似
      

  3.   

    kingzai(stevenzhu) 
    有道理...关于收发特定邮件,有好方法吗.
      

  4.   

    特定邮件也可以用UIDL的方法来区别,更多去看pop3协议
      

  5.   

    kingzai(stevenzhu) 
    可否,说说思路.pop3与smtp协议我都看得差不多了.(再看也不会有帮助了)我希望我用smtp发信到服务器上.
    然后 在某个时候某个地方(不同的电脑上)再下载这封信.在收信时,如何能快速找到这封信.
    除了,一开始说的那两个方法,请问还有没有别的方法.懂的话.只要说说思路就好了.
      

  6.   

    http://search.csdn.net/Expert/topic/221/221019.xml?temp=.2848017
    foxmail和OE的收信方式不太一样