fc2ブログ

メールの文字化け@8bitを通さないMTA

ネットワーク
06 /13 2007
メールが文字化けするかどうかは運次第ってのを聞いたことがありました。
送られたメールが、通過するサーバによっては、運が悪いと文字化けするのだとか。
メールの仕組みもウェブの仕組みも、アメリカで誕生したので日本語をうまく扱えないのがあってもおかしくないでしょ?という感じの理屈で。

一理ある…と思いながらも、そうなる理由が分からなかったので喉元通らず引っかかってたんですが、メールの文字化けに関して調べていると、ホントにそういうことってあるそうなんです。

【参考リンク】8bitメールは問題ないのか?
上記ページに詳細があります。一部引用します。

「Shift_JISやEUC-JPなどの文字コードは8bitであり、7bitしか通さない仕様のメールサーバ(Mail Transfer AgentでMTAと略されることが多いです。)を通過した場合、最上位ビットの8bit目が落とされて文字化けメールが発生することがある」

メールは、送信先のサーバにダイレクトに届くわけでなく、いくつかのメールサーバを通過していきます。そのサーバの中に7bit(いわゆる英数字)しか通さないサーバがあったら、8bit(ぶっちゃけて言うと日本語)なデータが壊されてしまう…。つまりは、日本語のメールが文字化けしてしまう、ってこともあり得るんだそうです。
今時、そんなメールサーバがあるの?とか思ってしまうんですが、あるんでしょうね。
上記ページに代替案などありますので、ご参考に。

……私なら、これが原因で文字化けしたら祈りながら再送……だな……。
スポンサーサイト



メールの文字化け@Web MailとUTF-8

ネットワーク
06 /09 2007
メールの文字化けについて調べてたら、Appleのサポートでこんな記事を発見しました。
【リンク】Mac OS X 10.4: Mail から Web Mail や携帯電話に送った送信メールが文字化けする
Mac OS X 10.4 の「Mail」で送信した日本語メールが、Web Mailや携帯電話文字化けしたときの解消方法記事です。
詳細引用します。

英語環境(「言語環境」のパネルで“English”を優先言語として設定)で日本語メールを送信した場合、Mac OS X 10.4 Tiger の「Mail」は“UTF-8”のテキストエンコーディングでメッセージを送信します。そのため一部の Web Mail や携帯電話などの“UTF-8”エンコーディングをサポートしていないメーラーで受信した場合には、日本語のメッセージが文字化けすることがあります。


ここで気になったのは、Web Mailという部分。メールソフトでは文字化けしないような記述なんです。
ということで調べてみると、こんな検証レポートをみつけました。
【参考リンク】Unicode(UTF-8)への各種メールソフト対応調査
詳細すぎるレポートです。手間と時間かかっただろうなぁ…。
このサイトによると、メールソフトはUTF-8エンコーディングを正しく解釈できるとのこと。たとえ文字化けを起こしていたとしても、エンコード形式を変更すれば正しく表示できるとの結果です。そして、主要なWeb MailはほとんどがUTF-8には未対応なんだそうです。
だから、Web Mailでのみ文字化けが発生するっていう感じの記述になってたんですね。

ちょっとおもしろかったのは、上記サイトの結論部分に書かれていた

UTF-8で書かれた日本語が文字化けすると「糸偏の漢字が大量出現する」傾向があります

というところ。
Web Mailを利用していて、やたらと糸偏の漢字が多いな、と思ったら文字化けの原因はUTF-8にあり、と判断できそうです。

ということで、送信の際にUTF-8以外のエンコーディングに設定すれば大丈夫です。

アップルのサポートページでの解決方法引用しときます。

この問題を解決するには、以下の手順で、“UTF-8”エンコーディングから“ISO-2022-JP”エンコーディングに設定します:
1.「ターミナル」(/アプリケーション/ユーティリティ/)を開きます。
2. プロンプトの後に次のコマンドを入力します。
defaults write com.apple.mail NSPreferredMailCharset "ISO-2022-JP"

3. コマンドの入力後、「Return」キーを押します。
4.「ターミナル」を終了します。

だそうです。
Mailって、言語環境設定によって送信するメールのエンコーディングが変わる仕様なんですね。

メールの文字化け@サイトで修復

ネットワーク
06 /08 2007
文字化けしてしまっているメールが届いたとき、助けになるかもしれないサイトをご紹介します。

【リンク】文字化けしたメールの修復[The Web KANZAKI]

上記サイトで解決できるのは、以下3つのパターンの文字化けです。
●From, Subjectなどの読めないヘッダを修復
 =?ISO-2022-JP?B?GyRCJD8hIxsoQg==?= のような件名など

●文字化けしている本文の修復
 $B$3$l$O(JJIS$B$NJ8$G$9!#(Jのような文字化け

●Unicode文字参照になっている本文の解読
 こん...のような、 '&#' と ';' に数字が挟まれたコードが連続する本文

WEBメール使ってるときに「=?ISO-2022-JP?B?GyRCJD8hIxsoQg==?=」っていうような文字化けに時々遭遇するんですが、上記のサイトで簡単に解決できてます。
めっちゃ便利で重宝してます。

さらに同じサイト内で、文字化けの原因の1つであるESCシーケンス抜け落ちに関する詳しい解説がありましたので、興味のある方はどうぞ。
【参考リンク】JISコードとESCシーケンス[The Web KANZAKI]

メールの文字化け@RFC2231

ネットワーク
06 /08 2007
受信したメールの文字化けに関して、どういうわけか興味があるので時間があるときに調べてました。
原因様々なんですね。
送信側、受信側の設定の問題に始まって、添付ファイルの有無とか、文字コードやエンコーディングに起因するもの、それからアプリケーションそのものの問題とか…。
目に見えないところが原因なことが多いのも解決を難しくしている一因です。

今回調べたのはMac OS Xに標準で付属している「Mail」。
Mailからファイルを添付して、Windowsユーザに送ったら添付されていたファイル名が文字化けしてた…
そしてその原因が、日本語の添付ファイルだったため…
という問題についてです。

添付ファイルのファイル名が日本語で正しくやりとりするための規格としてRFC2231というものがあります。

ちょっと話はそれますが、RFCとはRequest For Commentsの略語。インターネットに関する技術とか仕様を標準化する団体があって、そこが発行する文書。文書ごとに番号がふってあって、RFC2231は2231番目の文書ってことです。

Mailで添付ファイルを送るときには、日本語のファイル名をRFC2231という規格に準拠するようにエンコードします。ところが、Windowsで動作するメールソフトの中にはRFC2331の規格とは違う形で処理をしてしまうものがあるんだそうです。

専門的になりますが、参考になるリンクを。
【参考リンク】添付ファイルにおける日本語のファイル名に関して
このRFC2231という規格に準拠するかしないかという問題が文字化けを引き起こしているようです。
このことが原因で起こる文字化けの場合、添付するファイル名を英数字にすれば解決できます。

仕様に基づいて実装しているMailと、そうでないメーラー。RFC2231自体に強制力があるわけでもないし、どっちが正しいとか、どっちがいいとか、よく分からないんだけど、ちょっと迷惑な原因かも。

ぴよ

マック用アプリケーションの体験記がメインなブログでした。
思いつくままに書いてますので、カテゴリーでたどっていっていただくと、いいかもです。
このブログの更新は、多忙という名の言い訳に負けて、メンテナンスモード中です。