mailコマンドでISO-2022-JPのテキストメールが送信できない [CentOS]
CentOS 6.6 において、mail コマンドで ISO-2022-JP のテキストメールが送信できない。
正確には、送信されるが、Base64 でエンコードされたデータとして送信されてしまう。
・Content-Type: application/octet-stream ・Content-Transfer-Encoding: base64
(補足)
・mail コマンドは、mailx コマンドへのシンボリック・リンクとなっている。
(mailx-12.4-8.el6_6.i686: Heirloom mailx 12.4 7/29/08)
2. 対処方法
2-1. UTF-8 のテキストメールでも問題ない場合
下記の手順により、UTF-8 のテキストメールを送信する。
(1) メッセージファイルの作成
メッセージファイル(mesg_file) を UTF-8 で作成する。
(2) メッセージの送信
ja_JP.UTF8 ロケールで mail コマンドを実行する。
% cat <mesg_file> | \ (env LC_ALL=ja_JP.UTF-8 mail -s <subject_str> <recipient>)
2-2. ISO-2022-JP のテキストメールを使用する場合 (type-1)
sendmail コマンドを使用してメールを送信する。
(1) メッセージファイルの作成
メッセージファイル(mesg_file) を ISO-2022-JP(7bit JIS) で作成する。
(2) メッセージの送信
( echo "Subject: <subject>" echo "To: <recipient>" echo cat $mesg_file ) | sendmail -it
2-3. ISO-2022-JP のテキストメールを使用する場合 (type-2)
bsd-mailx コマンドを使用してメールを送信する。
(1) 必要なパッケージの導入
EPEL リポジトリから、下記のパッケージをインストールする。
(/usr/bin/bsd-mailx が使用できるようになる。)
・bsd-mailx-8.1.2-4.el6.i686.rpm
・libbsd-0.6.0-1.el6.i686.rpm
(2) メッセージファイルの作成
メッセージファイル(mesg_file) を ISO-2022-JP(7bit JIS) で作成する。
(3) メッセージの送信
% cat <mesg_file> | bsd-mailx -s <subject_str> <recipient>
コメント 0