このページで解説している内容は、以下の YouTube 動画の解説で見ることができます。
メール送受信のテスト:mailコマンドとmailqコマンド
メール配送のテスト:mailコマンドとmailqコマンド
Linux環境において、メールサーバの構築や管理を行う際には、メールの送受信が正しく動作しているかを確認することが重要です。この確認作業には、一般的なメールクライアントソフトを使用することもありますが、コマンドラインを使ったシンプルなテストが便利です。特に、mail
コマンドとmailq
コマンドを使用することで、システム内でのメールの送受信や、キューに残っているメールの状態を簡単に確認することができます。ここでは、これらのコマンドの使い方と、メールサーバが正しく機能しているかを確認する方法について解説します。
メールの送受信
メールの送受信を行うためのソフトウェアには、以下のようなMUA(Mail User Agent)やMTA(Mail Transfer Agent)、MDA(Mail Delivery Agent)があります。
ソフトウェア種別 | アプリケーション例 | 説明 |
---|---|---|
MUA | Thunderbird, Outlook | ユーザーがメールの送受信を行うために使用するソフトウェア。 |
MTA | Postfix, Exim, Sendmail | メールを送信元から送信先まで中継するソフトウェア。 |
MDA | Dovecot, Procmail | メールを最終的な受信者のメールボックスに配信するソフトウェア。 |
メールサーバが正しく稼働しているかを確認するために、コマンドライン上で簡単にメールの送受信テストができます。その際に使用するのが、mail
コマンドとmailq
コマンドです。
mailコマンドの概要
mail
コマンドは、メールを送信するために使用されるコマンドです。簡単なテキストメッセージを送信するのに適しています。
【構文】mail [宛先]
mailqコマンドの概要
mailq
コマンドは、メールキューの内容を表示するために使用されます。メールキューに残っているメールがどのような状態にあるかを確認することができます。
【構文】mailq
コマンドの使用例と解説
1.rootユーザーに切り替えます。
・「su -
」コマンドを実行します。
user01@ubuntu-vm:~$ su -
パスワード:
root@ubuntu-vm:~#
su -
2.Postfixのインストール(Ubuntuの場合)
・「apt install mailutils
」コマンドを実行します。
続行しますか? [Y/n] の問いに「y」と入力して続行します。
root@ubuntu-vm:~# apt install mailutils
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています... 完了
状態情報を読み取っています... 完了
以下の追加パッケージがインストールされます:
gsasl-common guile-3.0-libs libgsasl7 libmailutils8 libmysqlclient21
libntlm0 libpq5 mailutils-common mysql-common postfix
提案パッケージ:
mailutils-mh mailutils-doc procmail postfix-mysql postfix-pgsql
postfix-ldap postfix-pcre postfix-lmdb postfix-sqlite sasl2-bin
| dovecot-common resolvconf postfix-cdb postfix-mta-sts-resolver
postfix-doc
以下のパッケージが新たにインストールされます:
gsasl-common guile-3.0-libs libgsasl7 libmailutils8 libmysqlclient21
libntlm0 libpq5 mailutils mailutils-common mysql-common postfix
アップグレード: 0 個、新規インストール: 11 個、削除: 0 個、保留: 11 個。
11.5 MB のアーカイブを取得する必要があります。
この操作後に追加で 70.4 MB のディスク容量が消費されます。
続行しますか? [Y/n] y
途中TUI(テキストユーザーインターフェース)で「Postfix Configuration」と表示されます。すべてデフォルトの選択のまま「<了解>」を選択します。「Tab」キーで項目間の移動ができます。
インストールが始まります。
インストールが始まります。
(省略)
rsyslog (8.2112.0-2ubuntu2.2) のトリガを処理しています ...
ufw (0.36.1-4ubuntu0.1) のトリガを処理しています ...
man-db (2.10.2-1) のトリガを処理しています ...
libc-bin (2.35-0ubuntu3.8) のトリガを処理しています ...
root@ubuntu-vm:~#
3.rootユーザーからuser01ユーザーへメールを送信します。
・「mail user01
」コマンドを実行します。
root@ubuntu-vm:~# mail user01
Cc: # Ccにはメールを送信しないので、「Enter」キーを押す
Subject: test-mail # 「Subject」に続けて件名を入力する
hello user01.
「Ctrl」+「D」で終了する。
4.user01ユーザー宛のメールを確認します。
user01に切り替えます。
・「exit
」コマンドを実行します。
root@ubuntu-vm:~# exit
ログアウト
user01@ubuntu-vm:~$
・「mail
」コマンドを実行します。
user01@ubuntu-vm:~$ mail
"/var/mail/user01": 1 message 1 new
>N 1 root 月 8月 19 10: 14/395 test-mail
? 1 # 「1」と入力
Return-Path: <root@ubuntu-vm>
X-Original-To: user01
Delivered-To: user01@ubuntu-vm
Received: by ubuntu-vm (Postfix, from userid 0)
id 93F8AE023C; Mon, 19 Aug 2024 10:21:59 +0900 (JST)
To: user01@ubuntu-vm
Subject: test-mail
User-Agent: mail (GNU Mailutils 3.14)
Date: Mon, 19 Aug 2024 10:21:59 +0900
Message-Id: <20240819012159.93F8AE023C@ubuntu-vm>
From: root <root@ubuntu-vm>
hello user01.
? q # 「q」と入力すると終了します。
Saved 1 message in /home/user01/mbox
Held 0 messages in /var/mail/user01
user01@ubuntu-vm:~$
5.メールキューを確認します。
・「mailq
」コマンドを実行します。
メールキューに何も残っていないため、メールキューが空であると表示されます。
user01@ubuntu-vm:~$ mailq
Mail queue is empty
まとめ
mail
コマンドとmailq
コマンドを使用することで、メールサーバの稼働確認や、コマンドラインからの簡単なメール送信テストを行うことができます。これにより、GUIのメールクライアントを使用せずにメールサーバの動作を確認できます。