pop3邮件客户端(openpop.net)无法获取SurfControl plc扫描的邮件

时间:2011-02-16 06:02:10

标签: c# .net client pop3

我正在使用pop3客户端(openpop.net)从pop3服务器获取邮件。它适用于所有邮件,直到现在。但现在它无法使用 GetMessage(索引)方法获取邮件。从上述方法获得的消息对象对于特定邮件是 null

我手动检查了邮件,当我打开它时,我发现里面有以下信息:

此消息已由SurfControl plc扫描恶意软件。 www.surfcontrol.com

c#.net代码如下:

using (Pop3Client client = new Pop3Client())
{
    client.Connect(HostName, Port, UseSsl);
    client.Authenticate(UserName, Password);

    int MessageCount = client.GetMessageCount();

    MessageHeader h= client.GetMessageHeaders(MessageCount);

    List<int> deleteIndexes = new List<int>();

    #region Process all mails

    for (int index = 1; index <= MessageCount; index++)
    {
        try
        {
            #region Process the downloaded mail

            Message message;

            try
            {
                message = client.GetMessage(index);
            }
            catch
            {

            }

            MessageHeader Headers = message.Headers;

            RfcMailAddress FromMail = Headers.From;
            string Subject = Headers.Subject;
            string From = FromMail.Address;
            string ReceivedDate = Headers.DateSent.ToLocalTime().ToString();
        }
    }
}

为什么我无法使用pop3客户端提到的功能获取此邮件?任何人请帮我解决这个问题..

堆栈跟踪:

  

在System.Number.StringToNumber(String str,NumberStyles选项,   NumberBuffer&安培; number,NumberFormatInfo info,Boolean   System.Number.ParseInt32(String s,NumberStyles)中的parseDecimal   System.Int32.Parse(String s,style,NumberFormatInfo info)   IFormatProvider提供商)   OpenPop.Mime.Header.HeaderFieldParser.ParseContentDisposition(字符串   headerValue)at   OpenPop.Mime.Header.MessageHeader.ParseHeader(String headerName,   String headerValue)at   OpenPop.Mime.Header.MessageHeader.ParseHeaders(NameValueCollection中   标题)   OpenPop.Mime.Header.MessageHeader..ctor(NameValueCollection标题)
  在OpenPop.Mime.Header.HeaderExtractor.ExtractHeadersAndBody(Byte []   fullRawMessage,MessageHeader&amp;标题,字节[]&amp;身体)   OpenPop.Mime.MessagePart.GetMessagePart(Byte [] rawMessageContent)
  在OpenPop.Mime.MessagePart.ParseMultiPartBody(Byte [] rawBody)at at   OpenPop.Mime.MessagePart.ParseBody(Byte [] rawBody)at   OpenPop.Mime.MessagePart..ctor(Byte [] rawBody,MessageHeader标头)   在OpenPop.Mime.Message..ctor(Byte [] rawMessageContent,Boolean   parseBody)在OpenPop.Mime.Message..ctor(Byte [] rawMessageContent)   在OpenPop.Pop3.Pop3Client.GetMessage(Int32 messageNumber)

1 个答案:

答案 0 :(得分:3)

OpenPop.NET声明获得支持的最佳方式是在邮件列表中联系他们:
hpop-users@lists.sourceforge.net

GetMessage(index)是否抛出任何异常? GetMessage(index)无法返回空引用 - 但如果它抛出异常,则catch子句将不执行任何操作,您将继续执行任何操作,并且不会设置message变量。你能否告诉我们是否有任何异常,如果是的话,给我们堆栈跟踪?

此外,如果您在发布此问题之前尚未删除任何代码,那么您的代码看起来就像一团糟。为什么要使用以下行获取邮箱中最后一条消息的标题:

MessageHeader h= client.GetMessageHeaders(MessageCount);

您似乎没有使用它。

此外,在你的for循环中看起来你正在提取电子邮件,只看到标题 - 然后你应该使用GetMessageHeaders(index)方法来节省带宽。