メールサーバーには2種類あって、送信に使う「SMTPサーバー」と受信に使う「POPサーバー」に分かれている。これはインターネットに少し詳しい人なら誰でも知っていることだろうが、必ずしも正しい表現ではない。
SMTPサーバーが「MTA(Mail Transfer Agent)」と呼ばれることからも分かるように、インターネットでは送信も受信もSMTPサーバーが行う。けっしてSMTPサーバーからPOPサーバーに対してメールを送るわけではない。
まずは送信する側のユーザーは自分の近くのSMTPサーバーにメールの中継を依頼する。するとSMTPサーバーは宛先のアドレスを読み取って、送信先のSMTPサーバーにメールを送信する。そのメールを受け取ったSMTPサーバーは受信者のメールボックスにメールを保存する。ここにPOPサーバーは登場しない。
ならばPOPサーバーはどういう役割を果たしているのだろうか。サーバーにログインして直にメールボックスの中身を見るならPOPサーバーは不要だ。しかし、それでは面倒なので、ユーザーからの要求に応じてメールボックスの中身を端末に読み込めるようにする仕組みが作られた。それがPOPサーバーである。
いちばん単純な形があるとすれば、すべての端末でSMTPサーバーを動かしておくというものだろう。そうすれば別のサーバーにメールの中継を頼んだり、メールボックスを読みに行ったりする必要はない。しかし、端末はつねに電源が入っているわけではないので、メールをいつでも送信できなくなる。そこで受信に使うSMTPサーバーは常時稼働しているサーバーで動かし、必要に応じてPOPでメールを読みにいくというシステムができあがったわけだ。
メールの不正中継とは
ちなみにWindowsでも動くSMTPサーバーがある(たとえばこのページにある「Radish」)。これを自分のパソコンにインストールしておくと、プロバイダのSMTPサーバーを使うことなく自分のパソコンから直にメールを送れる。受信に使うSMTPサーバーはメールアドレスによって決まってくるが、受信に使うSMTPサーバーは何でもいいのだ。昔はどこのプロバイダのSMTPサーバーも開放されていて好きに使うことができた。
しかし、それではスパムメールを増やすもとになってしまう。身元を明かすことなく自由にメールを送りつけることができ、SMTPサーバーを管理する側でも対策をとりにくい。現在ではSMTPサーバーの利用に制限をかけ、一定の条件を満たした端末からしかメールを中継しないSMTPサーバーがほとんどになっている。
自宅サーバーでSMTPサーバーを動かす場合でも不正中継の対策をしっかりととっておかなければ、外部の第三者が勝手にSMTPサーバーを利用して、スパムメールの送信などを行う可能性がある。可能性があるというより、かなりの確率でSMTPサーバーが悪用される。
サーバーを運営していると分かるが、SMTPサーバーのログを見ると、不正中継を試みるリクエストがしばしばやってくる。次のログが不正中継を試みた痕跡だ。もしこれで不正中継が成功したら、すぐに何千、何万通というメールがやってくる。
最近ではスパムメール対策として、不正中継を許しているサーバーからのメール受信を拒否するサイトも増えている。こうなるとせっかくメールサーバーをたてたのにメールを送信できない。こちらのページに不正中継の被害にあった事例が公開されている。
メールサーバーのいろいろ
SMTPサーバーでは「sendmail」がもっとも有名だが、最近は「qmail」「Postfix」がよく使われるようになっている。sendmailよりも設定が簡単なのが特徴だ。Vine LinuxをインストールするとPostfixもいっしょに入ってくるため、Postfixの使い方を見ていくことにしたい。
一方のPOPサーバーは、Vine Linux では標準でインストールされず、ユーザーが好きなものを選んで入れるようになっている。いちばん広く使われているのは「qpopper」だが、ここでは「Courier-IMAP」を使ってみる。POPだけでなく、IMAPにも対応しているために、たとえば出先からサーバーにメールを残したままメールを読んだりできる。また、POP over SSLやIMAP over SSLというセキュアなプロトコルにも対応している。