7

이 문제는 EWS를 통해 인라인 이미지 (첨부 파일)가있는 HTML 메시지를 보내려고 할 때 나타났습니다. 그러나 나는 가장 간단한 형태로 되돌아 왔고 심지어 HTML 메시지를 보낼 수 없다는 것을 알았다.Exchange 웹 서비스 (2010 SP1)에서 HTML (multipart/alternative)을 보내려면 어떻게합니까?

C#, .NET 4, EWS API 1.1, Exchange Server 2010 SP1을 사용하고 있습니다.

Subject: Test HTML Message #001 
Thread-Topic: Test HTML Message #001 
Thread-Index: Acuy3U6nqQTa4W4ZQu6ueHPb2nPDPg== 
Date: Thu, 13 Jan 2011 04:49:48 +0000 
Message-ID: <[email protected]> 
Accept-Language: en-US 
Content-Language: en-US 
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-originating-ip: [x.x.x.x] 
Content-Type: text/plain; charset="us-ascii" 
Content-Transfer-Encoding: quoted-printable 
MIME-Version: 1.0 
X-Spam: [F=0.2000000000; CM=0.500; S=0.200(2010122901)] 
X-MAIL-FROM: <[email protected]> 
X-SOURCE-IP: [67.136.148.58] 
X-AnalysisOut: [v=1.0 c=1 a=WYc53Y7r_f4A:10 a=BLceEmwcHowA:10 a=kj9zAlcOel] 
X-AnalysisOut: [0A:10 a=xqWC_Br6kY4A:10 a=ERe/uVw5acJt2lgRGY+7Og==:17 a=10] 
X-AnalysisOut: [TGqZ3wK2PL4t1FdnoA:9 a=mfhh-WWaJa5gWHOyyF854Vzt7EAA:4 a=Cj] 
X-AnalysisOut: [uIK1q_8ugA:10] 

This is a test HTML message. 

Did it work? 

더 MIME 선언이 없습니다없고 text/html과이 : 나는 다음과 같은 내용으로 메시지가 해당 코드를 사용

ExchangeConnection = new ExchangeService(ExchangeVersion.Exchange2010_SP1); 
ExchangeConnection.Credentials = new WebCredentials(Username, Password, Domain); 
ExchangeConnection.Url = new Uri(ServiceURI); 

string MailBody = @"<html><head></head><body> 
    This is a <b>test</b> <strong>HTML</strong> <em>message</em>.<br><br> 
    Did it work?</body></html>"; 

NewMessage = new EmailMessage(ExchangeConnection); 
NewMessage.Subject = "Test HTML Message #001"; 
NewMessage.Body = MailBody; 
NewMessage.Body.BodyType = BodyType.HTML; 
NewMessage.ToRecipients.Add("[email protected]"); 
NewMessage.Send(); 

: 여기

내 코드의 핵심입니다 섹션.

나는 이런 식으로 뭔가를 얻을 수 (동일한 Exchange 서버에) 아웃룩을 통해 유사한 메시지를 보낼 경우

Subject: Test From Outlook 
Thread-Topic: Test From Outlook 
Thread-Index: AcuzMwJCFB8PS6wYQeeV4IeSkT/mxQ== 
Date: Thu, 13 Jan 2011 15:03:17 +0000 
Message-ID: <[email protected]> 
Accept-Language: en-US 
Content-Language: en-US 
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-originating-ip: [x.x.x.x] 
Content-Type: multipart/alternative; 
    boundary="_000_E026BAD23A27DB42B74F0DB569E9986977F237CHALLENGERDenverZ_" 
