此客户端的邮件提交速率已超过配置的限制

本文关键字:配置 速率 客户端 提交 | 更新日期: 2023-09-27 18:21:39

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

服务不可用,正在关闭传输通道。服务器回复为:4.4.2该客户端的消息提交率超出配置的限制

在谷歌上搜索后,它似乎与"设置接收连接器"有关,可能是交换服务器吗?有人能告诉我如何解决这个问题吗?

代码:

             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

此客户端的邮件提交速率已超过配置的限制

与其直接发送电子邮件,还不如使用拾取文件夹?

SmtpMail.DeliveryMethod = SmtpDeliveryMethod.SpecifiedPickupDirectory;

这样,你只需将消息转储到文件夹中,让exchange在准备好时发送它们,这样,如果你的用户每分钟只能发送3条消息,exchange应该发送3条,那么在下一次传递时再发送3条信息,以此类推。

我使用正确的端口在系统上解决了这个问题。交换的设置方式意味着SSL=TRUE,端口=587产生了这个错误。如果我把它改为使用端口25,那么一切都很好。因此,请与您的系统管理员联系,这可能会有所帮助!

我们通过将接收连接器设置为一次允许5条以上的消息,从Exchange端解决了这个问题,例如:

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