
저는 Windows 7(둘 다 최신 패치로 업데이트됨)에서 "온라인" 모드("캐시된 Exchange 모드 사용" 설정이 비활성화되어 있으며 일반적으로 기본적으로 활성화되어 있음)에서 Outlook 2013을 사용합니다.
다음과 같은 XML 태그가 포함된 이메일(Exchange 서버의 HTML 형식)을 받은 경우:
the customers age is in the <age> element
그러면 정상적으로 작동하지만 이메일 메시지를 로컬 데이터 폴더로 이동하고 거기에서 열면 텍스트는 다음과 같습니다.
the customers age is in the element
XML 태그가 사라집니다.
원본 메시지에서는 다음과 같이 소스 코드가 정확하다는 사실을 자세히 살펴보았습니다.
the customers age is in the <age> element
이동한 후에는 다음과 같습니다.
the customers age is in the <age> element
렌더러는 "unknown" 태그를 무시합니다.
왜 이런 일이 발생하고 어떻게 해결하는지 아시나요?
바이러스 백신 SW를 의심자 목록에서 제외했습니다(제거 및 치료 후 테스트 반복).
"캐시된 Exchange 모드 사용"을 활성화하여 계정 설정을 변경하면 문제가 사라집니다(깨진 로컬 데이터 폴더의 오래된 메시지는 제외하고 손상된 상태로 유지됩니다). 이것이 캐시 모드의 알려진 문제입니까?
답변1
캐시된 Exchange 모드가 비활성화되면 Outlook 2013에서 내보낸 메시지의 XML이 인스턴스화됩니다. 구체적으로,
XML 엔터티
of 는 및 로 <
대체됩니다 . 결과는 메시지의 정확한 복사본이 아닙니다.<
>
>
이는 파일 시스템으로 드래그 앤 드롭을 사용하거나 파일/다른 이름으로 저장 메뉴를 사용할 때 모두 발생합니다. 나는 Microsoft 기사의 VBA 예제를 사용하여 VBA를 시도해 볼 것을 제안했습니다. MailItem.SaveAs 메서드(Outlook) (보다 Outlook의 VBA 편집기를 사용하는 방법), 그러나 이것이 결과를 바꿀 것이라고는 믿지 않습니다.
내 결론은 이것이 Exchange의 일반적인 버그(또는 잘못된 구현)라는 것입니다. 캐시 모드는 메시지가 로컬 캐시에서 파일 시스템에 있는 그대로 기록되는 해결 방법을 제공합니다. Microsoft에서는 의도하지 않았을 수도 있습니다. 그러나 Exchange 서버에서 메시지를 요청할 때 XML 인스턴스화는 항상 수행되며 모든 내보내기 메커니즘이 동일한 결과를 제공하므로 아마도 서버 측에서 수행됩니다. 로컬에 설치된 Outlook 버전은 Exchange 서버에서 수행되는 XML 인스턴스화를 수행하지 않습니다.
따라서 불행하게도 경험적 결론은 적어도 현재로서는 XML 인스턴스화를 피하기 위해 "캐시된 교환 모드"를 활성화해야 한다는 것입니다.