メール配送の仕組み
メールを処理するソフトウェアにはMTA(メッセージ転送エージェント)、MDA(ローカルメール配送エージェント)、MUA(メールユーザーエージェント)があります。
以下は、メール配送の仕組みです。
- MUA①
- MTA①
- MTA②
- MDA
- メールボックス
- POPサーバー/IMAPサーバー
- MUA②
MUA①
MUAとは、パソコン等で利用するメールクライアントソフトウェアです。
MTA①
MTA①は、MUA①からメールを受け取り、DNSサーバーに問い合わせて配送先MTA②を調べて、MTA②へメールを配送します。
MDA
上記、MTA②がメールを受け取るとMDAが宛先ユーザーのメールボックスにメールを格納します。
MUA②
受け取り側ユーザーのMUA②はPOPサーバーやIMAPサーバーを経由してメールボックスからメールを取り出します。
以上が、メール配送の仕組みです。
以下、SMTPとPOP、IMAPの説明です。
SMTP(Simple Mail Transfer Protocol)
SMTPとは、MUAからメールをMTAに送信する時やMTA間でのやりとりに使われるプロトコルです。
そのため、MTAはSMTPサーバーとも呼ばれます。
SMTPサーバーには、Postfixやsendmail、eximなどがあります。
POP(Post Office Protocol)、IMAP(Internet Message Access Protocol)
POPやIMAPは、MUAがメールを受信する際に使用するプロトコルです。
POP/IMAPサーバーには、DovecotやCourier Mail Serverなどがあります。
Postfix
Postfixは、sendmailとの互換性を持ちつつ、新規に開発されたMTAです。
高速に動作し、設定も容易な為、デフォルトのMTAとして採用するディストリビューションも多くあります。
Postfixの設定
Postfixの設定は、/etc/postfixディレクトリ以下のmain.cfとmaster.cfで行います。main.cfはMTAとしての基本設定ファイルです。master.cfは、Postfixを構成する各種デーモンの設定ファイルです。
main.cfの設定
以下は、main.cfの書式です。
設置項目 = 値
以下、main.cfの主な設定項目です。
設定項目 | 説明 |
myhostname | 自サーバのホスト名を指定します。 |
mydomain | 自サーバのドメイン名を指定します。 |
myorigin | メールアドレスの「@」以降に使用するドメイン名を指定します。 |
inet_interfaces | メールを受け取るネットワークインターフェースを指定します。 |
mydestination | ローカル配送を行うドメイン名を指定します。 |
mynetworks | リレーを許可するクライアントを指定します。 |
mail_spool_directory | メールスプールディレクトリを指定します。 |
home_mailbox | ユーザのホームディレクトリ配下のメールスプールディレクトリを指定します。 |
mailbox_command | ローカル配送を行うプログラム(MDA)を指定します。 |
disable_vrfy_command | SMTPコマンドのVRFYの使用を無効化(yes)/有効か(no)するかを指定します。 |
- #で始まる行はコメント行です。
- 行頭に空白がある場合は、前の行の続きとみなされます。
- 値を[$設定項目名]とすることで、他の設定項目に指定した値を参照できます。
- 1つの設定項目に複数の値を指定する場合はカンマ「,」で接続します。
postconfコマンド
postconfコマンドを実行するとPostfixの全設定値が表示されます。
「-n」オプションを指定すると、デフォルト値から変更されている項目のみが表示されます。
Postfixの制御
Postfixの制御はpostfixコマンドで行います。
以下は、postfixコマンドの主なオプションです。
オプション | 説明 |
start | Postfixを開始します。 |
stop | Postfixを停止します。 |
abort | Postfixを強制停止します。 |
flush | キュー内にあるメッセージを再送します。 |
reload | Postfixの設定を再読み込みします。 |
check | 設定ファイルの構文チェックを行います。 |
postfixコマンド以外にも起動スクリプトやsystemctlコマンドを使ってもPostfixを制御することが可能です。
メールのリレー
リレーとは、MTA間でのメールの中継のことです。
他のホストに宛てたメールのリレーを許可すべきかを判断します。
リレーを無制限に許可するとスパムなどに利用されてしまう可能性があるからです。
メールエイリアスとメール転送
/etc/aliasesを利用するとメールアカウントのエイリアス(別名)を設定できます。
以下、/etc/aliasesファイルの書式です。
アカウント名 : 受け取りユーザー名[,受け取りユーザー名]
「受け取りユーザー名」には以下の別名を指定できます。
別名 | 説明 |
/ファイルのパス | 指定したファイルにメールのメッセージを追加します。 |
|コマンド | 指定したコマンドにメールのメッセージを渡します。 |
user@domain | 指定したメールアドレスにメールを転送します。 |
:include:/ファイルのパス | 指定したファイルに記述された内容を別名として読み込みます。 |
newaliasesコマンド
/etc/aliasesファイルの内容を変更した場合は、newaliasesコマンドを実行することで返納を反映させる必要があります。
今回は、メールサービスのSMTPサーバー構築についてでした。
最後まで読んで頂き、ありがとうございました。
LPIC level2の他の分野へ移動できる全体ページへは以下リンクからお願いします。