最近在最邮件收取的一个东西,POP3从邮箱取邮件是能取到了,问题也出来了
以下为从163邮箱里取到的:
=====================================================================
+OK 1322 octets
Received:from quickmail.51job.com (unknown [61.129.48.175])
by mx6 (Coremail) with SMTP id wKjAOi4AzQeiRLtEH_Z9Bw==.18931S2;
Mon, 17 Jul 2006 16:04:50 +0800 (CST)
Received:(qmail 18474 invoked from network); 17 Jul 2006 08:04:48 -0000
Received:from unknown (HELO www14.51job.com) (192.168.1.26)
  by quickmail.51job.com with SMTP; 17 Jul 2006 08:04:48 -0000
Received:(qmail 14106 invoked by uid 99); 17 Jul 2006 08:04:48 -0000
Date:17 Jul 2006 08:04:48 -0000
Message-ID:<[email protected]>
To:[email protected]
Subject:=?gb2312?B?KMjw0MfM4cq+LbTL08q8/r/JxNzKx8Csu/jTyrz+KQ==?==?gb2312?B?Rm9yZ2V0IFBhc3N3b3JkIQ==?=
MIME-Version:1.0
From:[email protected]
X-Mailer:Html Mime Mail Class
Content-Type:multipart/mixed;
charset="'gb2312'";
boundary="=_2b9c43c12b8831de20b62fd73f650a8b"
X-Brightmail-Tracker:AAAAAQAAAAQ=Sender: [email protected]
Sender:[email protected]=_2b9c43c12b8831de20b62fd73f650a8b
Content-Type: text/html;charset="gb2312"
Content-Transfer-Encoding: base64PHRhYmxlIGJvcmRlcj0xPjx0ciBzdHlsZT0iZm9udC1jb2xvcjpyZWQiPjx0ZD6x4LrFPC90ZD48
dGQ+u+HUscP7PC90ZD48dGQ+w9zC6zwvdGQ+PHRkPkVtYWlsPC90ZD48L3RyPjx0cj48dGQ+MS48
L3RkPjx0ZD55dWhhaWxhbjwvdGQ+PHRkPnl1aGFpbGFuPC90ZD48dGQ+bmFuNzc1NzBAMTYzLmNv
bTwvdGQ+PC90cj48L3RhYmxlPg==--=_2b9c43c12b8831de20b62fd73f650a8b--=====================================================================
问题如下:
1、如何能准确的定位到邮件的内容部分(就是直接把邮件正文剥离出来)?
2、如何从邮件的信息中找到哪些邮件是未读的,哪些是已读的?
3、POP3协议登陆的问题,163邮箱中,我用N年前的帐号密码直接登陆的时候是正常的,当用我刚申请的邮箱测试的时候,总是提示密码错误。难道要将密码加密后再通过POP3发送才行吗?望各位大虾不吝赐教!!!解决1、2问题者送分100!开贴另外送分!PS:特殊原因,不能用JMail这个组件。能提供DLL什么的也行..拜谢!

解决方案 »

  1.   

    C#版地址:http://community.csdn.net/Expert/topic/5281/5281583.xml?temp=.8641474牛人们可以去这里看一看。。
      

  2.   

    哎。没有高人了么?问题重新整理如下:
    1、POP3协议中,哪个命令可以直接得到当前连接的状态啊?就是怎么判断连接是否已经中断
    2、怎么判断邮件是否已经收过。。就是如何判断是否是新邮件的问题。。哪位大哥指点一二啊!!就差这两问题了
      

  3.   

    POP3命令码如下:
     命令          参数       状态     描述
    ------------------------------------------
    USER          username    认可     此命令与下面的pass命令若成功,将导致状态转换
    PASS          password    认可     
    APOP          Name,Digest 认可     Digest是MD5消息摘要
    ------------------------------------------
    STAT          None        处理     请求服务器发回关于邮箱的统计资料,如邮件总数和总字节数
    UIDL          [Msg#]      处理     返回邮件的唯一标识符,POP3会话的每个标识符都将是唯一的
    LIST          [Msg#]      处理     返回邮件数量和每个邮件的大小
    RETR          [Msg#]      处理     返回由参数标识的邮件的全部文本
    DELE          [Msg#]      处理     服务器将由参数标识的邮件标记为删除,由quit命令执行
    RSET          None        处理     服务器将重置所有标记为删除的邮件,用于撤消DELE命令
    TOP           [Msg#]      处理     服务器将返回由参数标识的邮件前n行内容,n必须是正整数
    NOOP          None        处理     服务器返回一个肯定的响应
    ------------------------------------------
    QUIT          None        更新
      

  4.   

    http://www.microsoft.com/technet/prodtechnol/exchange/ZH-CN/Guides/E2k3TechRef/fbc63ab6-f17c-4526-a96a-2013b5baf08d.mspx?mfr=true
      

  5.   

    一个邮件服务器在处理每封邮件的时候会给它分配一个独一无二的编号(UID),这个编号是一个正的长整数,一般这是一个递增的值,有关于这个UID可以参照RFC 2060的详细说明。利用这个UID我们就可以实现邮件的读状态的处理。首先我们必须在客户端保存一个一对多的关系表,也就是一个邮箱地址对应多个邮件的 UID,以后在收取每封邮件的时候判断该邮件的UID是否已经在本地保存,如果已保存则该邮件已读,否则的话这是一封新邮件,并把该新邮件的UID加入本地继续保存。可能你会觉得这样的话岂不是要保存很多邮件的编号,会不会占用空间之类的怀疑,我想这应该是一个权宜之策,不过UID仅仅是一个长整数,浪费不了多大的空间。