MIME-Version: 1.0 
X-Spam: [F=0.2000000000; CM=0.500; S=0.200(2010122901)] 
X-MAIL-FROM: <[email protected]> 
X-SOURCE-IP: [67.136.148.58] 
X-AnalysisOut: [v=1.0 c=1 a=olvCdMnC_oMA:10 a=BLceEmwcHowA:10 a=xqWC_Br6kY] 
X-AnalysisOut: [4A:10 a=ERe/uVw5acJt2lgRGY+7Og==:17 a=2iPVs5MlqxP_VJ4oz58A] 
X-AnalysisOut: [:9 a=x0_hJeNGqEWpZ67nkUaF-VHO8CMA:4 a=CjuIK1q_8ugA:10 a=yM] 
X-AnalysisOut: [hMjlubAAAA:8 a=SSmOFEACAAAA:8 a=bSa8Y9cTgW9e4uXm0lgA:9 a=w] 
X-AnalysisOut: [EVqP49dmlVP1afgSrUA:7 a=MTMROL1LpFqQeTH2_C9armvf4mgA:4] 

--_000_E026BAD23A27DB42B74F0DB569E9986977F237CHALLENGERDenverZ_ 
Content-Type: text/plain; charset="us-ascii" 
Content-Transfer-Encoding: quoted-printable 

This is an HTML message. 

What do the headers look like? 

Tony 

--_000_E026BAD23A27DB42B74F0DB569E9986977F237CHALLENGERDenverZ_ 
Content-Type: text/html; charset="us-ascii" 
Content-Transfer-Encoding: quoted-printable 

<html xmlns:v=3D"urn:schemas-microsoft-com:vml" xmlns:o=3D"urn:schemas-micr= 
... the correct html code for the message follows here ... 

사람이 사용하는 코드를 통해 두 번째 같은 메시지를 가져 오는 방법을 나에게 설명 할 수 EWS? 감사!

답변

2

방금 ​​비슷한 문제가있었습니다. 마침내 적절한 다중 부분 MIME 텍스트 및 HTML 대신 전자 메일의 엉망 버전을 수신하는 특정 계정 하나에이 메시지가 표시되었습니다. 이 계정이 Exchange의 MAPI 서식있는 텍스트 전자 메일 (일반 탭)에 "기본 설정 사용"을 설정했는데 다른 계정이 "사용 안 함"으로 설정된 경우 문제가 발생합니다.

Exchange는 기본적으로 Exchange에서 연락처 전자 메일을 보냈고 "스마트"하고 Outlook 용 독점 형식으로 보내려고했지만 Outlook 용 클라이언트는 Outlook을 사용하지 않았기 때문에 문제는 없었습니다. 이메일을 올바르게 볼 수 없습니다. 나는이 설정을 사용자가 아닌 글로벌 수준에서 변경할 수도 있다고 생각하지만, 그 위치가 어디인지는 잘 모르겠습니다.

Outlook을 통해 보낼 때 작동하는 이유는 Outlook 2010에서 EWS 관리 API가이를 수행 할 수없는 것처럼 보이지만 메시지를 HTML 형식으로 보내는 전자 메일을 보낼 수 있기 때문입니다.

0

방금 ​​무슨 일이 일어나고 설정을 변경하는지 설명하는 page을 찾았습니다. |

문제가 다음 교환 PowerShell을 실행하는 데 무엇인지 밝혀 우리가 확인 마지막 것은 "GET-RemoteDomain을 :

는 결론이다 fl ". 그런 다음 콘텐츠 유형이 "모든 메시지를 텍스트 형식을 사용하는 MIME 메시지 (예 : 일반 텍스트)로 변환하는 MimeText"로 설정되었음을 확인했습니다. 그런 다음 내용 유형을 mimehtmltext로 변경했습니다 (원본 메시지가 텍스트 메시지가 아닌 경우 HTML 형식을 사용하는 MIME 메시지로 메시지를 변환합니다. 원본 메시지가 텍스트 메시지 인 경우 아웃 바운드 메시지는 텍스트 형식을 사용하는 MIME 메시지입니다). 다음 명령을 실행하십시오. "get-remotedomain | set-remotedomain -ContentType MimeHtmlText "를 참조하십시오.

관련 문제