Симптоми
Имайте предвид сценария, описан по-долу:
- Изпращате имейл съобщение чрез пощенска кутия на Microsoft Exchange Server 2016 или пощенска кутия на Exchange Server 2013.
- Редът за темата на имейл съобщението съдържа неподдържани кодирани знаци, започващи от CP или MS и следвани от "-" вместо с цифра, като например cp-850.
В този случай имейлът не се доставя. Освен това може да получите съобщение за недоставяне, което е подобно на следното:
Забележка
Remote Server върна '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, отваряйте файловете в Notepad.
Във всеки файл добавете следните конфигурационни елементи под конфигурационния елемент:
Забележка Единствената разлика в елемента е "Версия". Например използвайте "Version=15.0.1366.0" за сборна актуализация 20 за 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>Бележки:
а) Секцията configSections трябва да бъде първият елемент на конфигурационния елемент, който се налага от .Net. Ако не, транспортната услуга спира да отговаря при стартиране.
б) Версията, културата и публичният маркер на пакета 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 потвърждава, че това е проблем в продуктите на Microsoft, които са изброени в раздела „Важи за“.
Справки
Научете повече относно терминологията, която Microsoft използва за описване на актуализациите на софтуера.