我正在使用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)
答案 0 :(得分:3)
OpenPop.NET声明获得支持的最佳方式是在邮件列表中联系他们:
hpop-users@lists.sourceforge.net
GetMessage(index)
是否抛出任何异常? GetMessage(index)
无法返回空引用 - 但如果它抛出异常,则catch子句将不执行任何操作,您将继续执行任何操作,并且不会设置message
变量。你能否告诉我们是否有任何异常,如果是的话,给我们堆栈跟踪?
此外,如果您在发布此问题之前尚未删除任何代码,那么您的代码看起来就像一团糟。为什么要使用以下行获取邮箱中最后一条消息的标题:
MessageHeader h= client.GetMessageHeaders(MessageCount);
您似乎没有使用它。
此外,在你的for循环中看起来你正在提取电子邮件,只看到标题 - 然后你应该使用GetMessageHeaders(index)
方法来节省带宽。