我有一个Web服务提供商来托管我运行的一些.net站点 . 我在他们的旧平台上,最近升级到他们的新平台,其中包括使用不同的smtp服务器 . 我以前在旧主机上发送邮件没有问题,但现在当我用SmtpClient发送邮件时,它会引发异常:

System.IO.IOException: Unable to read data from the transport connection: net_io_connectionclosed.

代码非常简单(我在这个代码示例中显然模糊了我的smtp服务器,用户名和密码):

SmtpClient client = new SmtpClient("mysmtpserver");
client.EnableSsl = true;
client.Port = 587;
client.Credentials = new System.Net.NetworkCredential("myusername", "mypassword");
MailMessage message = new MailMessage("myfromaddress", "mytoaddress");
client.Send(message);

现在,我认为是一个相关的问题可能会解决这个问题,就是在设置MS Outlook使用同一台服务器时,我不得不在高级选项卡的出局服务器设置中更改配置,因为旧的设置突然没用了:

(以前工作,不再有效)端口587,TLS加密类型

(现在可以使用)端口587,SSL加密类型

我不是一个smtp专家,但在我看来,在我的托管服务提供商的服务器上没有正确配置,但我不知道如何传达这一点 .

如果我错了请纠正我,但SSL曾经是465端口,而TLS应该是端口587,这是正确的吗?我是否误解了有关SmtpClient类的内容?我的意思是,我已经这么做了多年......或者我的托管服务提供商是否有可能在这个新的smtp服务器上没有正确配置?