我正在尝试测试向自己公司的电子邮件ID发送电子邮件。我们在Exchange服务器上托管了Outlook。我使用了以下代码(由于隐私原因,用随机代码取代我的电子邮件ID):
using System;
using Microsoft.Exchange.WebServices.Data;
namespace TestEmail
{
class Program
{
static void Main(string[] args)
{
ExchangeService service = new ExchangeService(ExchangeVersion.Exchange2010_SP2);
service.UseDefaultCredentials = true;
//service.Credentials = new WebCredentials("user1@contoso.com", "password");
service.TraceEnabled = true;
service.TraceFlags = TraceFlags.All;
service.AutodiscoverUrl("xxx@yyy.com", RedirectionUrlValidationCallback);
EmailMessage email = new EmailMessage(service);
email.ToRecipients.Add("xxx@yyy.com");
email.Subject = "Test mail";
email.Body = new MessageBody("Sending the test email");
email.Send();
}
private static bool RedirectionUrlValidationCallback(string redirectionUrl)
{
// The default for the validation callback is to reject the URL.
bool result = false;
Uri redirectionUri = new Uri(redirectionUrl);
// Validate the contents of the redirection URL. In this simple validation
// callback, the redirection URL is considered valid if it is using HTTPS
// to encrypt the authentication credentials.
if (redirectionUri.Scheme == "https")
{
result = true;
}
return result;
}
}
}
}
当我运行此操作时,出现错误,其中显示" AutodiscoverConfiguration失败:Web异常(底层连接已关闭:无法为SSL / TLS安全通道建立信任关系)。
我不知道如何在我的工作场所设置Exchange Server的安全性,因为它由不同的团队处理。
如何解决此问题?
答案 0 :(得分:0)
我真的更喜欢你在这里与本地的Exchange管理员合作,好像AutoDiscovery有任何问题,只有他们可以帮助解决这个问题。
无论如何,这里有一些可能的选项,基于我们目前拥有的较少的信息:
1)。 它可能是SSL信任问题。确保在您的应用程序/本地操作系统中信任用于连接的Exchange服务的根CA权限。根据您的本地配置,您需要在此处导入一些受信任的SSL根或信任自签名的ssl证书。
2)。 要检查自动发现问题,我们可以尝试通过Microsoft Remote Connectivity Test (Outlook Autodiscover)进行远程检查。但是根据Exchange服务器配置,可能存在内部和外部自动发现配置,并且验证外部并不意味着内部工作正常。如上所述:您需要与Exchange管理员合作。