我正在使用从Exchange 2007 SP1服务器公开的Exchange Web服务来创建来自我的应用程序的电子邮件,我已经解决了一个我无法弄清楚的问题。
我收到此回复“当作为没有邮箱的帐户发出请求时,您必须为任何可识别的文件夹ID指定邮箱主SMTP地址。”每次我尝试从Web应用程序CreateItem()
。
这仅在UseDefaultCredentials = True
时在Windows 2003 + IIS6上发生。但是如果我使用New System.Net.NetworkCredential("user","password")
设置凭据就可以了。后者不是生产中的选择。
最奇怪的是UseDefaultCredentials = True
如果我在本地机器上从VS2008运行它(但是交换服务器是同一个远程机器),它就可以工作。有什么问题?
为了使这个更具可读性,我在下面粘贴了一个使用Exchange WS API 1.0的代码示例。但如果我直接使用Exchange WS,那就是同样的问题。
Dim serviceObj As ExchangeService = _
New ExchangeService(ExchangeVersion.Exchange2007_SP1)
serviceObj.UseDefaultCredentials = True
serviceObj.Url = New Uri(serviceUrl)
Dim message = New EmailMessage(serviceObj)
message.Subject = "Greetings"
message.Body = New MessageBody(BodyType.Text, "Hello World")
message.ToRecipients.Add("example@domain.com")
message.SendAndSaveCopy()
感谢任何想法。
答案 0 :(得分:0)
这是桌面应用还是网络应用?如果是后者,也许DefaultCredentials正在使用应用程序池标识?
使用时会发生什么:
System.Net.CredentialCache.DefaultCredentials
UseDefaultCredentials为false?
答案 1 :(得分:-2)
使用模拟解决了问题。