--- qmail受難 ---
今日、何げなくサーバマシンからメール送信をしてみたところ
なぜか失敗してしまった。
考えてみたら、サーバ新しくしてからこのマシンでメールを送ったことは無い。
なので設定の問題かと思い色々調べてみるが一向にうまくいかず。
…約30分後。問題解決。
どうやらqmailの設定がうまく行なわれていなかったらしい。
単純に言うと、外部ホストへの送信が全て不許可になっていたのだ。
実はこれ、qmailのデフォルト設定。なぜこんな厳しい設定になっているかというと…
--- SMTPとPOP ---
メールのやりとりには、SMTP(通常は25番)のポートを通して行う。
このポートはメールの「送受信」を処理している。
「えっ?受信にはPOPを使うんじゃないの?」と思った方々。実は違う。
僕も自宅サーバでqmailを導入するまではそうだと思っていた。
POPサーバは「メールサーバマシンで受信したメールを各クライアントが扱う」ためのもの。
つまり、メールを受信してサーバマシンに保管するのはSMTPの役割なのだ。
ここからが本題。
SMTPには「リレー処理」と呼ばれる機構があり、これで送受信を行なっている。
--- リレー処理 ---
簡単な例を挙げてみる。
ある人がメールを出したとしよう。
メールの送信者は abc@nifty.com 、宛て先は def@jp-t.ne.jp だ。
その人はSMTPサーバとしてnifty.comを使っている。
…まぁつまり僕なわけですが(笑)
まずはnifty.comのSMTPサーバに繋ぐ。
そして「def@jp-t.ne.jp 宛にメール送信して下さい」とお願いをする。
このサーバはnifty.comのものだから、jp-t.ne.jpは自サーバでは無い。
こういった場合、このサーバは「リレー(中継)処理」を行なう。
具体的には、jp-t.ne.jpのSMTPサーバに接続するのだ。
そして先ほどと同じように「def@jp-t.ne.jp 宛にメール送信して下さい」と頼む。
nifty.com のSMTPサーバがやる作業はここまでだ。後はjp-t.ne.jpのSMTPサーバが担当する。
今度はjp-t.ne.jpは自サーバと同一なので、このSMTPサーバは
このメールを受信してサーバマシンのHD内に格納する。
hiz_m ユーザ宛のメールなので、hiz_m ディレクトリにでも格納するのだろう。
無事、これでメールは目的の場所に送信されました。
--- 第三者メイル ---
先ほどの例で、仮に僕以外の第三者が同じことをやろうとしたらどうなるだろうか。
実はこれ、何の問題もなく出来てしまう。
さらに、送信者アドレスは「送信者の好きなように」設定できる。
これを不特定多数のメールアドレスにばら蒔けば。
まぁ簡単、SPAMメールの出来上がりって訳だ。
…で、これじゃまずいので通常のSMTPサーバではいくつかの制限を掛けている。
送信者アドレスは自ホストと同一じゃないといけない、とか
送信の前には必ずPOPサーバの認証をしないといけない、とか。
中にはこれらの制限を一切掛けていないサーバもある。
多くのSPAMはこのサーバを経由して送られてくる訳だ。
--- 意味のあるデフォルト ---
長?い前フリだったな。
もしメールサーバがデフォルトでリレー処理を全て許可していたら
世界中に今以上のSPAMメールが蔓延してしまうかもしれない。
qmailはデフォルトで「自サーバ⇔自サーバ」のメールしか扱わない。
qmailのデフォルト設定がここまで厳しい理由。
それは、初心者が訳もわからずインストールしたときに
世界に与える被害を最小限に留める為だったのだ。
大げさかもしれないが、これは重要なこと。皆のためのインターネットだからね。
もしqmailを使ったメール送信で
「553 sorry, that domain isn't in my list of allowed rcpthosts (#5.7.1)」
というエラーメッセージが出て困っているようなら、
ここを参考にしてみて下さい。