KISE Hiroshi 様
ありがとうございました。とりあえず、 LC_ALL=en_US.UTF-8 を入れればUTF-8になりました。 LANG=Cでしたが、その他は LC_MONETARY=en_US.utf8 LC_PAPER=en_US.utf8 LC_MEASUREMENT=en_US.utf8 LC_TIME=en_US.utf8 LC_NUMERIC=en_US.utf8 としていたので、UTF-8になると思っていたのですが、LC_ALLが必要だったよう です。 ただ、もう一台の方は LC_ALL= でもcharset=UTF-8になってます。 bsd-mailxのバージョンは同じで、8.1.2-0.201808 です。 う〜ん。 ただし、utf-8となる側のマシンのpostfixはansiとなる側のマシンにrelayして 発信しています。そこで、uft-8となる側のマシンから直接発信してみました。 すると、ansiとなり2台の結果は同じになりました。 結論、postfixがrelayで受け取ったメールはutf-8となり、直接発するメールは ansiとなるようです。postfixの設定になにかありそうです。いずれにしろ、 LC_ALL=en_US.UTF-8をいれればどちらもutf-8になるようです。 postfixを調べてみます。 ありがとうございました。
野村
On 11/27/20 10:46 PM, KISE Hiroshi wrote:
mailコマンドが/usr/bin/mailで、それがbsd-mailxだという前提です。 確認はこのコマンドで。 $ update-alternatives --display mailx または $ ls -l /usr/bin/mail /etc/alternatives/mail
From: Tomoo Nomura nomurat@tmo.co.jp Subject: [debian-users 00690] mail コマンドのcharset Date: Fri, 27 Nov 2020 09:41:37 +0900
1台の方は Content-Type: text/plain; charset="ANSI_X3.4-1968" もう一台の方は Content-Type: text/plain; charset="UTF-8"
送信コマンドは mail -s "xxxxxxxx" foo@sendto.address です。
再現実験をしてもらうのであれば、メール本文も固定のほうがよいでしょう。 (でも、今回はあまり影響ないかも?)
$ echo abcd | mail -s 以下略
localeは LANG=C です。
localeコマンドを実行してみてください。 私の環境ではこんな感じ。
$ locale LANG=ja_JP.UTF-8 LANGUAGE= LC_CTYPE="ja_JP.UTF-8" LC_NUMERIC="ja_JP.UTF-8" LC_TIME="ja_JP.UTF-8" LC_COLLATE="ja_JP.UTF-8" LC_MONETARY="ja_JP.UTF-8" LC_MESSAGES="ja_JP.UTF-8" LC_PAPER="ja_JP.UTF-8" LC_NAME="ja_JP.UTF-8" LC_ADDRESS="ja_JP.UTF-8" LC_TELEPHONE="ja_JP.UTF-8" LC_MEASUREMENT="ja_JP.UTF-8" LC_IDENTIFICATION="ja_JP.UTF-8" LC_ALL= $
この状態で、無指定のmailコマンドでUTF-8、LC_ALL=CでANSI_X3.4-1968に なりました。
特に問題ではないのですが、どこの何を参照してcharsetを決めているのでしょ うか?
manページをみてみるとか。 mail(1)の、“Character sets and MIME”あたり、でしょうか。
https://manpages.debian.org/buster/bsd-mailx/mail.1.en.html#Character_sets_a...
“ANSI_X3.4-1968”で検索してもよいのかも。