プロが教えるわが家の防犯対策術!

linuxのmailコマンドの文字化けについて

今Ubuntuマシンを使っているのですけど
このマシンでpostfixを使ってgmailサーバーを経由して外部にメールをおくれるように設定してあるのですが、
これでmailコマンドでドコモの携帯にメールを送るとき
mail XXX@docomo.ne.jp < (UTF-8のファイル) だと文字化けします。
mail XXX@docomo.ne.jp < (EUCのファイル) だと文字化けしません。
受信側で文字コードを変更すればいいのですが、送信側でなんとかしたいと思いました。
でメールヘッダをみると content-type:が設定されてないようなので、これのcharsetを設定したらうまくいくかもとおもいました。(そこで端末のコードUTF8を設定したい)
のですが、postfixのmain.cfのどこをみてもそのような設定はないようです。
もっとmailer側の設定なんだろうか?
どこで設定すればいいのかわかる人教えてください

A 回答 (2件)

送信するメッセージのエンコード、およびそれに関するMIMEヘッダの付与はメーラー側の責任…だったかと。



postfix単体ではどうにもならないと思われます。
# SpamAssassinでチェックする方法のように外部プログラムに頼ることになる…かと。

/bin/mailでは追加のヘッダを指定することができないようですので、postfixインストール時に追加されているであろうsendmail互換プログラムを使用することになると思われます。
# CentOS5.5ならsendmail.postfixという名前で入っています。

ちなみに、sendmail.postfixで送信する場合はToヘッダなど、諸々自分で指定する必要がある…みたいです。
# そのあたりは大本のsendmailでのメール送信に関して検索すると出てくるのではないでしょうか…。

Subjectで日本語を使う場合もいろいろと決まり事がありますし…
# 一般的な日本語メールではISO-2022-JPでエンコードされているかと。

本文の部分はnkfでISO-2022-JPにエンコードで、Subjectは-Mオプションでできる…ようです。
# 手元のCentOS5.5に入っているnkfでは-MオプションだけだとSubjectヘッダにそのまま渡せるような形式にはなってくれませんでしたけど。
# なぜか終端の"?="が付かない……。しかも途中で切れている感じでしたし…。

この回答への補足

答えが分かったので補足します。ubuntu のmail(mailxも)は-aでヘッダを追加できます。
だから
mail -a 'MIME-Version: 1.0' -a 'Content-Type: text/plain; charset="UTF-8"' -a 'Content-Transfer-Encoding: 7bit' XXXXX@docomo.ne.jp
とヘッダを追加指定することでうまくできました。(長すぎて見づらくてすいません)ただこの設定をどこかに保存できるのか?は不明です

補足日時:2010/11/15 20:57
    • good
    • 0

 恐らくですが、mailコマンドの完了時点で文字化けしているはずです。

postfix側で対処できる話では無いでしょうね。
 なので、以下のようにしてみると良いでしょう。

$ nkf -W -e(UTF-8のファイル) | mail XXX@docomo.ne.jp

 これはUTF-8のファイルをEUCのファイルに変換しそのままmailコマンドへ受け渡します。nkfコマンドの引数に関しては色々試行錯誤してみてください。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!