症状
请考虑以下情况:
-
使用 Microsoft Exchange Server 2016 邮箱或 Exchange Server 2013 邮箱发送电子邮件。
-
电子邮件的主题行包含不受支持的编码字符,从 CP 或 MS 开始,后跟“-”而不是数字,例如 cp-850。
在这种情况下,不会传递电子邮件。 此外,你可能会在 NDR) 消息 (收到未送达报告,如下所示:
远程服务器返回了 '550 5.6.0 CAT。InvalidContent.Exception:InvalidCharsetException,字符集名称 (cp-850) 无效或未安装。;无法使用 InternalId InternalId、InternetMessageId 处理消息的内容。
因此,无法将 NDR 的 cp-850 字符邮件的日记报告电子邮件传递到 Exchange 日记目标邮箱。
原因
出现此问题的原因是,如果主题行包含不受支持的编码字符,Exchange Server 2016 和 Exchange Server 2013 不会处理电子邮件。
解决方案
若要解决此问题,请安装下列任一更新:
-
对于 Exchange Server 2016,请为 Exchange Server 2016 安装累积更新 9 或更高版本的累积更新。
-
对于 Exchange Server 2013,请为 Exchange Server 2013 安装累积更新 20 或更高版本的累积更新。
此外,还有一项功能可用于启用回退,以使用配置文件中的默认字符集。 如果启用此功能,则可以传递主题行中编码字符不受支持的电子邮件。 若要启用此功能,请执行以下步骤:
-
配置这两个文件:EdgeTransport.exe.config 和 MSExchangeDelivery.exe.config。
-
备注 默认情况下,这两个文件位于以下文件夹中:C:\Program Files\Microsoft\Exchange Server\V14\Bin,在记事本中打开文件。
-
在每个文件中,在 配置元素下添加以下配置元素:
注意 元素中的唯一区别是“版本”。 例如,对 Exchange Server 2013 累积更新 20 使用“Version=15.0.1366.0”,对 Exchange Server 2016 累积更新 9 使用“Version=15.1.1462.0”。
<configSections> <section name="CTS" type="Microsoft.Exchange.Data.Internal.CtsConfigurationSection, Microsoft.Exchange.Data.Common, Version=15.0.1366.0, Culture=Neutral, PublicKeyToken=31bf3856ad364e35" /> </configSections> <CTS> <Globalization> <FallbackToDefaultCharset Fallback="true"/> <DefaultCulture Culture="en"/> </Globalization> </CTS>
注意:
a) configSections 节必须是 .Net 强制实施的配置元素的第一个元素。 否则,传输服务在启动时停止响应。
b) Microsoft.Exchange.Data.Common 程序集的版本、区域性和公共令牌必须正确。 可以从全局程序集缓存 (GAC) 中找到它们。
c) FallbackToDefaultCharset 元素用于打开或关闭此功能。 可以通过将 回退 属性设置为 true 或 false 来打开或关闭此功能。
d) 如果不支持电子邮件上的字符集, 则 DefaultCUlture 元素用于指定回退区域性。 必须将 Culture 属性设置为有效的区域性名称。 否则,Exchange 将使用当前线程的区域性作为回退区域性。 在示例配置中,回退区域性设置为“en”。
-
-
保存 EdgeTransport.exe.config 和 MSExchangeDelivery.exe.config 文件。
-
重启传输服务以生效。
注意 必须仔细编辑配置文件。 诊断没有跟踪或事件日志。 如果配置文件中存在拼写错误,该功能将无法按预期工作。 此外,请注意,对于具有不支持字符集的消息,我们不保证在收到消息时包含任何消息,也不保证收到此消息时导致的任何消息的保真度。
此外,这里有一个相关链接供你参考:主题行中包含不受支持的编码字符的电子邮件不会在 Exchange Server 2010 环境中传递。
详细信息
将此更新与更新 EdgeTransport.exe.config 文件一起应用后,可能会出现问题。 在安装 Exchange Server 2016 或 Exchange Server 2013 的后续累积更新期间使用 Set-AppConfigValue 更新 EdgeTransport.exe.config 文件时,可能会收到以下错误消息:
Microsoft.Exchange.Data.Common.LocalizedException:Set-AppConfigValue:在文件 F:\Program Files\Microsoft\Exchange Server\V15\bin\EdgeTransport.exe.config 中找到节点部分,但它不是唯一的。
若要解决此问题,在针对 Exchange Server 2016 或 Exchange Server 2013 运行后续累积更新之前,应执行以下步骤从 EdgeTransport.exe.config 文件中删除上面列出的 CTS 部分:
-
停止所有 Exchange 服务。
-
复制并保存 EdgeTransport.exe.config 文件。
-
从 EdgeTransport.exe.config 文件中删除上面列出的以下 CTS 节 () 。<CTS> <全球化> <FallbackToDefaultCharset Fallback=“true”/> <DefaultCulture Culture=“en”/> </全球化> </CTS>
-
保存更新的 EdgeTransport.exe.config 文件。
-
运行 Exchange Server 2016 或 Exchange Server 2013 的更高累积更新设置。
-
安装完成后,请立即按照本文更新 EdgeTransport.exe.config 文件。
状态
Microsoft 已经确认这是一个列于“适用范围”部分的 Microsoft 产品问题。
参考
了解 Microsoft 用于描述软件更新的术语。