Be Silent! 〜 ミニサーバ日記 〜 16. メールが届かなくなった


 ところがそうしたら、毎日一回届くはずのメールが、届かない。(^_^;
 その代わり、一日一回、「ミニミニサーバからの怪しいメールを拒否しました」のメールが。(^_^;
 ミニサーバに至っては、エラーメールどころか、何の音沙汰もないよ・・・(^_^;;;;

 ミニサーバも、ミニミニサーバも、普通にメールソフトからメールを送信すれば きちんと宛先に届くので、どうやらcronでroot宛にメールを出したときに 何かが正しく動いていないようだ。とりあえずミニサーバのほうから、 マニュアルやログや設定ファイルを確認して、原因を追求していった。

 結局かなりてこずって、postfixの(和訳)マニュアルをほとんどひととおり 眺める羽目になったが、原因は判明した。 root宛てのメールは、~root/.forward で ken16.net の私のアカウントに転送する ようにしていたのだけど、結局これが効いていなかったのだ。
 cronからのメールは、宛先が単に「To: root」なので、 postfixが自動的に「To: root@ken16.net」と補完して、 「ということは送り先は私(ミニサーバ)じゃなくてmail.ken16.netですね! 了解! れっつ中継!」 とばかりに大喜びで転送したはいいが、私はそのメールサーバに root なんてアカウントは 作ってない(ていうか予約語なので作れない)ので、結局そのメールは闇に消えていたという ことらしい。(差出人も root@ken16.net なので返送しようもないのだった)
 補完の結果、宛先は root@ken16.net なので、root@localhost の.forwardはそもそも 全く参照されていなかったのだな。

 というわけで、今のpostfixの設定では、

ということらしい。ではroot@ken16.netに吹っ飛んでいってしまうメールを我輩が受け取るためには どうすればよいか。ということで調べたら、メールヘッダには一切手を加えずに 宛先だけを変更する仕組みがあった。virtual機能というらしい。
 何がバーチャルなのかよくわからないが。
 とにかくそのvirtual機能で、root@ken16.netという宛先だったら、別の生きてる 宛先に置き換えるようにして、これでミニサーバのほうはきちんと動くようになった。

 次はミニミニサーバ。こちらは一応エラーメールが届いているので、 それを手掛かりに調べればいいだろう。
 エラーのメッセージは、「差出人アドレスのドメインが存在しない」というもの。 確かに、差出人が、root@ken16.net であるべきところが、root@antibody.ken16.net になってた。 そんな名前のホストは、公開DNSには登録されていない。 エラーになったメールを見ると、差出人は単に「From: root」となっている。 でも確か、@ken16.net を補うように、きちんと設定をしたつもりだったのだけど。 おかしいな。
 試しに、From: opa とだけしてテストメールを送ってみた。するとなんと、こっちは うまく opa@ken16.net と補完されて届いた。ということはrootの場合だけ なにか特別なんだろうか?
 という観点で設定ファイル作成ツール(sendmailはややこしいのでそういうのがあるのだ。設定ファイル 作成ツールの設定ファイルを設定してそれを使って設定ファイルを作成してsendmailを設定する)の マニュアルを調べたら、ホントにその通りだった。(^_^;
 ていうか正確には、rootと他にシステム関係のいくつかのユーザの出したメールは、あちこちの マシンで同じ名前が使われるので、ややこしくないように、常にroot@ホスト名.ken16.netという 形式にするようになっているのだそうだ。しかし今回はその機能が邪魔になっているので ばっさり外す。(^_^;
 しかるのちにテスト。成功。よしこれで(今度こそ)メール環境は完成だ!!


トップ もどる