Share via


Receive Connector MessageRateLimit

Question

Thursday, February 1, 2018 4:31 PM

Hi All,

I am looking to send authenticated SMTP traffic via our Exchange server. 

I am running Send-MailMessage with a customized message body for each individual user.

Send-MailMessage -Encoding UTF8 -Subject $subject -From 'IT Notification <[email protected]>' -To $emailaddress -Body $body -SmtpServer $smtpServer -Port $smtpPort -BodyAsHtml -Credential $kNotificationPassEncrypt        

But I get the error after 5 messages

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

It seems the Receive Connector is set to just 5 for authenticated SMTP

These are how the default connectors in Exchange 2016 look.

[PS] C:\Windows\system32>get-receiveconnector | ft name,messageratelimit
Name                                                        MessageRateLimit
                                                        
Default EXCH01                                        Unlimited
Client Proxy EXCH01                                   5
Default Frontend EXCH01                              Unlimited
Outbound Proxy Frontend EXCH01                        Unlimited
Client Frontend EXCH01                                5 

Default Frontend EXCH01 uses SMTP on 25
Client Frontend EXCH01 uses authenticated SMTP on tls 587

I am wondering why the default value of 5 messages per minute is so low for Client Frontend EXCH01 and for that matter also set as 5 on Client Proxy EXCH01?

https://technet.microsoft.com/en-us/library/bb232205%28v=exchg.160%29.aspx?f=255&MSPPError=-2147217396

Message rate limit   The maximum number of messages per minute that can be sent by a single source. unlimited on the following default Receive connectors:
  • Default <ServerName> in the Transport service on Mailbox servers.
  • Default Frontend <ServerName> in the Front End Transport service on Mailbox servers.
  • Outbound Proxy Frontend <ServerName> in the Front End Transport service on Mailbox servers.
5 on the following default Receive connectors:
  • Client Proxy <ServerName> in the Transport service on Mailbox servers.
  • Client Frontend <ServerName>in the Front End Transport service on Mailbox servers.

All replies (4)

Friday, February 2, 2018 3:14 AM âś…Answered

Hi,

Thanks for contacting our forum.

Client Frontend <server name> (on port: 587)  Accepts secure connections, with Transport Layer Security (TLS) applied. While Client Proxy <server name> (on port: 465)  accepts connections from front-end servers which means used to accept proxied connections that were received on port 587 by the FET service for client connections. So they should be same.

If needed, we can change the value with the command set-receiveconnector.

Hope it helps.

Best Regards,
Jason Chao
Please remember to mark the replies as answers if they helped. If you have feedback for TechNet Subscriber Support, contact [email protected].


Click here to learn more. Visit the dedicated forum to share, explore and talk to experts about Microsoft Teams.


Thursday, February 1, 2018 10:03 PM | 1 vote

I expect it is so clients cannot overrun the system resources if they're infected with malware or a developer screws something up. 

You might want to create a specific connector for whatever you're trying to accomplish.


Friday, February 2, 2018 9:14 AM

Thanks for each of your contributions.

Putting together both of your suggestions I will create a custom Receive Connector, I don't want all my clients to have access to the higher message rate limit.

I will set this to 70 per minute and limit my script to 1 message per second.

New-ReceiveConnector -Name "Password Expiry Notification" -Custom -RemoteIPRanges "10.0.1.2" -Bindings "0.0.0.0:587" -TransportRole "FrontendTransport" -AuthMechanism BasicAuthRequireTLS,BasicAuth, Tls -MessageRateLimit "70" -PermissionGroups "ExchangeUsers"

Just to explore your answer further Jason. Will I need to set my 'Client Proxy EXCH01' Receive Connector to 70 also or perhaps create a second custom receive connector and set a message rate limit of 70

Another option is setting a Throttling Policy for that user who I am authenticating as to send the mail. I'd like to get your thoughts on this as an alternative?

New-ThrottlingPolicy -Name notification-email-policy -MessageRateLimit 70

Thanks,

Michael 


Friday, February 2, 2018 10:09 PM

I went with Set-ThrottlingPolicy in the end and left the Receive Connector alone. Worked a treat.

Thanks 

Michael