Exchange Server 2003 環境の Outlook 2010/2007 で HTML メールを送信すると、メッセージの一部が文字化けしたり、取り消し線が引かれたりする現象について


Outlook 2010 や Outlook 2007 で HTML メールを送信すると、以下のような現象が発生することがあります。

パターン 1: メッセージ中の全角文字が半角英数字になる

この電子メール メッセージはPOP3 $B%"%+%&%s%H$N@_Dj%F%9%HCf$K!

パターン 2: メッセージ中に意味不明な全角文字が混ざる

この電子メール メッセージはw)・鹿齔瘤昭齔瘤€・

パターン 3: 意図しないところで取り消し線が引かれる

この電子メール メッセージはPOP3 アカウントの設定テスト中

このような現象は、以前このブログでも記事にしたことがありますが、すべて下記の Web ページに記載されている Exchange Server 2003 の不具合により発生します。

835992 電子メール メッセージはフォーマットできません正しく、受信者の電子メール メッセージ、Exchange Server 2003 コンピューターから別の Exchange 受信者に送信

回避策としては、Exchange Server 2003 に Service Pack 2 を適用し、以下のレジストリ設定を各サーバーで行うというものになります。

  レジストリ キー: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MSExchangeIS\ParametersSystem\InternetContent
  値の名前: TransferEncodingFor7bit
  値の種類: REG_DWORD
  値のデータ: d (10 進数で 13)

この問題の原因は、Exchange Server 2003 が iso-2022-jp などの 7 ビットの文字コードによりメッセージを送信する際に、HTML の本文を適切に折り返さないことにあります。
インターネットのメール送信に使用される SMTP の規約には 1 行が 998 文字以内という制限があるのですが、Exchange Server 2003 はこれを超える長さの HTML 本文をそのまま送信します。その結果、受信側のサーバーや経路中のサーバー、ファイアウォール、ウイルススキャンゲートウェイなどにより 1 行の長さが 998 文字を超えないようにするため強制的に改行が行われると、エスケープ シーケンスや HTML タグの途中に改行コードが埋め込まれることで、文字化けや意図しない取り消し線などが発生します。
改行コードの埋め込みがされるかどうかは中継サーバーや受信サーバーの設定によって決まるため、同じメールでも受信者によって現象が発生する場合としない場合があります。

ただ、この問題は以前から存在するにもかかわらず、最近になってこのような現象に遭遇するという事例が増えてきています。その理由は Outlook 2010/2007 が HTML メールの作成に使用している Word のコンポーネントの修正にあると考えられます。

下記の技術情報に記載されている Outlook 2007 の修正に HTML メールのソースの量を減らすというものがあります。その修正により、HTML ソースの BODY タグの中のテキストには基本的に改行が含まれなくなっています。

2203971 は、Office Word 2007 修正プログラム パッケージ (Mso ・ x ・ none.msp、Word の X-none.msp) の説明: 2010 年 6 月 29日

そして、この修正は 2010/6/29 以降にリリースされるすべての Word の修正に含まれるため、たとえば MS10-056 のようなセキュリティ修正プログラムを適用しても動作が変わります。
また、Outlook 2010 が使用する Word 2010 のコンポーネントでは、リリース当初からこのような動作となっています。

このような Word の動作により、HTML ソースの 1 行の長さが 998 文字を超える状況が発生しやすくなり、Exchange Server 2003 の不具合が顕在化してしまったのです。
残念ながら、Word の設定ではこの動作を変更することができないため、上記の Exchange Server 2003 の設定変更により対処する必要があります。

なお、HTML メールのソースの 1 行の長さには特に制限が設けられていないため、ソースに極力改行を入れないという Word の動作自体は不具合ではありません。そのため、この動作が変更されることは今後もないでしょう。
また、Outlook 2003 以前のバージョンで Word をメール エディタとして使用して HTML 形式のメールを作成した場合には、1 行の長さが 998 文字を超えることはほとんどありませんが、全く発生しないということではありません。
本文の内容によっては Outlook のバージョンや Word をエディタとして使うかどうか、またメールの形式に関わらず発生することが考えられます。そのため、Exchage Server 2003 での上記の設定を行うことが唯一の完全な回避策です。

広告

Exchange Server 2003 環境の Outlook 2010/2007 で HTML メールを送信すると、メッセージの一部が文字化けしたり、取り消し線が引かれたりする現象について」への2件のフィードバック

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中