Exchange server 如何从Exchange Web服务(2010 SP1)发送HTML(多部分/可选)

Exchange server 如何从Exchange Web服务(2010 SP1)发送HTML(多部分/可选),exchange-server,exchangewebservices,ews-managed-api,exchange-server-2010,Exchange Server,Exchangewebservices,Ews Managed Api,Exchange Server 2010,当我试图通过EWS发送带有内联图像(附件)的HTML消息时,这个问题被曝光了。然而,我已经退回到最简单的形式,发现我甚至不能发送HTML消息 我正在使用C#、.NET4、EWSAPI1.1、ExchangeServer2010SP1 以下是我的代码的核心: ExchangeConnection = new ExchangeService(ExchangeVersion.Exchange2010_SP1); ExchangeConnection.Credentials = new WebCrede

当我试图通过EWS发送带有内联图像(附件)的HTML消息时,这个问题被曝光了。然而,我已经退回到最简单的形式,发现我甚至不能发送HTML消息

我正在使用C#、.NET4、EWSAPI1.1、ExchangeServer2010SP1

以下是我的代码的核心:

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("tony@zierniemann.com");
NewMessage.Send();
ExchangeConnection=新的ExchangeService(ExchangeVersion.Exchange2010\u SP1);
ExchangeConnection.Credentials=新的WebCredentials(用户名、密码、域);
Url=新的Uri(ServiceURI);
字符串MailBody=@”
这是一条测试HTML消息。

它起作用了吗?”; NewMessage=新的EmailMessage(ExchangeConnection); NewMessage.Subject=“测试HTML消息#001”; NewMessage.Body=MailBody; NewMessage.Body.BodyType=BodyType.HTML; NewMessage.ToRecipients.Add(“tony@zierniemann.com"); NewMessage.Send();
使用该代码,我收到一条包含以下内容的消息:

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: <2FDB41070D0AC24DB5BC8B80751063630B74A5@xxxxx.com>
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: <planit@xxxxx.com>
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?  
主题:测试HTML消息#001
线程主题:测试HTML消息#001
螺纹索引:Acuy3U6nqQTa4W4ZQu6ueHPb2nPDPg==
日期:2011年1月13日星期四04:49:48+0000
消息ID:
接受语言:en US
内容语言:en US
X-MS-Has-Attach:
X-MS-TNEF-相关器:
x-origing-ip:[x.x.x.x]
内容类型:文本/纯文本;charset=“us ascii”
内容传输编码:引用可打印
MIME版本:1.0
X-Spam:[F=0.2000000000;CM=0.500;S=0.200(2010122901)]
X-MAIL-FROM:
X源IP:[67.136.148.58]
X-AnalysisOut:[v=1.0C=1A=WYc53Y7r_f4A:10A=BLceEmwcHowA:10A=kj9zAlcOel]
X-AnalysisOut:[0A:10a=xqWC_Br6kY4A:10a=ERe/uVw5acJt2lgRGY+7Og==:17a=10]
X-AnalysisOut:[TGqZ3wK2PL4t1FdnoA:9A=mfhh-WWaJa5gWHOyyF854Vzt7EAA:4A=Cj]
X-AnalysisOut:[uIK1q_8ugA:10]
这是一条测试HTML消息。
它起作用了吗?
没有MIME声明,也没有文本/html节

如果我通过Outlook(在同一台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: <E026BAD23A27DB42B74F0DB569E9986977F237@CHALLENGER.DenverZoo.lan>
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: <tonyn@xxxx.com>
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 ...
主题:从Outlook进行测试
线程主题:从Outlook进行测试
线程索引:AcuzMwJCFB8PS6wYQeeV4IeSkT/mxQ==
日期:2011年1月13日星期四15:03:17+0000
消息ID:
接受语言:en US
内容语言:en US
X-MS-Has-Attach:
X-MS-TNEF-相关器:
x-origing-ip:[x.x.x.x]
内容类型:多部分/备选;
边界=“_000_E026BAD23A27DB42B74F0DB569E9986977F237CHALLENGERDenverZ_”
MIME版本:1.0
X-Spam:[F=0.2000000000;CM=0.500;S=0.200(2010122901)]
X-MAIL-FROM:
X源IP:[67.136.148.58]
X-AnalysisOut:[v=1.0C=1A=olvCdMnC\U oMA:10A=BLceEmwcHowA:10A=xqWC\U Br6kY]
X-AnalysisOut:[4A:10A=ERe/uVw5acJt2lgRGY+7Og==:17A=2iPVs5MlqxP_VJ4oz58A]
X-AnalysisOut:[:9A=x0_hJeNGqEWpZ67nkUaF-VHO8CMA:4A=CjuIK1q_8ugA:10A=yM]
X-AnalysisOut:[hMjlubAAAA:8a=ssmofecaaaa:8a=bSa8Y9cTgW9e4uXm0lgA:9a=w]
X-AnalysisOut:[EVqP49dmlVP1afgSrUA:7 a=MTMROL1LPQQETH2_C9armvf4mgA:4]
--_000_e026bad23a27db42b74f0db569e9986977f237f237f23challengerdenverz_
内容类型:文本/纯文本;charset=“us ascii”
内容传输编码:引用可打印
这是一条HTML消息。
标题看起来像什么?
托尼
--_000_e026bad23a27db42b74f0db569e9986977f237f237f23challengerdenverz_
内容类型:text/html;charset=“us ascii”
内容传输编码:引用可打印

我只是有一个非常相似的问题。我们最终将其锁定在一个特定的帐户上,该帐户接收到的是一封破损版本的电子邮件,而不是正确的多部分MIME文本和HTML。问题是,此帐户是在Exchange中设置为对MAPI富文本电子邮件(在“常规”选项卡中)使用“默认设置”,而其他帐户设置为“从不”

因此,问题基本上是Exchange知道联系人电子邮件被发送到,并尝试“智能”并以Outlook专有格式发送,但该地址的客户端未使用Outlook,因此他们无法正确查看电子邮件。我认为也可以在全局级别而不是用户级别更改此设置,但我不确定它在哪里

当通过Outlook发送邮件时,它起作用的原因是Outlook 2010能够以强制邮件为HTML格式的方式发送电子邮件,而EWS管理的API似乎无法做到这一点。

我刚刚发现了这一点,它解释了发生了什么以及如何更改设置

他们的结论是:

我们检查的最后一件事揭示了运行以下exchange powershell“get remotedomain | fl”的问题所在。然后我们发现内容类型被设置为MimeText,它“将所有消息转换为使用文本格式的MIME消息”(即纯文本)。然后,通过运行以下命令,我们将内容类型更改为mimehtmltext(将消息转换为使用HTML格式的MIME消息,除非原始消息是文本消息。如果原始消息是文本消息,则出站消息是使用文本格式的MIME消息“获取remotedomain |设置remotedomain-ContentType MimeHtmlText”