2011-12-07 175 views
4

我在下面的代码中收到错误“服务器不支持安全连接”。服务器不支持安全连接

SmtpClient client = new SmtpClient(exchangeServer); 
client.UseDefaultCredentials = false; 
client.EnableSsl = true; 
client.Credentials = new NetworkCredential(user, password); 

MailAddress from = new MailAddress(fromAddress); 
MailAddress to = new MailAddress(to); 
MailMessage mail = new MailMessage(from, to); 

// ... 

client.Send(mail); 

我该如何解决这个问题?

+2

你试过'EnableSsl = FALSE'? – svick

+0

是的,如果我设置EnabledSsl = false,它将返回错误:SMTP服务器需要安全连接或客户端未通过身份验证。服务器的回应是:5.7.1客户端未被认证 – jasonline

+0

设置启用SSL为false,更具体地说,只允许在该域内发送电子邮件,所以如果你的域名是“mail.mybusiness.com”,你只能发送电子邮件到“[email protected]” –

回答

0

您使用的是什么端口?您可能会发现需要在您的SmtpClient对象中指定端口。

+0

是否需要此端口?因为如果我设置UseDefaultCredentials = true并在“发件人”地址中使用我自己的用户地址,我可以成功发送电子邮件。 – jasonline

+0

我有一个快速的谷歌,很多答案似乎指向一个端口。 –

3

您的服务器在默认端口上不支持SSL;大多数不会。

如果将SSL关闭,你得到的消息,“ SMTP服务器要求安全连接或客户端未通过身份验证服务器响应为:5.7.1客户端未通过身份验证”

那告诉你,你没有通过身份验证。此外,您在评论中说,“因为如果我设置UseDefaultCredentials = true并在”发件人“地址中使用我自己的用户地址,我可以成功发送电子邮件。”

这显然是如何配置SMTP服务器的问题。您将需要获取适当的凭据,或将SMTP服务器设置为允许从Web服务器发送邮件。

+0

但是,如何在不更改SMTP服务器设置(如添加端口)的情况下使用默认凭据发送电子邮件? – jasonline

+0

如果不指定,它将在默认端口上发送。这是正确的行为。您的凭证与正在使用的端口无关;它只是看起来像这样,因为你一次改变了多个东西(SSL设置和登录设置)......当试图调试某些东西时是一个很大的禁忌;-) –

+0

这是否意味着上面的代码是可以的?我需要在交换服务器端配置哪些具体内容,以便此问题消失? – jasonline

-3

client.EnableSsl = false; 
+0

正如上面评论所述:**它会返回错误:SMTP服务器需要安全连接或客户端未通过身份验证。服务器的回应是:5.7.1客户端没有通过验证** – Luv

+2

-1,您回答了一个2年前的问题,回答质量很低,这个问题已经在评论中了?如果你认为你有什么可以添加到一个旧的问题,至少使它是一个很好,彻底的答案。 –

相关问题