Признаки
Рассмотрим следующий сценарий:
-
Вы отправляете сообщение электронной почты с помощью почтового ящика 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.
Таким образом, сообщения о недоставленном отчете журнала для почты cp-850 не могут быть доставлены в почтовые ящики журнала Exchange.
Причина
Эта проблема возникает из-за того, что Exchange Server 2016 и Exchange Server 2013 не обрабатывают сообщение электронной почты, если строка темы содержит неподдерживаемые символы.
"Разрешение"
Чтобы устранить эту проблему, установите одно из следующих обновлений:
-
Для Exchange Server 2016 установите накопительное обновление 9 или более позднюю версию накопительного обновления для Exchange Server 2016.
-
Для Exchange Server 2013 установите накопительное обновление 20 или более поздней версии накопительного обновления для Exchange Server 2013.
Кроме того, доступна функция для включения резервного использования символа по умолчанию в файле конфигурации. Если эта функция включена, сообщения электронной почты с неподдерживаемой кодировкой в строке темы могут быть доставлены. Чтобы включить эту функцию, выполните следующие действия.
-
Настройте следующие два файла: EdgeTransport.exe.config и MSExchangeDelivery.exe.config.
-
Примечание По умолчанию эти два файла находятся в следующей папке: C:\Program Files\Microsoft\Exchange Server\V14\Bin, откройте файлы в Блокноте.
-
В каждом файле добавьте следующие элементы конфигурации в элемент конфигурации:
Примечание Единственное различие в элементе — Version. Например, используйте "Version=15.0.1366.0" для Exchange Server накопительного обновления 2013, "Version=15.1.1462.0" для Exchange Server накопительного обновления 2016 9.
<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).
в) Элемент FallbackToDefaultCharset используется для включения или отключения этой функции. Эту функцию можно включить или отключить, задав для атрибута Fallbackзначение true или false.
г) Элемент DefaultCUlture должен указать резервный язык и региональные параметры, если символ, заданный в сообщении электронной почты, не поддерживается. Необходимо задать для атрибута Culture допустимое имя языка и региональных параметров. Если нет, Exchange будет использовать язык и региональные параметры текущего потока в качестве резервного языка и региональных параметров. В примере конфигурации для резервного языка и региональных параметров задано значение "en".
-
-
Сохраните файлы EdgeTransport.exe.config и MSExchangeDelivery.exe.config.
-
Перезапустите службу транспорта, чтобы она вступила в силу.
Примечание Файл конфигурации необходимо тщательно отредактировать. Для диагностика отсутствуют трассировки или журналы событий. Функция не будет работать должным образом, если в файле конфигурации есть опечатка. Кроме того, обратите внимание, что для сообщения с неподдерживаемым набором символов мы не будем ничего гарантировать с сообщением при его получении и не будем гарантировать точность любых сообщений, вызванных этим сообщением при его получении.
Кроме того, здесь приведена связанная ссылка: сообщение электронной почты, содержащее неподдерживаемые символы в строке темы, не доставляется в среде Exchange Server 2010 года.
Дополнительные сведения
Проблема может возникнуть после применения этого обновления вместе с обновлением файла EdgeTransport.exe.config. При обновлении файла EdgeTransport.exe.config Set-AppConfigValue во время установки более поздней накопительной версии для Exchange Server 2016 или Exchange Server 2013 г., может появилось следующее сообщение об ошибке:
Microsoft.Exchange.Data.Common.LocalizedException: Set-AppConfigValue: раздел узла найден в файле F:\Program Files\Microsoft\Exchange Server\V15\bin\EdgeTransport.exe.config, но он не является уникальным.
Чтобы устранить эту проблему, перед запуском более позднего накопительного обновления для Exchange Server 2016 или Exchange Server 2013, необходимо выполнить следующие действия, чтобы удалить раздел CTS, как указано выше, из файла EdgeTransport.exe.config:
-
Остановите все службы Exchange.
-
Скопируйте и сохраните файл EdgeTransport.exe.config.
-
Удалите следующий раздел CTS (как указано выше) из файла EdgeTransport.exe.config.<CTS> <Globalization> <FallbackToDefaultCharset Fallback="true"/> <DefaultCulture Culture="en"/> </Глобализация> </CTS>
-
Сохраните обновленный файл EdgeTransport.exe.config.
-
Запустите более позднюю установку накопительного обновления Exchange Server 2016 или Exchange Server 2013.
-
После завершения установки следуйте этой статье, чтобы обновить файл EdgeTransport.exe.config.
Состояние
Корпорация Майкрософт подтвердила, что это проблема продуктов Microsoft, перечисленных в разделе «Относится к».
Ссылки
Узнайте о терминологии, используемой корпорацией Майкрософт для описания обновлений программного обеспечения.