開發同事反饋新開發的一個應用,1分鍾內連續多封郵件發送失敗了,導致大量郵件堵塞。
經查,報有下面的錯誤:
421 4.4.2 Message submission rate for this client has exceeded the configured limit |
這是因為從Exchange 2010開始,默認每分鍾發送的郵件封數限制為5封,這個限制參數是:MessageRateLimit
微軟官網有給出此參數的詳細說明:
MessageRateLimit |
MessageRateLimit 參數指定每分鍾可以提交以便進行傳輸的郵件數量。 對於通過郵箱服務器角色(Outlook Web App、Exchange ActiveSync 或 Exchange Web 服務)提交的郵件,此設置會導致郵件延遲發送,直至達到用戶配額。 具體來說,當用戶以大於 MessageRateLimit 參數的速率提交郵件時,郵件會在長時間出現在"發件箱"或"草稿"文件夾中。 對於使用 SMTP 直接提交所傳輸郵件的 POP 或 IMAP 客戶端,如果以超過 MessageRateLimit 參數的速率提交郵件,則客戶端會收到暫時性錯誤。Exchange 會在稍后的某個時間嘗試連接並發送郵件。 默認值 5封 |
解決辦法:
在Exchange management shell 下執行:
1、創建一個名稱為LimitMessagesSent的新策略規則,例:用戶每天最大發送量為500封,每分鍾最大為50封,你可以使用以下命令:
[PS] C:\Windows\system32>New-ThrottlingPolicy -Name LimitMessagesSent -RecipientRateLimit 500 -MessageRateLimit 50
執行完后,可以看到規則名稱和recipientratelimit、messageratelimit兩個參數的值
2、把新建的策略規則LimitMessagesSent應用到需要限制發送量的用戶usera上
[PS] C:\Windows\system32>Set-Mailbox -Identity "usera" -ThrottlingPolicy LimitMessagesSent
3、修改LimitMessagesSent策略規則的每天/每分鍾發送量為1000和100
[PS] C:\Windows\system32>Set-ThrottlingPolicy -Identity LimitMessagesSent -RecipientRateLimit 1000 -MessageRateLimit 100
4、查看LimitMessagesSent策略規則中的參數值
[PS] C:\Windows\system32>Get-ThrottlingPolicy "LimitMessagesSent"
Get-ThrottlingPolicy "LimitMessagesSent" | fl Name,MessageRateLimit,RecipientRateLimit
Name : LimitMessagesSent
MessageRateLimit : 100
RecipientRateLimit : 1000
5、刪除策略規則LimitMessagesSent
[PS] C:\Windows\system32>Remove-ThrottlingPolicy -Identity LimitMessagesSent
當然,也可以修改全局的參數
1、在Exchange服務器上打開Exchange Shell命令管理界面
先查看下當前所有接收連接器MessageRateLimit參數的值:
[PS] C:\Windows\system32>Get-ReceiveConnector * |fl Name,MessageRateLimit Name : Default MAILBOX1 MessageRateLimit : unlimited Name : Client Proxy MAILBOX1 MessageRateLimit : 5 |
2、修改接收連接器"Client Proxy MAILBOX1"每分鍾可提交的郵件數量為20(如還有其他接收連接器也為5,也都進行修改):
[PS] C:\Windows\system32>Set-ReceiveConnector -identity "Client Proxy MAILBOX1" -MessageRateLimit 20 |
3、再次查看當前所有接收連接器MessageRateLimit參數的值,顯示"Client Proxy MAILBOX1"的每分鍾可提交郵件數量已修改為20了:
[PS] C:\Windows\system32>Get-ReceiveConnector * |fl Name,MessageRateLimit Name : Default MAILBOX1 MessageRateLimit : unlimited Name : Client Proxy MAILBOX1 MessageRateLimit : 20 |