Linuxコマンド辞典 mailコマンド(ネットワーク)

コマンドラインでメールを送受信する「mail」コマンドの概要と使い方を記載しています。

RHEL Fedora CentOS Vine Deblan Ubuntu Plamo

概要・使用方法

書式

$ mail [オプション] 宛先メールアドレス

メールを書いて送信、ローカルい届いたメールを読むことができます。現在ではGUIでのMUA(Mail User Agent)が数多くあるため、本格的な利用は減りましたが、MTAサーバのデバッグやコマンド経由、cronなどでメール送信するのに便利なコマンドです。メールの送信はローカルホストのMTAを経由して発送されます。メールの読み出しは対話的に行うことができます。mailでは/var/spool/mailにあるメールスプールを読み込みます。既読メールは~/mboxに保存されます。

オプション

-a ファイル名指定したファイルを添付する
-b アドレスbccとして送信するアドレスを指定する
-c アドレスccとして送信するアドレスを指定する
-f ファイル名読み込むメールスプールファイルを指定する
-nmail起動時に/etc/mail.rcは読み込まない
-s サブジェクト送信するメールのサブジェクトを指定する
-v冗長モードで実行する。送信時の動作を標準出力に詳細を表示する
-u ユーザ名-fオプションと同様の動作をする。メールスプールファイルではなくユーザ名を指定する

メールを送信する

$ mail メールアドレス

実行結果

[roi@centos ~]# mail roi@example.com #<コマンドの引数に宛先(to)をセットする
Subject: test mail                   #<件名(Subject)を入力する
this is test mail                    #<本文(Body)を入力する
.                                    #本文の終わりは「.」を入力する
Cc:                                  #<カーボンコピー(Cc)を送るアドレスを指定する。指定しない場合はEnterキーを押下
EOT

メールを読む

$ mail

実行結果

[rin@centos ~]$ mail
Mail version 8.1.2 01/15/2001. Type ? for help
"/var/mail/rin": 3 messages 3 new
>N 1 rin@example.com Thu Dec 19 00:00 20/500 Hello
N 2 rin@example.com Thu Dec 19 00:00 20/500 Hello 2
&  #<Enterを押すとメッセージ表示に移動
Message 1:
From rin@example.com Thu May 19 00:00:00 2020
X-Original-To: rin
To: rin@example.com
Subject : Hello
Date: Thu, 19 May 2020 00:00:00 +0900(JST)
From: rin@example.com ( rin )

hello.

& q #<本文が読み終わったら「q」で抜ける
Saved 1 message in /home/rin/mbox  #<読んだメールが~/mboxに保存される
Held 1 message in /var/mail/rin    #</var/mail/rinに未読メールが1通ある

非対話的にメールを送信する

$ nkf -j メッセージファイル | mail -s "サブジェクト" 宛先メールアドレス

実行結果

[rin@centos ~]$ cat mesg.txt 
はじめまして、こんにちわ
[rin@centos ~]$ nkf -f mesg.txt |  mail -s "send my message." rin@example.com
#日本語メッセージをISO-2022-JPにnkfで変換して送信する