我如何解决一个OpenPop.Net认证异常



我正在使用OpenPop。Net在c#应用程序中连接到GoDaddy托管的电子邮件帐户。Authenticate()方法抛出一个异常,错误消息为"用于从中检索响应的流已关闭"。我在Outlook 2007中反复检查了POPServer, POPPort, POPUserName和POPPassword值是否有效。

using (Pop3Client pop3 = new Pop3Client())
{
    pop3.Connect(POPServer, POPPort, false);
    pop3.Authenticate(POPUserName, POPPassword);
    Int32 messageCount = pop3.GetMessageCount();
}

Authenticate()方法支持第三个参数,一个名为AuthenticationMethod的枚举。根据帮助文件,如果没有传递第三个参数,Authenticate()方法默认为Auto身份验证方法。帮助文件继续说明Auto方法是推荐使用的身份验证方法。如果服务器支持Apop,则使用Apop进行身份验证。如果不支持Apop, Auto将返回到UsernameAndPassword身份验证。

我尝试显式传递Auto,并且Authenticate()方法失败并出现相同的错误。然后我尝试显式地传递UsernameAndPassword,这次成功了。我不确定这是否是OpenPop的一个bug。Net或POP服务器有问题。下面是工作代码:

using (Pop3Client pop3 = new Pop3Client())
{
    pop3.Connect(POPServer, POPPort, false);
    pop3.Authenticate(POPUserName, POPPassword, AuthenticationMethod.UsernameAndPassword);
    Int32 messageCount = pop3.GetMessageCount();
}

相关内容

  • 没有找到相关文章

最新更新