【发布时间】:2012-11-02 15:17:48
【问题描述】:
我有一个使用 MS Exchange Server 2010 SP2 的 Web 服务发送电子邮件的应用程序 (C#)。它以前工作正常。但是,就在两周前,我遇到了问题。有时代码可以发送电子邮件,但有时不能。我收到如下错误消息(完整的错误消息显示在最后)。
The request failed. Unable to connect to the remote server
我的代码如下。
string ewsUrl = "https://xxxx.xxxx.com/ews/Exchange.asmx";
string userName = "xxxx";
string password = "xxxx";
string to = "xxxx@xxxx.com";
string cc = "xxxx@xxxx.com";
ExchangeService service = new ExchangeService();
service.Url = new Uri(ewsUrl);
service.UseDefaultCredentials = true;
service.Credentials = new WebCredentials(userName, password);
EmailMessage message = new EmailMessage(service);
message.Subject = subject;
message.Body = bodyHtml;
message.ToRecipients.Add(to);
message.CcRecipients.Add(cc);
message.SendAndSaveCopy();
我不知道出了什么问题。我相信该 URL 是正确的,它有时会起作用,但有时会不起作用。我在互联网上进行了搜索,但没有找到任何解决方案。 这与服务器配置有关吗? 我已经和我的 IT 人员谈过了,但他似乎对 Web 服务一无所知。请帮我。完整的错误信息如下。
The request failed. Unable to connect to the remote server
at Microsoft.Exchange.WebServices.Data.ServiceRequestBase.ValidateAndEmitRequest(HttpWebRequest& request)
at Microsoft.Exchange.WebServices.Data.SimpleServiceRequestBase.InternalExecute()
at Microsoft.Exchange.WebServices.Data.MultiResponseServiceRequest`1.Execute()
at Microsoft.Exchange.WebServices.Data.ExchangeService.InternalCreateItems(IEnumerable`1 items, FolderId parentFolderId, Nullable`1 messageDisposition, Nullable`1 sendInvitationsMode, ServiceErrorHandling errorHandling)
at Microsoft.Exchange.WebServices.Data.ExchangeService.CreateItem(Item item, FolderId parentFolderId, Nullable`1 messageDisposition, Nullable`1 sendInvitationsMode)
at Microsoft.Exchange.WebServices.Data.Item.InternalCreate(FolderId parentFolderId, Nullable`1 messageDisposition, Nullable`1 sendInvitationsMode)
at Microsoft.Exchange.WebServices.Data.EmailMessage.InternalSend(FolderId parentFolderId, MessageDisposition messageDisposition)
at Microsoft.Exchange.WebServices.Data.EmailMessage.Send()
【问题讨论】:
-
你想连接什么端口? "xxx.." 暗示 443 。可以从您的网络服务器访问该端口吗?
-
您是否尝试过使用 AutodiscoverUrl 功能? msdn.microsoft.com/en-us/library/exchange/…
-
我也必须指定端口吗?我的网址只是
"https://email.companydomain.com/ews/Exchange.asmx"; -
我尝试了 AutodiscoverUrl 功能,但它变得更糟。我的服务器阻止了该功能,错误消息建议我使用 AutodiscoverRedirectionUrlValidationCallback。那我试试。但仍然没有成功。我的回调如下。
static bool RedirectionUrlValidationCallback(String redirectionUrl) { return (redirectionUrl == "https://autodiscover-s.companydomain.com/autodiscover/autodiscover.xml"); }这是正确的吗?请建议
标签: c# .net email exchangewebservices exchange-server-2010