「折角サーバを立てたんだから自前のメールサーバを立ててみたい」
自宅サーバを持つと当然湧いてくる欲求だと思いますが(私の主観です)、メールサーバは設定が難解でかつ設定を誤ると迷惑メールの発信基地にされてしまい、周囲への被害が他よりも明確に出てきます。
このため、慎重に設定を行うようにしましょう。
また、一口にメールサーバと言っても使うソフトウェアや目的・使い方によってかなり構築が変わって来ます。
この記事ではまずメールサーバの簡単な解説とどのようなメールサーバを構築するかの説明をしたいと思います。
なお、メールサーバ構築には自前のドメインが必要です。DDNSサービスなどで渡されるドメインは基本的にメールサーバには使えないので注意してください。
この記事で行うこと
1. メールサーバの仕組みの解説
メールサーバのプログラムの役割は大きく3つに分かれています。
これらを郵便に例えて説明します。
- MTA(Mail Transfer Agent)
これは郵便で言うところの「郵便局」です。
出された郵便物を集めて他の郵便局に送ったり、他の郵便局から来た管轄内の住所宛ての郵便物を受け取っています。
あ、この世界に郵便ポストは無いので、郵便物を出すときは郵便局に直接出してくださいね。
- MDA(Mail Delivery Agent)
これは郵便で言うところの、「配達員」です。
郵便局に届いた郵便物を、それぞれの郵便受けに入れます。
郵便受けのイメージとしては扉に直接くっついているような物じゃ無くて、建物のエントランスにある全世帯分の郵便受けがまとめておいてあるような物をイメージしてください。
- MRA(Mail Retrieval Agent)
これは郵便で言うところの、「メイドさん」(?)です。
郵便受けに郵便が届いても出不精なあなたは建物のエントランスまで出ることすら億劫です。なので、メイドさんが定期的に郵便受けを見に行って、郵便が届いていたらあなたの所に持ってきてくれます。至れり尽くせりです。
ここまで無理矢理郵便に例えてみましたが、いかがでしたか?むしろ分かりづらかったですかね……?
簡単にまとめると
- MTA:他のサーバとメールのやりとりをする
- MDA:自分のサーバ宛てに届いたメールを宛先のユーザに配信する
- MRA:メールクライアント(OutlookやThunderbirdなど)からメールを確認できるようにする
となります。
メールが届くときには、サーバのMTAに届いたメールがMDAによって各ユーザのメールボックスに届きます。これをメールクライアントを通してMRAを使って確認するという形になります。
メールを送る際にはサーバのMTAに直接送りつけると、MTAが宛先のメールサーバに届けてくれます。
ちなみに、メールクライアントにもMUA(Mail User Agent)という略称があります。
ただでさえ似たような略称が多くてこんがらがりそうなので私はメールクライアントないしクライアントと呼びますが。
2. 今回構築するメールサーバの説明
今回構築するメールサーバの特徴は以下となります。
- MTAにはPostfix、MDAとMRAにはDovecotを使用する。
Postfixは比較的新しいMTA、Dovecotは同じように比較的新しいMRAとなります。
これ自体はかなりありふれた構成で他のサイトでもよく見かけますが、ほとんどはMDAにPostfixを使っています。
なので、他サイトも参考にしようとするとこの部分で辻褄が合わなくなる可能性が高いので注意してください。
ちなみにMDAにDovecotを使う理由としては、MDAもMRAも各ユーザのメールボックスの場所を設定しなくてはならないので、この2つを同じソフトにすれば設定する場所を減らせるからです。
- バーチャルメールボックスを使わない。
バーチャルメールボックスというのはUNIXユーザ(SSHでログインするとき等に使うユーザ)とは関係なく自前でユーザを管理出来る機能です。
これがあるとメールのユーザを追加したい時にわざわざLinux側でユーザを追加する必要がなくなったり、複数のドメインを使い分ける事が出来たりします。
ただ、自宅サーバだと使っても数人程度では無いかと思いますし、その程度ならUNIXユーザでも問題ないのでは?と思います。
自前のドメインを何個も持っているというのもなかなか逸般的なのではと。
ちなみに、色々なメールアドレスを使い分けたい場合はメールの転送設定で対応できます。
また、送信するときのメールアドレスはメールクライアント側で好きに決めることが出来ます。(自分の所有しているドメインの範囲内で)
このため、一般的な自宅のメールサーバではバーチャルメールボックスを使う必要は無いと考えます。(そもそも自宅のメールサーバを持っている時点で一般的じゃないとか言わない)
- クライアントからのメール送受信にはTLS接続を使う。
メール送受信時にクライアントとサーバ間の暗号化を行うためにTLS接続を使います。
TLS接続には証明書が必要となります。
こちらのサイトではnginxの解説の際にnginxとLet’s Encryptによる証明書の取得方法を解説していますので、参考にしてみてください。
(Webサーバを使う予定が無い場合は他サイトで方法を検索した方が良いかもしれません)
3. 構築の順序
今回は以下の順序で構築していきます。
- MRA(Dovecot)の設定
メールボックスにアクセス出来るようにします。 - MTA(Postfix)の受信設定・MDA(Dovecot)の設定
メールを受信できるようにします。 - MTA(Postfix)の送信設定
メールを送信できるようにします。
多くのサイトではMTA⇒MDA⇒MRAで解説していることが多いですが、この順序だと問題なく機能しているかの確認が面倒なので上記の順番で行いたいと思います。
まとめ
今回は、メールサーバの構築前にメールサーバの簡単な説明と、今回構築するメールサーバの特徴について記載しました。
他サイトの情報などと併用して構築するときは特徴に注意して、見比べるようにしてください。
次回はまずMRAであるDovecotの設定に入りたいと思います。