【问题标题】:Message submission rate for this client has exceeded the configured limit?此客户端的消息提交率已超过配置的限制?
【发布时间】:2012-02-20 11:21:04
【问题描述】:

我有一个 for 循环,它调用一些发送电子邮件的代码。我收到以下运行时错误:

服务不可用,正在关闭传输通道。服务器 响应是:4.4.2 此客户端的消息提交率有 超出了配置的限制

在谷歌搜索后,它似乎与“set-receiveconnector”有关,可能是交换服务器吗?谁能告诉我如何解决这个问题?

代码:

             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

【问题讨论】:

  • 鉴于错误,这似乎不是更可能只是服务器上的一个限制问题,以防止大量垃圾邮件发送?您需要降低邮件提交速度。
  • 我看到了这个:“消息限制策略不适用于通过 SMTP 发送邮件,所以这不是原因。”来自一位用户的 MSDN 论坛?
  • 无法真正回答这个问题(老实说,我对 Exchange 了解不多,因此发表评论而不是回答)。但是错误消息似乎很容易解释。也许是基于 IP 的节流?
  • 我实际上只发送了 8 封电子邮件:s

标签: c# .net exchange-server


【解决方案1】:

你可以使用取件文件夹而不是直接发送电子邮件吗?

SmtpMail.DeliveryMethod = SmtpDeliveryMethod.SpecifiedPickupDirectory;

这样,您只需将消息转储到文件夹中,并在准备好时让交换发送它们,这样,如果您的用户只能发送说每分钟 3 个交换应该发送 3 个,然后在下一次传递时再发送 3 个,依此类推.

【讨论】:

  • 记住你需要设置EnableSsl = false并且还需要SmtpMail.PickupDirectoryLocation中的绝对目录路径
  • @Sturat,我喜欢这个解决方案。我能够生成 .eml 文件。但是我们如何配置exchange来取件呢?
  • @BharatRaj 这超出了 SO 的范围,有一个服务器故障,他们会帮你解决
【解决方案2】:

我通过使用正确的端口在我的系统上解决了这个问题。设置交换的方式意味着 SSL = TRUE, Port = 587 产生了这个错误。如果我将其更改为使用端口 25,那么一切正常。因此,请咨询您的系统管理员,这可能会有所帮助!

【讨论】:

  • 谢谢你,25 端口救了我
【解决方案3】:

我们通过将接收连接器设置为一次允许超过 5 条消息来解决此问题,例如:

Get-ExchangeServer | Set-ReceiveConnector "My Receive Connector" -Messageratelimit 20

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-03-20
    • 2012-02-11
    • 2021-02-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多