关于c#:Microsoft.Exchange.WebServices.Data.ServiceResponseException:连接失败。稍后再试

Microsoft.Exchange.WebServices.Data.ServiceResponseException: Connection did not succeed. Try again later

我有一个相当简单的电子邮件,需要使用Exchange服务器发送。这在本地有效,但是在发布到服务器时失败。这是我的代码,它建立了到交换服务器的链接:

var service = new ExchangeService(ExchangeVersion.Exchange2010_SP2);
service.UseDefaultCredentials = true;
service.AutodiscoverUrl(Config.GetGroupMailbox(),RedirectionUrlValidationCallback);

设置完字段后,我只是简单地调用.Send()。

这是堆栈跟踪:

Microsoft.Exchange.WebServices.Data.ServiceResponseException:没有邮箱的用户无法使用SendOnly。使用SendAndSaveCopy并在邮箱中指定文件夹ID,以从没有邮箱的帐户发送项目。
在Microsoft.Exchange.WebServices.Data.ServiceResponse.InternalThrowIfNecessary()
在Microsoft.Exchange.WebServices.Data.ExchangeService.InternalCreateItems(IEnumerable 1 items, FolderId parentFolderId, Nullable 1 messageDisposition,Nullable 1 sendInvitationsMode, ServiceErrorHandling errorHandling)
at Microsoft.Exchange.WebServices.Data.Item.InternalCreate(FolderId parentFolderId, Nullable
1 messageDisposition,Nullable` 1 sendInvitationsMode)
在Microsoft.Exchange.WebServices.Data.EmailMessage.InternalSend(FolderId parentFolderId,MessageDisposition messageDisposition)
在CCSSWorkflow.Models.EmailService.Send(EmailObject EmailObject,EmailSent EmailSentObject)

感谢帮助/指导,

山姆


我找到了问题并解决了。问题出在与正在连接或尝试连接的用户有关。

我已将服务设置为使用默认设置:
service.UseDefaultCredentials = true;
表示它将尝试在运行该进程的用户时进行连接。

当我用实际的用户名和密码替换所有内容时,一切正常:

1
2
3
service.UseDefaultCredentials = false;
service.Credentials = new WebCredentials(Config.GetEmailConnectionUserID(),
                                         Config.GetEmailConnectionPassword());