Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/319.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何解决OpenPop.Net身份验证异常_C#_Asp.net_Openpop - Fatal编程技术网

C# 如何解决OpenPop.Net身份验证异常

C# 如何解决OpenPop.Net身份验证异常,c#,asp.net,openpop,C#,Asp.net,Openpop,我正在使用OpenPop.Net连接到一个C#应用程序中由GoDaddy托管的电子邮件帐户。Authenticate()方法引发异常,错误消息为“用于从中检索响应的流已关闭”。我使用Outlook 2007仔细检查了POPServer、POPPort、POPUserName和POPPassword值是否有效 using (Pop3Client pop3 = new Pop3Client()) { pop3.Connect(POPServer, POPPort, false); p

我正在使用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将退回到用户名和密码身份验证

我尝试显式传递Auto,Authenticate()方法失败,并出现相同的错误。然后我尝试显式地传递用户名和密码,这次成功了。我不确定这是OpenPop.Net中的错误还是POP服务器的问题。这是工作代码

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

    Int32 messageCount = pop3.GetMessageCount();
}

你好我是OpenPop的开发者。这是一个众所周知的问题。问题是POP3服务器正确地告诉POP3客户端(这里是OpenPop)它支持APOP,但实际上不支持,因此当服务器尝试使用APOP方法登录时失败。据我所知,大多数服务器正确地告诉客户机是否支持APOP。很好,你自己找到了解决方案。也许帮助文件中的注释可以帮助下一个遇到问题的人。可以:)