▪️目的と背景
最近はSNSでのメッセージのやり取りがメインですが、一部ではまだメールを使用する場面も多いと思います。メールが実際に送信されて相手に届くまでどのようなプロセスを踏んでいるのかしっかり理解している人は多くないと思います。
実はこのメール配送でも「サーバ」が重要な役割を果たしていて不可欠なのです。
今回は初心者向けにメールを送信してそのメールがどうやって相手まで届くのか解説していこうと思います。
▪️メールが配送されるまでの仕組み

① ローカル環境のMUAからローカルのメールサーバであるMTAにメールを送信する
② ローカル環境のMTAからメールアドレスから相手環境のメールサーバを調べて相手環境のMTAにメールを送信する
③ 相手環境のMTAがメールを受け取ると、ローカル配送プログラムのMDAにメールを送信する
④ MDAはメールを宛先のユーザーのメールボックスに格納する
⑤ 宛先のユーザーはPOPサーバやIMAPサーバを経由して自分のメールボックスからメールを取り出す
今回の記事では①〜②を実現するための構築を行い、次回以降では③〜⑤を実現するための構築を行います。
♦︎MUA
「Mail User Agent」・・・メール送信を行うユーザの環境
♦︎MTA
「Mail Transfer Agent」・・・メールサーバ
♦︎MDA
「Mail Delivery Agent」・・・ローカルに届いたメールを宛先のメールボックスまで届ける役割
▪️postfix(MTAサービス)を起動する
①まず、MTAプログラムである「postfix」を起動させましょう。以下のコマンドを実行します。
(AlmaLinuxなのでMTAサービスは「postfix」)

②実際に「postfix」が起動されたか確認するために以下のコマンドを実行します。
[Active: active]となっており起動できています。
*[disabled]はサーバが常に起動された時に、このサービスが起動しないことを表します。よって電源を落とすと再びこのサービスを起動しなければなりません。
通常メールを受け取りたい場合、常時このサービスは必要なので起動させるのが良いです。この場合、
「systemctl enabled postfix」をコマンドで実行しましょう。

▪️メール送信
実際にメールを送信してみて、そのメールがMTAに届いているのか確認します。今回はローカル環境から自分のMTAにメールを送信してみます。
① メールを送信してみましょう。以下のコマンドを実行します。
「mail -s 題名 ユーザー名 or 宛先メールアドレス」

[コマンドが見つかりません]と出てきました。実はalmalinuxでは「almalinux9」以降「mail」コマンドは提供されておらず、代わりに「s-nail」コマンドが提供されています。(almalinux以外でも最近ではあまり使われていないようです)
② まず「s-nail」コマンドを実行するためにパッケージをインストールします。以下のコマンドを実行します。
「dnf install s-nail」


③それでは改めて実際にメールを送信してみましょう。
「s-nail -s 題名 ユーザー名 or 宛先メールアドレス」
*メール本文の入力が完了したら操作終了させるために「control + D」を押してください

④[Send this message]と出るので[yes]と入力して、Enterを押してください。

⑤実際にローカル環境(自分環境)のMTAに届いたメールをチェックしてみましょう。以下のコマンドを実行します。
「mail」
*以下では「Tryuser宛にSample」というタイトルのメールが届いています。そしてこのメールは「/var/spool/mail/tryuser」に届いています。

▪️mailqコマンド
「mailq」コマンドでは送信待ちになっているメールを確認できます。宛先が見つからなかったときや送信先のMTAが停止しているときなどに送信待ちになります。相手先のメールサーバが原因で送信待ちになっている場合、復旧すると自動的に再送信されます。

▪️まとめ
今回は初心者向けに実際にメールサーバを構築してメールを送信してみました。次回以降ではこのメールサーバに本格的にさまざまな設定を行っていこうと思います。
コメント