2012-01-27 42 views
4

我有一個for循環調用一些代碼發送電子郵件。我得到以下運行時錯誤:此客戶端的郵件提交速率是否超出配置的限制?

Service not available, closing transmission channel. The server response was: 4.4.2 Message submission rate for this client has exceeded the configured limit

它周圍的谷歌搜索後,似乎是有關「設置receiveconnector」,可以爲Exchange Server?任何人都可以建議我如何解決這個問題?

代碼:

   var mail = new MailMessage(); 
      var smtpServer = new SmtpClient(SMTPServer); 

      mail.From = new MailAddress(fromAddress); 
      mail.To.Add(toAddress); 
      mail.Subject = title; 

      mail.IsBodyHtml = isHTML; 
      mail.Body = message; 

      if(attach != null) mail.Attachments.Add(attach); 

      smtpServer.Port = xxx 
      smtpServer.UseDefaultCredentials = false; 
      smtpServer.Credentials = new NetworkCredential(SMTPUser, SMTPPassword); 
      smtpServer.EnableSsl = true; 
      smtpServer.Send(mail); //Error occurs here 
+1

鑑於此錯誤,難道看起來這不僅僅是服務器上的一個限制問題,以防止大規模垃圾郵件發送?你需要放慢你的郵件提交速度。 – 2012-01-27 13:22:20

+0

雖然我看到了這一點:「郵件限制策略不適用於通過SMTP發送郵件,因此不能作爲原因。」在一個用戶的MSDN論壇上? – mezamorphic 2012-01-27 13:35:44

+0

不能真正回答這個問題(我並不真正瞭解Exchange,因此評論而不是回答)。但是,錯誤消息似乎很自我解釋。也許它是基於IP的節流? – 2012-01-27 13:37:47

回答

1

而是然後直接發送電子郵件,可以使用Pickup文件夾?

SmtpMail.DeliveryMethod = SmtpDeliveryMethod.SpecifiedPickupDirectory; 

這樣你只是轉儲信息中的文件夾,讓交換時,其準備送他們,這樣,如果你的用戶只能派說每分鐘3交換應該再發3下傳再派3等等。

+0

記得你需要設置'EnableSsl = false',並且需要'SmtpMail.PickupDirectoryLocation'中的絕對目錄路徑 – mhesabi 2015-02-10 07:33:23

0

我通過使用正確的端口在我的系統上解決了這個問題。交換設置的方式意味着SSL = TRUE,Port = 587產生了這個錯誤。如果我改變它使用25端口,那麼一切正常。因此請檢查您的系統管理員,這可能會有所幫助!

相關問題