So-net無料ブログ作成

mailコマンドでISO-2022-JPのテキストメールが送信できない [CentOS]

1. 発生事象


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>


nice!(0)  コメント(0)  トラックバック(0) 
共通テーマ:パソコン・インターネット

nice! 0

コメント 0

コメントを書く

お名前:[必須]
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

※ブログオーナーが承認したコメントのみ表示されます。

トラックバック 0

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。