7

この問題は、EWS を介してインライン画像 (添付ファイル) を含む HTML メッセージを送信しようとしていたときに明らかになりました。しかし、私は最も単純なフォームに戻って、HTML メッセージを送信することさえできないことに気付きました。

C#、.NET 4、EWS API 1.1、Exchange Server 2010 SP1 を使用しています。

これが私のコードの核心です:

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();

そのコードを使用すると、次の内容のメッセージを受け取ります。

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?  

MIME 宣言はなく、text/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 ...

EWS を使用してコードから 2 番目のようなメッセージを取得する方法を誰か説明してもらえますか? ありがとう!

4

2 に答える 2

2

私は非常によく似た問題を抱えていました。最終的に、適切なマルチパート MIME テキストと HTML ではなく、破損したバージョンの電子メールを受信して​​いた 1 つの特定のアカウントに突き止めました。問題は、他のアカウントが「使用しない」に設定されているときに、このアカウントが Exchange で MAPI リッチ テキスト メール ([全般] タブ) に「既定の設定を使用する」ように設定されていたことです。

つまり、基本的に問題は、Exchange が送信先の連絡先電子メールを認識し、「賢く」なり、Outlook 専用の形式で送信しようとしたが、そのアドレスのクライアントが Outlook を使用していなかったため、送信できなかったことです。メールを正しく表示します。この設定をユーザーごとではなくグローバル レベルで変更することも可能だと思いますが、それがどこにあるのかわかりません。

Outlook 経由で送信した場合に機能する理由は、Outlook 2010 がメッセージを強制的に HTML 形式にする方法で電子メールを送信できるのに対し、EWS マネージ API はそれを実行できないように見えるためです。

于 2011-02-17T18:50:57.543 に答える
0

何が起こっているのか、設定を変更する方法を説明しているこのページを見つけました。

これが彼らの結論です:

私たちが最後に確認したことは、次の exchange powershell を実行することで何が問題であったかを明らかにしました。フロリダ」。次に、コンテンツ タイプが MimeText に設定されていることを発見しました。これは、「すべてのメッセージを、テキスト形式を使用する MIME メッセージに変換する」(つまり、プレーン テキスト) ものです。次に、コンテンツ タイプを mimehtmltext に変更しました (元のメッセージがテキスト メッセージでない限り、メッセージを HTML 形式を使用する MIME メッセージに変換します。元のメッセージがテキスト メッセージの場合、送信メッセージはテキスト形式を使用する MIME メッセージです)。次のコマンドを実行します。set-remotedomain -ContentType MimeHtmlText」.

于 2011-11-11T16:50:09.680 に答える