We are in the process of migrating from Exchange 2016 CU19 to Exchange Online. We are running a full hybrid configuration with two on-premise servers in a DAG. So far we have only migrated a small batch of users (about 25) to monitor and check we are happy with the configuration. One of these users is trying to send a single email to two distribution lists containing a combined total of 469 internal recipients. The user is then receiving a NDR which says:
Your message wasn't delivered to anyone because there are too many recipients. The limit is 400. Your message has 469 recipients. firstname.lastname@example.org Your message has too many recipients. Please try to resend with fewer recipients. email@example.com Your message has too many recipients. Please try to resend with fewer recipients. etc... Diagnostic information for administrators: Generating server: server1.domain.com firstname.lastname@example.org Remote Server returned '550 5.5.3 RESOLVER.ADR.RecipLimit; too many recipients' email@example.com Remote Server returned '550 5.5.3 RESOLVER.ADR.RecipLimit; too many recipients' etc...
The problem is, we don’t have any recipient limits set to 400, at least none that I can find. The following Microsoft article mentions three locations that recipient limits can be set
Quote from Message size and recipient limits in Exchange Server article:
The recipient limit on a message is enforced in two places:
At the protocol level during email transfer where the Receive connector MaxRecipientsPerMessage is enforced.
At the Transport level during categorization where MaxRecipientEnvelopeLimit is enforced.
There is also the mailbox level RecipientLimits, which overrides the Transport level MaxRecipientEnvelopeLimit and is also enforced during message categorization. If the mailbox level RecipientLimits is set to unlimited (the default value), then the maximum number of recipients per message for the mailbox is controlled by the Transport level MaxRecipientEnvelopeLimit.
The Receive connector MaxRecipientsPerMessage applies to authenticated and anonymous SMTP client submissions. However, when an Exchange server relays email through another Exchange server in the same organization, the Receive connector MaxRecipientsPerMessage is bypassed.
With this in mind, I have run the following commands to check our configuration. However, according to the quote above, the limits set on our on-premise server as shown below should not have any affect as the senders mailbox has a specific limit (I.e. not unlimited) and the email in question is being sent to internal recipients:
PS C:> Get-ReceiveConnector | ft Name, MaxRecipientsPerMessage Name MaxRecipientsPerMessage ---- ----------------------- Default Server1 5000 Client Proxy Server1 200 Default Frontend Server1 200 Outbound Proxy Frontend Server1 200 Client Frontend Server1 200 Default Server2 5000 Client Proxy Server2 200 Default Frontend Server2 200 Outbound Proxy Frontend Server2 200 Client Frontend Server2 200 PS C:> Get-TransportConfig | fl MaxRecipientEnvelopeLimit MaxRecipientEnvelopeLimit : 7
As we are a school, we set the
MaxRecipientEnvelopeLimit really low to create a ‘default’ setting which stops pupils from sending silly messages to as many people as they can. We then increase the mailbox recipient limits for our staff. With Exchange Online, we have configured the default mailbox plan to set a low recipient limit on new mailboxes and we increase the staff manually as before. However, as mentioned in the article/quote above, the
MaxRecipientEnvelopeLimit is only applied if the sender’s mailbox
RecipientLimits is set to unlimited (which it’s not).
PS C:> Get-TransportConfig | fl MaxRecipientEnvelopeLimit MaxRecipientEnvelopeLimit : Unlimited PS C:> Get-Mailbox firstname.lastname@example.org | fl RecipientLimits RecipientLimits : 500
If I’ve understood the Microsoft article correctly, the only setting which should take effect when delivering internal mail is the recipient limit on the sender’s mailbox, unless that is set to unlimited in which case the
MaxRecipientEnvelopeLimit on the transport config is applied.
I don’t know where the NDR is getting the
400 limit from. The recipients (staff only) on our on-premise servers all have their mailbox’s
RecipientLimits set to 400, but they are receiving an email, not sending so this shouldn’t apply. The only other thing I can think of, is that before I migrated the senders mailbox to Exchange Online, their
RecipientLimits would have been set to 400 on-premise. But as their mailbox doesn’t exist on-premise anymore, I can’t change it and the limit shouldn’t exist/apply anymore either, unless it’s a bug.