2017-10-05 8 views
0

다음 함수는 IConverterSession을 사용하여 디스크의 mhtm 파일에서 새 메시지를 만듭니다. Outlook 버전 < 2016을 사용하면 CSS 스타일 및 포함 된 그림을 포함한 html 형식의 메시지가 생성됩니다. 아웃룩 2016로, 파일의 원래 MIME 코드는 ... 텍스트 본문으로 메일에 추가됩니다IConverterSession :: MIMEtoMAPI가 Outlook 2016에서 작동하지 않습니다.

HRESULT ImportEMLToIMessage 
(
    LPCWSTR   lpszEMLFile, 
    LPMESSAGE  lpMsg, 
    ULONG   ulConvertFlags 
) 
{ 
    HRESULT rv= S_OK; 
    if (lpszEMLFile&&lpMsg) { 
     // try to create an instance of the converter 
     // interface (CoCreateInstance/DllGetClassObject) 
     LPCONVERTERSESSION lpConverter = CreateConverterSession(); 
     if (lpConverter) { 
     // open input stream 
     LPSTREAM lpEMLStm = NULL; 
     rv= MyOpenStreamOnFile(fctAllocateBuffer, fctFreeBuffer, 
         STGM_READ, lpszEMLFile, NULL, &lpEMLStm); 
     if (lpEMLStm&&SUCCEEDED(rv)) { 
      rv= lpConverter->SetEncoding(IET_QP); 
      if (SUCCEEDED(rv)) { 
      rv= lpConverter->SetSaveFormat(SAVE_RFC1521); 
      } 
      if (SUCCEEDED(rv)) { 
      rv= lpConverter->MIMEToMAPI(lpEMLStm, lpMsg, NULL, ulConvertFlags); 
      if (SUCCEEDED(rv)) { 
       rv= lpMsg->SaveChanges(NULL); 
      } 
      } 
      lpEMLStm->Release(); 
     } 
     } 
     lpConverter->Release(); 
    } 
    } 
    return rv; 
} 

사람이 어떻게 2016 Outlook에서이 작품을 만들기 위해 알고 있나요? 감사.

답변

0

몇 가지 :
1. SetEncoding을 왜 호출합니까?
2. MIME 파일을 가져 오는 경우 왜 SetSaveFormat이 필요합니까?
3. ulConvertFlags의 값은 무엇입니까? 변수를 초기화하지 않습니다.

OutlookSpy (IConverterSession | MIMEToMAPI 클릭)에서 문제가 보이나요?

속성을 먼저 "IPM.Note"로 설정할 수도 있습니다. 해당 기능 MAPIToMIME에서 복사

+0

1,2), 3) ulConvertFlags = CCSF_SMTP | CCSF_USE_RTF | 3 1과 2에 대한 필요가 없습니다 CCSF_EMBEDDED_MESSAGE –

+0

, CCSF_SMTP 만보십시오. OutlookSpy에서 MIMEToMAPI를 사용해 보셨습니까? –