在win 8.1上无法发送邮件到hotmail

时间:2013-07-04 12:06:42

标签: c# email windows-8.1

我正在使用c#从Hotmail帐户发送电子邮件。

这是代码:

var smtpClient = new SmtpClient();
        smtpClient.UseDefaultCredentials =  false;
        smtpClient.Credentials = new NetworkCredential("userName@hotmail.com" , "password");
        smtpClient.Host = "smtp.live.com";
        smtpClient.Port = 587;
        smtpClient.EnableSsl = true;
        smtpClient.SendCompleted += SmtpClientSendCompleted;
        var mailMessage = new MailMessage("userName@hotmail.com", "me@gmail.com", "The subject", "The body");

        try
        {
            smtpClient.Send(mailMessage);
        }
        catch (Exception ex)
        {

            MessageBox.Show(string.Format("An error occur while sending the mail: {0}", ex.Message));                
            return;
        }

        MessageBox.Show("Message was sent succesfully\n");

    }

此代码在Win8和Win7上运行良好,但在win8.1上失败并抛出以下异常:

  

System.IO.IOException :无法从传输连接读取数据:远程主机强行关闭现有连接。 ---> System.Net.Sockets.SocketException:远程主机强行关闭现有连接。

     

在System.Net.Sockets.NetworkStream.Read(Byte []缓冲区,Int32偏移量,   Int32尺寸)

另外,如果我将邮件提供商改为gmail.com,它也可以完美运行。

我尝试使用ThunderBird从win8.1上的hotmail帐户发送邮件,但它确实有效。

我的代码有什么问题?

1 个答案:

答案 0 :(得分:0)

这可能是Windows 8.1(预览版)的问题。一些用户已在MSDN forumTechNet forum上报告了此问题。

如果您正在开发ASP.NET应用程序,这可能不是问题,因为您将在尚未安装8.1的环境上运行生产版本。

另一种解决方案是切换到不同的SMTP服务,有些用户报告说Gmail的SMTP工作正常,8.1预览。