E-Postシリーズは UTF-8 / 8bit Encoding のメールを文字化けせず正しく送受信できますか?
E-Postシリーズでは、メールデータの文字コードを変換したり置き換えたりすることは原則として行っていないのですが、受信したメールが文字化けしているものを調査しているうちに、あるユーザー様から標題のような質問を受けたことがあります。
それはユーザー様の環境で受けたメールの文字コードが UTF-8 で指定されているメールを調査しているうち、文字化けするものと、文字化けしていないものの両者のヘッダに下記の違いがあったため、E-Postシリーズで UTF-8 / 8bit Encoding のメールを文字化けせず受信できるかという質問内容でした。
・ユーザー様の環境で文字化けしていないメール
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: base64
・ユーザー様の環境で文字化けしていたメール
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
この質問は、E-Postシリーズがメールサーバシステムとして8ビットを通さないのではないかという質問内容と同義だと考えます。結論から言うと、E-Postシリーズはメールサーバシステムとして8ビットも問題なく通します。具体的には以下のヘッダ構成の UTF-8 / 8bit Encoding のメールであっても文字コードを変換したり置き換えたりせず、そのまま通します。
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
しかしながら、大部分のメールクライアントは文字化けせず何の問題もなく表示できる一方で、メールクライアント種類によってはこの構成のメールを表示させる能力差が依然として存在する可能性は少なからずあります。世の中には、いまだ8ビットを通さないメールシステムやSMTPゲートウェイも存在する可能性があることを考えた方が無難です。そのため、送信元が努力する余地がもしあるとすれば、大事を取って "Content-Transfer-Encoding: base64" で Base64 符号化するのが最善ではないかと考えます。そのように提案している技術者やシステム開発者も多いです。
ちなみに、E-Postシリーズでは、メールデータの文字コードを変換したり置き換えたりすることは、一部の例外を除いては実施しません。一部例外のケースについては下記の記事をご参照ください。
(関連FAQ)
●E-Postシリーズでの文字コードの取り扱いについて