【发布时间】:2016-02-05 01:25:59
【问题描述】:
过去几周我一直在互联网上寻找解决此问题的方法,但没有任何运气,因此我向这里的社区寻求帮助。
我正在尝试用 c# 编写一个测试应用程序,它使用基于 TLS1.2 的 Exchange Web 服务来连接 Exchange Server 2010 并发送电子邮件。
我使用从https://code.msdn.microsoft.com/Send-Email-with-Exchange-50189e57 下载的示例作为起点,稍作改动以适应我们的 Exchange 配置。
我们的 Exchange 服务器配置为使用 TLS 1.2 如果我从我们的域内运行程序,它是成功的,但如果我从外部运行它,我会收到以下消息: “不支持请求的安全协议”
我们使用的是 Using dotnet 4.5,下面的代码是我的测试代码。
private void sendButton_Click(object sender, RoutedEventArgs e)
{
try
{
ExchangeService service = new ExchangeService(ExchangeVersion.Exchange2010_SP2);
service.Url = new Uri(ExchangeServerURI);
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;
service.Credentials = new WebCredentials(MailUserName, MailPassword, "api");
EmailMessage message = new EmailMessage(service);
message.Subject = subjectTextbox.Text;
message.Body = bodyTextbox.Text;
message.ToRecipients.Add(recipientTextbox.Text);
message.Save();
message.SendAndSaveCopy();
System.Windows.MessageBox.Show("Message sent!");
}
catch(Exception ex)
{
MessageBox.Show(ex.Message);
}
}
非常感谢任何帮助以使这项工作正常进行,
谢谢,
约翰
【问题讨论】:
-
确保服务器安装了.net 4.5
-
查看此answer,其中解释了有关 TLS 1.2 和请求的安全协议不受支持的错误。
标签: c# web-services exchange-server-2010