2

我正在使用 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();
}
4

1 回答 1

11

Authenticate() 方法支持第三个参数,一个称为 AuthenticationMethod 的枚举。根据帮助文件,如果未传递第三个参数,则 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();
}
于 2011-08-05T18:06:11.977 回答