2011-10-26 109 views
0

我想用SmtpClient發送郵件,下面是我的代碼。Smtp服務器超時錯誤

SmtpClient client_ = new SmtpClient("relay-hosting.secureserver.net", 25); 
      //client_.DeliveryMethod = SmtpDeliveryMethod.Network; 
      //client_.EnableSsl = true; 
      // client_.UseDefaultCredentials = false; 
      //client_.Credentials = new System.Net.NetworkCredential(_fromAddress, _password); 

      MailAddress from_ = new MailAddress(_fromAddress, _fromName); 
      MailMessage msg_ = new MailMessage(from_, from_); 

      msg_.Subject = "Subject"; 

      StringBuilder body_ = new StringBuilder(); 
      body_.AppendLine("Line1"); 
      body_.AppendLine("==============================================================================================="); 
      body_.AppendLine("Line2"); 
      body_.AppendLine("==============================================================================================="); 
      body_.AppendLine("line2"); 
      body_.AppendLine("==============================================================================================="); 

      msg_.Body = body_.ToString(); 
      msg_.IsBodyHtml = true; 
      client_.Send(msg_); 

我得到TimeOut錯誤。當我的機器上的電子郵件客戶端使用相同的smtp配置時,它會立即發送郵件。我不知道可能是什麼原因。另外,當我用Gmail帳戶與Gmail的smpt服務器它的工作。

+0

什麼服務器和端口?這是一個網絡或服務器問題。 – SLaks

+0

我跟託管服務提供商討論過這個問題。他們給了我不同的smtp服務器進行中繼。 – Nps

+0

我收到錯誤System.Net.Mail.SmtpFailedRecipientException:郵箱名稱不允許。服務器的迴應是:抱歉,中繼拒絕你的位置。我已經更新了代碼。但仍然出現錯誤。 – Nps

回答

1

大多數消費ISPs阻止端口25,以防止您運行郵件服務器。
因此,您無法連接到您家中的25號端口。

您可以要求他們提供備用端口。
嘗試端口587;它也是常用的。

+0

我做了配置更改,並在本地計算機上使用smtp.gmail.com,在prod服務器上使用relay-hosting.secureserver.net,這對我很有用。不過,如果時間允許,我會嘗試您的建議。謝謝 – Nps