広告 Linux

mailコマンドを使用して添付ファイル付きメールを送信する

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

これで任意の宛先に添付ファイル付きのされたメールが送信できました!

Sponsor Link

-Linux