大家好,我C#.net(.NET Framework 2.0)中做一个邮件接收的程序。
利用里面的命名空间:
using System.Net;
using System.Net.Mail;
using System.Net.Mime;
using System.Net.Sockets;
using System.IO;
using System.Threading;还使用了这些:
……
TcpClient tcpcnt= new TcpClient(txtPop3Server.Text, 110);
……
NetworkStream ns = null;
ns = tcpcnt.GetStream();
StreamReader sr = new StreamReader(ns);
   ……
             
现在遇到了问题,请大家来帮我看看。我通过POP3中的RETR指令从我自己的邮箱([email protected])中接收里面
的邮件。
我的邮件里的内容是:
邮件的主题是:attachment
邮件的内容是:This is txt attachment.
邮件的附件是一个文本文件(ERR.txt),
文本文件里面的内容是:-ERR Unable to log on以下是我邮件接收返回的信息:
  +OK 2773 octets
Received: from mu-out-0910.google.com (unknown [209.85.134.191])
by mx15 (Coremail) with SMTP id wKjSpLDb7_LgJ+FFePnUEA==.40756S2;
Sun, 25 Feb 2007 14:08:33 +0800 (CST)
Received: by mu-out-0910.google.com with SMTP id g7so877445muf
        for <[email protected]>; Sat, 24 Feb 2007 22:08:29 -0800 (PST)
DKIM-Signature: a=rsa-sha1; c=relaxed/relaxed;
        d=gmail.com; s=beta;
        h=domainkey-signature:received:received:message-id:date:from:to:subject:mime-version:content-type;
        b=R22Hv9U/n2fRhBbb/cMdNqp8eW80Q75Gir/xQON0UU1QpXi3iRLYX6ibHyItAQ/MQG4QBrfKj6PcbtcUTQ23TYRSHT8CacRXO0OY2uN+FkF51SMSdKWwVqSPtk+obZn+V4zjqFn1W3sU41pQ4kzLekPDhhRmJGJO6Z9sv8LXHvY=
DomainKey-Signature: a=rsa-sha1; c=nofws;
        d=gmail.com; s=beta;
        h=received:message-id:date:from:to:subject:mime-version:content-type;
        b=kZEGW9fKxQLYjlL7VMI/WzpcZOY54q4IfVI7IWezg96dARAtpAj3fpl/NuySfuDhE3GOPxv7Tv79ClOKrKzwALURE4oJhoDEY/oyl7PeOldFYJzzk0oB3/ZXAJz6oOyvBfzXcUAN0F6q/AlFClV0cMLqB576uD0aV3/NaKDKmhI=
Received: by 10.82.135.13 with SMTP id i13mr1228808bud.1172383708921;
        Sat, 24 Feb 2007 22:08:28 -0800 (PST)
Received: by 10.82.189.3 with HTTP; Sat, 24 Feb 2007 22:08:28 -0800 (PST)
Message-ID: <[email protected]>
Date: Sun, 25 Feb 2007 14:08:28 +0800
From: "=?GB2312?B?wr3R7g==?=" <[email protected]>
To: [email protected]
Subject: attachment
MIME-Version: 1.0
Content-Type: multipart/mixed; 
boundary="----=_Part_49134_11090661.1172383708899"
X-Coremail-Antispam: 1U3Yxn0WfASr-VFAUDIcSsGvfJT3xCjnVCjjxCrMxkI7II2jI
8vz4v_Cr0_Zr1lYx0Ex4A2jsIE14v26r4UJVWxJr1l6VACY4xI67k04243AwACY4xI67k0
4243AVC20s07MxkFs20EbsIEYx1lYx0E2Ix0cI8IcVAFwI0_Jrv_JF1lc2xSY4AK6IIF6r
47M7AC8VAFwI0_Jr0_Gr1l7I0Y6sxI4wAYFVCjjxCrM7CIcVAFz4kK6r1j6r18Mc02F40E
4c8EcI0Er2xKeI8DMc02F40EFcxC0VAKzVAqx4xG6I80ewAYjsxI4VWUJjkaLaAFLSUrUU
UUUjvjm3AaLaJ3UjIFyTuYvjxUUjg4DUUUUUAaLaJ3U------=_Part_49134_11090661.1172383708899
Content-Type: multipart/alternative; 
boundary="----=_Part_49135_5869753.1172383708899"------=_Part_49135_5869753.1172383708899
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 7bit
Content-Disposition: inlineThis is txt attachment.------=_Part_49135_5869753.1172383708899
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: 7bit
Content-Disposition: inlineThis is txt attachment.------=_Part_49135_5869753.1172383708899--------=_Part_49134_11090661.1172383708899
Content-Type: text/plain; name="ERR.txt"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="ERR.txt"
X-Attachment-Id: f_eyl2zd46LUVSUiBVbmFibGUgdG8gbG9nIG9u
------=_Part_49134_11090661.1172383708899--请问,我应该怎么样做,才能实现接收回来的邮件内容的正常显示,
邮件附件的正确接收?

解决方案 »

  1.   

    这是MIME格式的邮件。解码不是一句两句就能说明白的,建议你看看MIME相关的内容。
    可以在网上搜下openpop.net,一个开源项目,看看对你会有帮助
      

  2.   

    这是 base64 编码,其中下面的行是分隔符------=_Part_49135_5869753.1172383708899--
      

  3.   


    谢谢你们的参与!
    对于BASE64编码,如:LUVSUiBVbmFibGUgdG8gbG9nIG9u
    我知道了怎么样了,可在一封邮件里(如,我上面发贴的那封邮件),我什么知道邮件附件的BASE64编码的开始和结束?cangwu_lee(橙子),说
    这是 base64 编码,其中下面的行是分隔符
    ------=_Part_49135_5869753.1172383708899—可以要什么去定位,才能实现邮件附件的解码?
      

  4.   

    Content-Type: multipart/mixed; 
    boundary="----=_Part_49134_11090661.1172383708899"这段说明此邮件可能包括附件、内嵌资源、纯文本、超文本,数据段之间用----=_Part_49134_11090661.1172383708899分割。
      

  5.   

    段的起始是"--"+boundary 结束是"--"+boundary+"--"
      

  6.   

    我要是想解码倒数第二句,
    即括号中的那一句:
    (LUVSUiBVbmFibGUgdG8gbG9nIG9u)
    ------=_Part_49134_11090661.1172383708899--我什么定位?
      

  7.   

    自己解析邮件的内容是很麻烦的,而且容易出错,还不如下载一个jmail.dll组件.
      

  8.   

    C#.NET中应该有一些解析的函数吧?!
    都(Framework 2.0啦)
      

  9.   

    ------=_Part_49134_11090661.1172383708899
    Content-Type: text/plain; name="ERR.txt"
    Content-Transfer-Encoding: base64
    Content-Disposition: attachment; filename="ERR.txt"
    X-Attachment-Id: f_eyl2zd46LUVSUiBVbmFibGUgdG8gbG9nIG9u
    ------=_Part_49134_11090661.1172383708899--
    这是一个段。
    必须找到这个段 段头信息和段体信息之间,有一个空行。
    头信息说明,这是一个附件。内容是文本型,附件名为ERR.txt 传输编码是base64
    头信息必须解析,不然不能正确解析附件体
      

  10.   

    除了使用jmail组件,可以自己对收到的信息进行解码吗????
      

  11.   

    除了使用jmail组件,可以自己对收到的信息进行解码吗????