为什么System.Net.Mail会出现“身份验证失败”而System.Web.Mail却没有?

时间:2011-01-17 20:31:29

标签: .net smtp

我正在通过第三方SMTP服务器从asp.net应用程序发送电子邮件。此服务器需要身份验证通常我会使用System.Net.Mail与System.Net.NetworkCredential结合来实现这一目标。

在这种特殊情况下,我不断收到“身份验证失败”消息。我知道主机名,用户名和密码信息是正确的;我已成功通过Outlook发送邮件。

我最终使用System.Web.Mail发送消息并使用System.Web.Mail.MailMessage.Fields.Add来指定凭据。

看看Wireshark中的传输,我注意到初始AUTH命令略有不同。 Outlook和System.Web.Mail都发送“AUTH LOGIN”,System.Net.Mail发送“AUTH LOGIN bWFpba ==”。

搜索了一下后,我发现其他人有类似的问题,但通常修复是使用中间中继服务器。我以为我会在这里发布问题,看看是否有人有任何想法。

1 个答案:

答案 0 :(得分:1)

看起来System.Net.Mail版本正在发送某种类型的哈希或挑战,而System.Web.Mail版本却没有。是否有一个您正在使用的设置,而另一个设置中没有使用?或者,可能是设置NetworkCredential假定您要使用哈希或加密机制进行通信,而您发送到的服务器可能不支持此功能。

相关问题