2011-01-30 157 views
0

全部。在這個項目中,我的意圖是創建一個過程完成警報系統,允許其他程序撥打我的程序,併發送一條短信給手機,並通知收件人完成過程(在我的情況下, 3ds Max渲染)。SmtpException - 連接被遠程主機強制關閉。 /操作超時

不幸的是,這部分代碼完全失敗。它直到「smtp.Send(msg);」纔會執行,直到SmtpException告訴我遠程主機強行關閉了我的「現有連接」。

MailMessage msg = new MailMessage(); 
    msg.From = new MailAddress("[email protected]"); 
    msg.To.Add("[email protected]"); 
    msg.Subject = "Subject"; 
    msg.Body = "THIS IS A MESSAGE!"; 

    SmtpClient smtp = new SmtpClient("smtp.att.yahoo.com", 645); 
    //smtp.DeliveryMethod = SmtpDeliveryMethod.Network; 
    //smtp.UseDefaultCredentials = false; 
    smtp.Credentials = new NetworkCredential("[email protected]", "password"); 
    smtp.EnableSsl = true; 

    Console.WriteLine("Send Start..."); 
    smtp.Send(msg); 
    Console.WriteLine("Message Sent"); 

我覺得我應該知道這裏發生了什麼,但我不知道。我在互聯網上搜索了幾個小時和幾小時,找到了與我類似的人,但沒有人願意迴應他們的請求。也許我的運氣在這裏會更好。

謝謝大家。

有趣的是,遠程主機不再強行關閉我的連接。操作只是超時。

回答

0

我不確定它爲什麼不工作,你確定你的防火牆沒有阻止你嗎?嘗試遠程登錄到SMTP服務器(DOS提示符 - >遠程登錄smtp.att.yahoo.com 645.此外,嘗試添加郵件服務器信息在App.config這樣的:

<system.net> 
    <mailSettings> 
     <smtp deliveryMethod="Network" from="[email protected]"> 
      <network defaultCredentials="true" host="smtp.att.yahoo.com" port="645" userName="yourUser" password="yourPass"/> 
     </smtp> 
    </mailSettings> 
</system.net> 
0

有許多可能的原因:。

  1. 它的上阻止連接上運行的機器例如防火牆/防病毒
  2. 機器的本地網絡上的裝置阻止連接防火牆/路由器配置
  3. ISP的網絡。 (機器打開)阻止了t他連接。
  4. 你連接到的SMTP服務器(雅虎)只是不喜歡你的機器。

最後一個是最有可能的。解決問題的最佳方法是嘗試發送到不同服務器上的其他帳戶。

+0

嗯,即使關閉我的防火牆,我也有同樣的問題,所以我不認爲它的1或2. Outlook似乎沒有問題,相同的設置,所以我不認爲它也是第4名。 – 2011-01-30 08:41:00

相關問題