我正在使用OpenPop.Net连接到C#应用程序中的GoDaddy托管电子邮件帐户。 Authenticate()方法抛出异常,并显示错误消息“用于检索响应的流已关闭”。我加倍检查POPServer,POPPort,POPUserName和POPPassword值是否有效使用Outlook 2007。
using (Pop3Client pop3 = new Pop3Client())
{
pop3.Connect(POPServer, POPPort, false);
pop3.Authenticate(POPUserName, POPPassword);
Int32 messageCount = pop3.GetMessageCount();
}
答案 0 :(得分:10)
Authenticate()方法支持第三个参数,一个名为AuthenticationMethod的枚举。根据帮助文件,如果未传递第3个参数,则Authenticate()方法默认为Auto的身份验证方法。帮助文件继续说要使用Auto方法进行身份验证。如果服务器支持Apop,则使用Apop进行身份验证。如果不支持Apop,则Auto将回退到UsernameAndPassword身份验证。
我尝试显式传递Auto,而Authenticate()方法失败并出现相同的错误。然后我尝试显式传递UsernameAndPassword,这次它起作用了。我不确定这是OpenPop.Net中的错误还是POP服务器的问题。这是工作代码。
using (Pop3Client pop3 = new Pop3Client())
{
pop3.Connect(POPServer, POPPort, false);
pop3.Authenticate(POPUserName, POPPassword, AuthenticationMethod.UsernameAndPassword);
Int32 messageCount = pop3.GetMessageCount();
}