発生した問題
これまで mail(mailx)
コマンドでメールを送信する場合は、ファイルに書き出した内容を読み込んだデータを body
にして、送信していた。
気づいたら、メールに .dat
なファイルが添付されるようになってしまっていた。
これは何が原因なのかを調査した結果をまとめる。
結論
body
の内容を書き出したファイルの改行コードが dos
になっていたのが原因。
以下措置を行う。
メール本文ファイルの改行コード変換
nkf -Lu --overwrite mailbody.txt;
備考
結果として以下は不要。
修正前
_rc=$(mail -s "表題:テストメール" "送信先アドレス" < "メール本文ファイル" 2> /dev/null; echo $?)
修正後
export LC_CTYPE=ja_JP.UTF-8
_rc=$(cat -v "メール本文ファイル" | mail -s "表題:テストメール" "送信先アドレス" 2> /dev/null; echo $?)