我们正在从 Exchange 2016 CU19 迁移到 Exchange Online。我们正在运行 DAG 中的两台本地服务器的完全混合配置。到目前为止,我们仅迁移了一小批用户(约 25 个)来监控和检查我们是否对配置感到满意。其中一个用户正在尝试向两个通讯组列表发送一封电子邮件,这两个通讯组列表总共包含 469 个内部收件人。然后,该用户收到一条 NDR,内容如下:
Your message wasn't delivered to anyone because there are too many recipients. The limit is 400. Your message has 469 recipients.
[email protected]
Your message has too many recipients. Please try to resend with fewer recipients.
[email protected]
Your message has too many recipients. Please try to resend with fewer recipients.
etc...
Diagnostic information for administrators:
Generating server: server1.domain.com
[email protected]
Remote Server returned '550 5.5.3 RESOLVER.ADR.RecipLimit; too many recipients'
[email protected]
Remote Server returned '550 5.5.3 RESOLVER.ADR.RecipLimit; too many recipients'
etc...
问题是,我们没有将任何收件人限制设置为 400,至少我找不到。以下 Microsoft 文章提到了可以设置收件人限制的三个位置
引自Exchange Server 中的邮件大小和收件人限制文章:
邮件的收件人限制在两个地方强制执行:
在电子邮件传输期间的协议级别,强制执行接收连接器 MaxRecipientsPerMessage。
在分类期间的传输级别,强制执行 MaxRecipientEnvelopeLimit。
还有邮箱级别的 RecipientLimits,它会覆盖传输级别的 MaxRecipientEnvelopeLimit,并且在邮件分类期间也会强制执行。如果邮箱级别的 RecipientLimits 设置为无限制(默认值),则邮箱每封邮件的最大收件人数量由传输级别的 MaxRecipientEnvelopeLimit 控制。
另一个片段:
接收连接器 MaxRecipientsPerMessage 适用于经过身份验证和匿名的 SMTP 客户端提交。但是,当 Exchange 服务器通过同一组织中的另一个 Exchange 服务器中继电子邮件时,接收连接器 MaxRecipientsPerMessage 将被绕过。
考虑到这一点,我运行了以下命令来检查我们的配置。但是,根据上面的引述,我们内部服务器上设置的限制(如下所示)不应产生任何影响,因为发件人的邮箱有特定限制(即不是无限制的),并且相关电子邮件正在发送给内部收件人:
本地:
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
由于我们是一所学校,我们将限制设置得MaxRecipientEnvelopeLimit
非常低,以创建一个“默认”设置,阻止学生向尽可能多的人发送愚蠢的消息。然后,我们增加了员工的邮箱收件人限制。使用 Exchange Online,我们已配置默认邮箱计划以设置新邮箱的低收件人限制,并且我们像以前一样手动增加员工。但是,正如上面的文章/引文中提到的,MaxRecipientEnvelopeLimit
只有在发件人的邮箱RecipientLimits
设置为无限制时才适用(事实并非如此)。
Exchange 在线:
PS C:\> Get-TransportConfig | fl MaxRecipientEnvelopeLimit
MaxRecipientEnvelopeLimit : Unlimited
PS C:\> Get-Mailbox [email protected] | fl RecipientLimits
RecipientLimits : 500
如果我正确理解了微软的文章,那么在传递内部邮件时唯一应该生效的设置是发件人邮箱的收件人限制,除非将其设置为无限制,在这种情况下MaxRecipientEnvelopeLimit
将应用传输配置。
我不知道 NDR 的400
限制从何而来。我们本地服务器上的收件人(仅限员工)的邮箱都RecipientLimits
设置为 400,但他们正在接收电子邮件,而不是发送电子邮件,因此这不应该适用。我能想到的唯一另一件事是,在我将发件人的邮箱迁移到 Exchange Online 之前,他们的RecipientLimits
邮箱应该在本地设置为 400。但由于他们的邮箱不再存在于本地,我无法更改它,并且限制也不应该存在/应用,除非它是一个错误。
答案1
根据 NDR 消息,它似乎是从您的内部部署 Exchange 服务器(server1.domain.com)生成的,对吗?
您是否启用了集中邮件传输?如果您执行邮件跟踪,是否可以在本地 Exchange 服务器上找到此电子邮件:
Get-MessageTrackingLog -EventId RECEIVE -Source SMTP -Sender <[email protected]> -Recipients <[email protected]> -Start "<Start Time and Date>" -End "<End Time and Date>" -MessageSubject <Subject> | Sort-Object -Property @{Expression = "Timestamp"; Descending = $false} | ft Timestamp, EventId, Source, Sender, Recipients, MessageSubject, ConnectorId -AutoSize
如果有一个连接器的条目接收到了此消息,那么以下检查可能会有所帮助:
运行以下命令来检查连接器的收件人限制:
Get-ReceiveConnector -Identity "<ConnectorId>" | fl MaxRecipient*
如果限制低于收件人数量(
469
),请尝试使用更大的数字进行调整(例如500):Get-ReceiveConnector -Identity "<ConnectorId>" | Set-ReceiveConnector -MaxRecipientsPerMessage 500
然后调整组织收件人限制:
Get-TransportConfig | Set-TransportConfig -MaxRecipientEnvelopeLimit 500
最后,重新启动MS Exchange 传输服务在本地服务器上并再次发送电子邮件,看看是否有任何差异。