2013-07-04 14 views
2

我打算髮送一個電子郵件形式使用C#的Hotmail帳戶。無法發送郵件到hotmail上贏得8.1

這是代碼:

var smtpClient = new SmtpClient(); 
     smtpClient.UseDefaultCredentials = false; 
     smtpClient.Credentials = new NetworkCredential("[email protected]" , "password"); 
     smtpClient.Host = "smtp.live.com"; 
     smtpClient.Port = 587; 
     smtpClient.EnableSsl = true; 
     smtpClient.SendCompleted += SmtpClientSendCompleted; 
     var mailMessage = new MailMessage("[email protected]", "[email protected]", "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(字節[]緩衝區,偏移的Int32, 的Int32大小)

另外,如果我cahnge郵件提供商gmail.com它也完美的作品。

我試圖使用ThunderBird從win8.1上的hotmail帳戶發送郵件,它工作。

我的代碼有什麼問題?

+1

發送throw win8.1時是否拋出異常? – DGibbs

+0

「它失敗」是什麼意思?你有錯誤嗎?如果是這樣,那麼錯誤信息是什麼?您需要提供我們可以用來嘗試和幫助的信息; 「失敗」可能對你很清楚,但我們無法看到你的屏幕或從這裏讀出你的想法。 –

+0

@KenWhite你是對的。我添加了異常說明。 – user844541

回答

1

這大概是Windows 8.1(預覽)的一個問題。有幾位用戶已在MSDN forumTechNet forum上報告過此問題。

如果您正在開發ASP.NET應用程序,這可能不是問題,因爲您將在環境上運行尚未在8.1上的生產版本。

另一種解決方案是切換到不同的SMTP服務,一些用戶報告說,使用8.1預覽版,Gmail的SMTP工作正常。