LinuxServer 電子メールについてもう一度… メールをコマンドで送信
メール送信の仕組みと、メールデータの構造について簡単に説明してきましたが、
メールを送信するとき、クライアントとサーバの間ではどのようなやり取りをしているか
実際に見て行きましょう。
telnetを使ったメールサーバとのやりとり。
telnetとは、ネットワーク上のサーバを遠隔操作できるプログラムで
メール送信の場合は次のように使います。
コマンド 対象サーバ 接続ポートの順でコマンドを打ちます。
SMTPのポートは25番です。
接続が上手く行くと、対象のSMTPサーバが応答します。
[応答] Trying [IP Address]…Connected to smtp.senderserver.org.
Escape character is ‘^]’.
220 smtp.senderserver.org ESMTP Postfix
次にHELOコマンドで対象のSMTPサーバへクライアントのホスト(ドメイン)名を
告げ、SMTPのセッションを開始します。
[応答] 250 mail.side-7w.org
MAILコマンドで送信元のメールアドレスを指定します。 [コマンド] mail from:sender@sender.org
[応答] 250 2.1.0 Ok
RCPTコマンドで送信先のメールアドレスを指定します。 [コマンド] rcpt to:recipient@recipient.com
[応答] 250 2.1.5 Ok
DATAコマンドでメールデータを送る事をSMTPサーバへ伝えます。
最後にピリオド(.)だけの行でメールデータの入力するが終了します。
354 End data with .
From:sender@sender.org
To:recipient@recipient.com
Subject:Test
Test Mail
.
[応答]
250 2.0.0 Ok: queued as CB18EA00EB
DATAコマンド後に入力するFROMとTOのアドレスがメールヘッダに
記述されるメールアドレスになり、クライアント(MUA)で
使用されるメールアドレスになります。
また、FROMコマンドやTOコマンドで入力したアドレスは
エンベローブ・アドレスと呼ばれ、このアドレスを元にMTAは
送信元メールアドレスと宛先メールアドレスを判断します。
セッションを終えるにはQUITコマンドを使用します。
[コマンド] quit [応答] 221 2.0.0 ByeSMTPサーバへの接続から、メール送信、セッションの終了まで、
コマンド投入の度に3桁の数字とメッセージが表示されていました。
この3桁の数字をレスポンスコードと呼び、コマンドの実行結果を表します。
以下は代表的なレスポンスコードになります。
メールサーバ(MTA)は何を使う
前回まででメール送信の仕組みとSMTPコマンドについて説明してきました。
これからLinuxServer上でメールサーバ(MTA)を構築していきましょう。
構築をする前にLinuxServer上で使用できる3大MTAについて特徴を確認していきましょう。
Sendmail --業界標準--
Sendmailは1980年代に登場し、事実上の標準MTAとして多くの
使用実績があります。
Sendmailは多くの機能が盛り込まれており、正しく設定すれば柔軟で
高度なメール配送を行うことが出来ます。
しかし、柔軟で高度な配送を行う為の設定ファイルが複雑かつ難解になり、
管理を難しくしています。
さらに機能の豊富さから、プログラムの肥大化、複雑化を呼び、
多くのセキュリティホールが見つかり、開発時には考えられなかった
問題も発生しています。
qmail --よりセキュアに--
qmailはSendmailの問題点からシンプルで堅牢な、よりよいMTAを目指し、
D.J.バーンスタイン氏が開発したMTAです
Sendmailでは一つのプログラムが全ての機能を実行しており、大量のメールを
扱う時に処理が遅くなる問題を抱えていましたが、qmailでは機能毎に
プログラムと設定ファイルを分割した上で、プログラムは各々が独立、
強調して動作します。
各々のプログラムには、最低限の権限のみ与え、プログラム間の通信も
セキュアになっており、プログラムの設定ファイルはシンプルです。
また、Sendmailでは、全てのメッセージが一ユーザにつき、一ファイルで
保存する形式(mbox形式)を採用していましたが、mbox形式では
メッセージの処理に問題があると、全てのメッセージに影響する可能性が
ありました。
この問題を回避するため、qmailではメッセージ一通につき、
一ファイルで保存する形式(Maildir形式)を作用しています。
qmail独自の設計は、セキュリティを強固なものにしましたが、開発者の
ポリシーと厳しいライセンス制限の為、Sendmailからの移行は大変難しくなりました。
Postfix --高い互換性--
PostfixはSendmailやqmailに比べ、後発で新しいMTAです。
Sendmailとの互換性を保ち、設定を簡単にし、qmailのMaildir形式を
採用する等、Sendmailとqmailの良い点を参考に、開発されました。
qmailと同様に機能毎にプログラムを分割し、強調して動作するようになっています。
また、プログラムには最低限の権限のみ与え、一つのプログラムに
問題が発生してもシステム全体に影響はしません。
Postfixは比較的緩やかなライセンス形態の為、標準のMTAとして採用している
Linuxディストリビューションも有り、利用実績を増えてきています。
Postfixでメールサーバを構築してみよう
Sendmail、qmail、Postfix、それぞれに長所と短所があり、
どれが一番優れているかは決められませんが、メールサーバの構築には
入手が容易で設定が簡単なPostfixを使用し、メールサーバを
構築してみましょう。