我正在遇到一个关闭的问题,我不知道它的设置是否正确,或者新NetworkCredential的签名是否存在重大问题。
首先,我有一个应用程序,我在.NET框架2中编写,通过smtp发送电子邮件。发送它使用活动目录凭据的电子邮件以通过服务器进行身份验证。我只是设置如下:
smtp.Credentials = New Net.NetworkCredential(domain & "\" & username, password)
这个工作正常,直到我更新了应用程序以在.NET框架4中运行,我遇到了错误:"邮箱不可用,服务器响应是5.7.1,客户端没有权限发送,因为这。发件人"
我环顾四周,发现由于某些原因,这在.NET framework 4中无法正常工作,并使用指定域的重载。
我第一次尝试:
smtp.Credentials = New Net.NetworkCredential(username, password, domain)
即使所有信息都正确,也会出现同样的错误。我的同事在使用不同的应用程序时遇到了同样的问题,并且运气或错误发现:
smtp.Credentials = New Net.NetworkCredential(username, domain, password)
正常工作,将验证并发送电子邮件。现在上面的签名违反了所有文档,因此我决定调查并发现以下内容:
Dim NetCred As NetworkCredential = New NetworkCredential()
With NetCred
.Username = username
.Domain = domain
.Password = password
End With
以上失败的错误信息与之前相同(5.7.1)
Dim NetCred As NetworkCredential = New NetworkCredential()
With NetCred
.Username = username
.Domain = password
.Password = domain
End With
以上成功发送电子邮件并正确验证。
任何人都可以想到这可能发生的任何原因吗?我正在运行一个最新版本的visual studio 2010,其中安装了所有.net框架版本并且是最新的。
感谢您的帮助。