Sintomas
Considere o seguinte cenário:
- Você envia uma mensagem de email usando uma caixa de correio do Microsoft Exchange Server 2016 ou do Exchange Server 2013.
- A linha de assunto da mensagem de email contém caracteres codificados sem suporte, começando por CP ou MS e seguido por "-" em vez de um número, como cp-850.
Nesse cenário, o email não é entregue. Além disso, você pode receber uma mensagem de NDR (notificação de falha na entrega) semelhante à seguinte:
Observação
O servidor remoto retornou '550 5.6.0 CAT. InvalidContent.Exception: InvalidCharsetException, O nome do conjunto de caracteres (cp-850) é inválido ou não está instalado.; não é possível lidar com o conteúdo da mensagem com InternalId, InternalId, InternetMessageId.'
Portanto, os emails de relatório de diário do NDR para emails de cp-850 caracteres não podem ser entregues às caixas de correio de destino do diário do Exchange.
Causa
Esse problema ocorre porque o Exchange Server 2016 e o Exchange Server 2013 não processam uma mensagem de email se a linha do assunto contiver caracteres codificados sem suporte.
Resolução
Para resolver esse problema, instale uma das seguintes atualizações:
- Para o Exchange Server 2016, instale a Atualização Cumulativa 9 ou uma atualização cumulativa posterior para o Exchange Server 2016.
- Para o Exchange Server 2013, instale a Atualização Cumulativa 20 ou uma atualização cumulativa posterior para o Exchange Server 2013.
Além disso, um recurso está disponível para habilitar o fallback para usar o conjunto de caracteres padrão no arquivo de configuração. Se você habilitar esse recurso, as mensagens de email com caracteres codificados sem suporte na linha de assunto poderão ser entregues. Para habilitar esse recurso, siga estas etapas:
Configure estes dois arquivos: EdgeTransport.exe.config e MSExchangeDelivery.exe.config.
Observação Por padrão, esses dois arquivos estão localizados na seguinte pasta: C:\Program Files\Microsoft\Exchange Server\V14\Bin, abra arquivos no Bloco de Notas.
Em cada arquivo, adicione os seguintes elementos de configuração no elemento de configuração:
Observação A única diferença no elemento é "Version". Por exemplo, use "Version=15.0.1366.0" para a Atualização Cumulativa 20 do Exchange Server 2013, "Version=15.1.1462.0" para a Atualização Cumulativa 9 do Exchange Server 2016.
<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>Observações:
a) A seção configSections deve ser o primeiro elemento do elemento de configuração imposto pelo .Net. Caso contrário, o serviço de Transporte deixará de responder quando for iniciado.
b) A versão, a cultura e o token público do assembly Microsoft.Exchange.Data.Common devem estar corretos. Você pode encontrá-los no GAC (Cache de Assembly Global).
c) O elemento FallbackToDefaultCharset é usado para ativar ou desativar esse recurso. Você pode ativar ou desativar esse recurso definindo o atributo Fallback como verdadeiro ou falso.
d) O elemento DefaultCUlture é especificar uma cultura de fallback se o conjunto de caracteres na mensagem de email não tiver suporte. Você deve definir o atributo Culture como um nome de cultura válido. Caso contrário, o Exchange usará a cultura do thread atual como a cultura de fallback. Na configuração de exemplo, a cultura de fallback é definida como "en".
Salve os arquivos EdgeTransport.exe.config e MSExchangeDelivery.exe.config.
Reinicie o serviço de Transporte para entrar em vigor.
Observação O arquivo de configuração deve ser editado cuidadosamente. Não há rastreamentos ou logs de eventos para diagnósticos. O recurso não funcionará conforme o esperado se houver um erro de digitação no arquivo de configuração. Além disso, observe que, para uma mensagem que possui charset incompatível, não garantiremos nada com a mensagem quando ela for recebida e não garantiremos a fidelidade de nenhuma mensagem causada por esta mensagem quando for recebida.
Além disso, aqui está um link relacionado para você consultar: Uma mensagem de email que contém caracteres codificados sem suporte na linha de assunto não é entregue em um ambiente do Exchange Server 2010.
Mais informações
Pode ocorrer um problema após a aplicação desta atualização juntamente com a atualização do arquivo EdgeTransport.exe.config. Quando o arquivo EdgeTransport.exe.config estiver sendo atualizado com Set-AppConfigValue durante a instalação de uma atualização cumulativa posterior para o Exchange Server 2016 ou Exchange Server 2013, você poderá receber a seguinte mensagem de erro:
Microsoft.Exchange.Data.Common.LocalizedException: Set-AppConfigValue: A seção do nó foi encontrada no arquivo F:\Program Files\Microsoft\Exchange Server\V15\bin\EdgeTransport.exe.config, mas não é exclusiva.
Para corrigir o problema, antes de executar uma atualização cumulativa posterior para o Exchange Server 2016 ou Exchange Server 2013, você deve seguir as seguintes etapas para remover a seção CTS conforme listada acima do arquivo EdgeTransport.exe.config:
- Pare todos os serviços do Exchange.
- Copie e salve o arquivo EdgeTransport.exe.config.
- Remova a seguinte seção CTS (conforme listado acima) do arquivo EdgeTransport.exe.config.
<CTS>
<Globalization><FallbackToDefaultCharset fallback="true"/>
<DefaultCulture Culture="en"/>
</Globalização>
</CTS>
- Salve o arquivo EdgeTransport.exe.config atualizado.
- Execute a instalação de uma atualização cumulativa posterior do Exchange Server 2016 ou do Exchange Server 2013.
- Assim que a instalação for concluída, siga este artigo para atualizar o arquivo EdgeTransport.exe.config.
Status
A Microsoft confirmou que este é um problema nos produtos da Microsoft listados na seção "Aplica-se a".
Referências
Saiba mais sobre a terminologia que a Microsoft usa para descrever atualizações de software.