

postfix dovecotをcentos7内で作っています。

gmailからのメールが文字化けしてしまいます。

utf8とbase64で送られてきているそうです。

本文の日本語が全部文字化けしています。

何か対策はありませんか？  
ちなみにpostfixのmain.cfでutf8サポートを行いました。

8bitに変換するよう設定も行いましたが、依然文字化けされています。


CC BY-SA 3.0
2017-06-08T03:44:50.657
35382
2017-06-08T05:57:45.657
14197
question
postfix dovecot
メールサーバー(受信)で日本語が文字化けします。


どんな風に化けているのか分かりませんが、その化け方で対応は異なります。

# quoted-printable エンコードされている場合

例

[code]

    =81=40=82=b3=82=c4=81=41=82=d3=82=c6=8e=76=82=a2=97=a7=82=c1=8
    2=c4=81=41=90=56=8a=83=95=fb=96=ca=82=c9=82=d3=82=e7=82=c1=8
    
[/code]

これは8bit文字を使っているのに送信側が Content-Type ヘッダを設定していないか、もしくは latin-1
系の文字集合名を設定しているのが問題です。

# base64 エンコードされている場合

例

[code]

    gXmLxopFk66M/IF6DQoNCkVyaWNzc29ugUFJbnRlbILIgsc1jtCCqoOCg2+DQ4OLkluWloz8gq+W
    s5D8kNqRsYtaj3CC8JStlVwNCg0KgaFVUkwNCmh0dHA6Ly93d3cuYmx1ZXRvb3RoLmNvbS8NCmh0
    dHA6Ly93d3cuYmx1ZXRvb3RoLmNvbS9uZXdzL3RleHQvcHJlc3M0Lmh0bSCBaZStlVyOkZe/gWoN
    
[/code]

こちらも同様に Content-Type ヘッダに設定してこない送信側の問題です。

ただし最近では、だいたいの場合メールの文字化けの原因はメーラにあります。  
gmail だとするとおそらくですが該当のメールの Content-Type ヘッダには charset=utf8 が設定されているかと思います。また
Subject ヘッダも以下の様にエンコードされているはずです。

[code]

    Subject: ?utf-8?B?$...
    
[/code]

Content-Type ヘッダが設定されていない場合、多くの日本人向けのメーラは Subject ヘッダや From ヘッダで使われる base64
エンコードされた際のエンコーディング名(日本では `=?iso-2022-jp?` が多いです)から「これはおそらく本文も iso-2022-jp
だ」といった具合に判定されます。


CC BY-SA 3.0
2017-06-08T04:28:14.517
35383
2017-06-08T04:28:14.517
440
35382
answer


「utf8とbase64」とで送られてきているのにもかかわらず「本文の日本語が全部文字化け」ということは  
base64の生データが見えているということでもないと思います。(base64であれば日本語に限らずすべての文字が可読不可)

可能性としては  
・UTF-8というのが誤り  
⇒base64デコードには成功しているが、charsetがUTF-8ではない。  
この場合意図しない漢字がならぶような化け方になります。

・base64というのが誤り  
⇒Quoted-PrintableやISO-2022-JPならばASCII部分のみ可読可能になります。  
その場合はmattnさんのようなASCII領域文字(英数字記号)が並ぶような化け方になります。


CC BY-SA 3.0
2017-06-08T05:57:45.657
35387
2017-06-08T05:57:45.657
19716
35382
answer