Linuxのmailコマンドって添付ファイル付きメール送れたっけ?
mailコマンドで添付ファイル付きメールを送ることはできると思っていましたが、
実はあるコマンドを間に挟まないと送れませんでした。
mailコマンドの復習と添付ファイル付きメールを送る方法をまとめました。
添付ファイル付きメールを送る方法は本エントリーの最後の方にまとめています。
コマンドラインからメールを送信する その1
基本形は下記の通り
mail <送信先メールアドレス>
このコマンドを実行すると、本文、CCを順に入力するようになります。
本文を入力し終わったら「.」ドットで終了させます。
実行例
# mail to_user@testmailsend.jp
Subject: test
本文です。
.
Cc: copy@example.com(空白でも可)
コマンドラインからメールを送信する その2
CcとかFromアドレスを1行にまとめることもできます。
-fオプションの前はハイフン2つですので間違えないように!
# mail -s <件名> -c <送信先メールアドレス> -- -f
シェルスクリプトでmailコマンドを使う
シェルスクリプトを組んでスクリプト中のmailコマンドでメール送信する場合、
本文はパイプ『|』でmailコマンドに引き渡してあげればOK!
echo “これは本文です” | /bin/mail -s MailSubject -c cc_user@testmailsend.jp to_user@testmailsend.jp -- -f user@hogehoge.com
コマンドライから添付ファイル付きのメールを送る
例として/var/log/messagesファイルをzip形式に圧縮したものを
mailコマンドで送信する手順をご紹介します。
事前準備として、バイナリファイルをメール添付するのに必要な
バイナリデータエンコードコマンド『uuencode』
が必要になりますので、sharutilsパッケージをインストールします。
# yum -y install sharutils
# zip syslog.zip /var/log/messages
adding: var/log/messages (deflated 92%)
# uuencode ./syslog.zip syslog.zip | mail user@hogehoge.com
これで任意の宛先に添付ファイル付きのされたメールが送信できました!