mailコマンド(bas-mailx)がContent-Typeヘッダを追加しているか、について。 mailコマンドは一時ファイル /tmp/R* を作成しているので、次のようにすれば 確認できそうです。
$ echo abcd | env LC_ALL=ja_JP.UTF-8 strace -s 255 -e trace=write mail -s hoge foobar@example.com write(3, "abcd\n", 5) = 5 write(4, "To: foobar@example.com\nSubject: hoge\nMIME-Version: 1.0\nContent-Type: text/plain; charset="UTF-8"\nContent-Transfer-Encoding: 8bit\n\nabcd\n", 135) = 135 --- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_EXITED, si_pid=675303, si_uid=121, si_status=0, si_utime=0, si_stime=0} --- +++ exited with 0 +++ $
さらに、私の環境で LC_ALL=en_US.UTF-8 で試したところ、
write(4, "To: foobar@example.com\nSubject: hoge\nMIME-Version: 1.0\nContent-Type: text/plain; charset="ANSI_X3.4-1968"\nContent-Transfer-Encoding: 8bit\n\nabcd\n", 144) = 144
となりました。これ、ロケールの設定によるようです。
$ locale -a C C.UTF-8 POSIX ja_JP.utf8 $
/etc/locale.genを編集してen_US.UTF-8を有効にし、“locale-gen”を 実行したあとに再度上記のmailコマンドを実行したところ、
write(4, "To: foobar@example.com\nSubject: hoge\nMIME-Version: 1.0\nContent-Type: text/plain; charset="UTF-8"\nContent-Transfer-Encoding: 8bit\n\nabcd\n", 135) = 135
になりました。
ソースコードをみてみました。Content-Typeを扱うのはパッチ部分のみ? https://salsa.debian.org/debian/bsd-mailx/-/blob/master/debian/patches/33-Ad...
+ const char* const cs = nl_langinfo(CODESET); + ADDHEADER("MIME-Version", "1.0"); + ADDHEADER("Content-Type", "text/plain; charset="%s"", + cs && *cs ? cs : "ANSI_X3.4-1968"); + ADDHEADER("Content-Transfer-Encoding", "8bit");
不明なロケールのときに ANSI_X3.4-1968 を付けるようです。