Linux システムで mail コマンドをテストする。
1. 最も簡単な例
mail -s test yangfang@fudan.edu.cn
このコマンドは、件名が test、本文が空のメールを後ろに指定したメールアドレスへ送信する。システムに MTA(Mail Transfer Agent、たとえば Postfix、Sendmail、Exim など)がすでに設定されていて、宛先のメールボックスがこのような少し不可解に見えるメールを遮断しなければ、このメールを受信できる。
この種のテストメールで邪魔されたくない場合は、受信者をローカルアカウントに変更するのがおすすめだ。たとえば次のようにする。
mail -s test localuser
ここで localuser は、そのマシン上に存在するユーザー名である。
2. よく使う 3 種類の送信形式
現在の shell で本文を直接入力する
mail -s test yangfang@fudan.edu.cn
実行後、現在の shell を簡単なエディタのように使って本文を入力できる。書き終えたら Ctrl-D を押して入力を終了し、送信する。
パイプで本文を送信する
echo "mail content" | mail -s test yangfang@fudan.edu.cn
これは私が最もよく使う方法だ。おそらくパイプが好きだからだと思う。
ファイル内容をメール本文にする
mail -s test yangfang@fudan.edu.cn < file
これは file の内容をメール本文として送信する。
実際のところ、mail は標準入力からメール内容を読み取って送信していることがすぐに分かる。私が主に説明したかったのもこの点だ。これで 2 つ目の例は終わり。
3. 添付ファイル付きメールを送信する
システムに uuencode コマンドがない場合は、先に sharutils をインストールすればよい。たとえば yum を使うシステムでは次のようにする。
yum install sharutils
uuencode は通常 2 つの引数を必要とする。1 つ目は送信するファイル、2 つ目はメール内に表示されるファイル名である。パイプと一緒に使うこともできる。
単一ファイルを送信する場合:
uuencode /home/yfang/a.gif a.gif | mail -s pictest yangfang@fudan.edu.cn
ディレクトリをアーカイブして圧縮してから送信する場合:
tar czf - /home/yfang/ | uuencode home.tgz | mail -s pictest yangfang@fudan.edu.cn
注意:ディストリビューションによって mail または mailx の実装は完全には同じでない場合がある。一部のバージョンでは -a オプションで直接添付ファイルを追加できる。たとえば Slackware の mail にはこのオプションがあるようだが、私は使ったことがない。実際に使う前に、まずローカルのヘルプを確認するとよい。
mail --help
man mail
転載元:http://www.svn8.com/linux/accidence/20091016/10858.html
