【发布时间】:2012-07-13 16:53:28
【问题描述】:
这是我的场景:我必须阅读来自 Exchange 2010 sp2 帐户的电子邮件。我必须使用 Exchange Web 服务,POP3 和 IMAP 被阻止。我必须在人们只能在 Intranet 中通过 Web 浏览器访问其帐户的环境中测试我的应用程序。我无法将我的应用程序直接调试到此 Intranet。我有这个 sn-p 可以访问一个帐户:
private void Dowork()
{
ExchangeService service = new ExchangeService(ExchangeVersion.Exchange2010_SP2);
string dominio = "domain";
string usuario = "user";
string password = "password";
service.Credentials = new NetworkCredential(usuario, password, dominio);
string url = usuario + "@" + dominio + ".com";
service.AutodiscoverUrl(url, RedirectionUrlValidationCallback);
//service.AutodiscoverUrl(url);
FindItemsResults<Item> findResults = service.FindItems(
WellKnownFolderName.Inbox,
new ItemView(10));
string content = string.Empty;
foreach (Item item in findResults.Items)
{
EmailMessage email = EmailMessage.Bind(service, item.Id);
email.Load();
content += item.Subject + "\n";
content += email.From.Address + "\n";
content += email.Body + "\n\n";
//Console.WriteLine(item.Subject);
//Console.WriteLine(email.From.Address);
//Console.WriteLine(email.Body);
}
string result = content;
}
// Create the callback to validate the redirection URL.
static bool RedirectionUrlValidationCallback(String redirectionUrl)
{
// Perform validation.
return (redirectionUrl == "https://autodiscover-s.outlook.com/autodiscover/autodiscover.xml");
}
如果我使用这条线:
service.AutodiscoverUrl(url);
我得到这个错误:
“自动发现阻止了到 https://autodiscover.colpatria.com/autodiscover/autodiscover.xml 的潜在不安全重定向。要允许自动发现跟随重定向,请使用 AutodiscoverUrl(string, AutodiscoverRedirectionUrlValidationCallback) 重载。”
所以实现了RedirectionUrlValidationCallback的方法,我不确定url是否正确。事实是我收到了这个错误:
“找不到自动发现服务”。
自动发现可能没有正确配置吗?我不是交易所管理员,我怎么知道自动发现是否有效?我需要参数来告诉交易所管理员必须配置此功能。感谢您的帮助。
【问题讨论】:
-
我相信您现在已经找到了一种方法,因为这个问题已经存在一年了,只是想补充一点,使用调用
AutoDiscoverUrl并不是连接 EWS 的唯一方法。相反,自己直接设置 url 可能是一个可行的选择。示例:service.Url = new URI("https://your_exchange_server/EWS/Exchange.asmx"); -
硬编码 service.Url 不是正确的方法!我们使用自动发现是有目的的。它让我们不用担心用户是在本地还是 Office365。 EWS 端点 Url 将自动设置为 service.Url。
标签: email exchangewebservices exchange-server-2010