XMail で任意のドメインを、無条件に他の SMTP サーバに転送する方法

bs_hina03r
ボクの勤め先のメール・サーバはボクが立てた glace.me ドメインのモノがある。ただこのメアドは当然うちのブランド用にしか使えない(汗)。親会社は別のメール・サーバを持っているわけだが、メーリング・リストやその他、メールの様々な機能は提供されておらず、現状 glace.me サーバに依存している。
とはいえ、親会社の仕事に glace.me というドメインは使えない。
で、今まではどうしていたかというと、親会社のメール・サーバに転送専用のアドレスを作り、その転送先を glace.me にしておいたのだ。こうすることによってメーリング・リストや新入社員の新しいメアドなどは実体を glace.me 上に作っておき、クライアントや名刺などには親会社のドメインを入れておくわけだ。
ところが困ったことが生じている。それは親会社の分のメールの管理もボクがしなければならないと言うことだ。特にメーリング・リストではプロジェクト・メンバーの出入りがあるとその都度ボクが追加・削除しなければならなかったし、今誰がメンバーに入っているかをプロジェクト・リーダに伝えなければならなかった。
ちなみにメーリング・リストにはリスト・プロセッサという機能があり、そのメーリング・リストにコマンドを書いて送ると、メーリング・リストへの加入や脱退、そして加盟者の一覧を取り寄せることが出来るのだが、これはセキュリティ上殺している。万一、メーリング・リストのアドレスが洩れた場合に第三者から情報を引き出されるのを防ぐためだ。

で、思いついたのが本社用のメール・サーバを別に立てて、本社の人に管理してもらうこと。この時、メール・サーバは LAN 内専用のサーバとなってしまう(つまりインターネットからはアクセス出来ない)。というのもプロバイダは一つしか契約していないし、外向きのメール・サーバはすでに glace.me が稼働しているからだ。ただ、どうせメーリング・リストにしか使わないサーバだから、社外から見えなくても良いのだ。これがメール・ボックスも設置するとなると、外向きのことを考えないといけないが(その場合はルータに仕掛けが必要になる)。

メールの流れはこうだ。

  1. LAN 内メール・サーバ用のドメインを作る -> ml.glace.me
  2. ml.glace.me 宛てのメールが来たら、それを LAN 内のメール・サーバに転送する

うちでは XMail というメール・サーバを使っているのだが、どこをどう探しても任意のドメインだけ他の SMTP サーバに飛ばすという設定が見つからない。単純にドメイン転送ってのはあるんだけど、この方法だと転送元にも同じユーザがなければ機能しない。つまり ml.glace.me に hoge という名前のメーリング・リストを作った場合、glace.me にも hoge というメーリング・リストを作らなければならないのだ。なんだそれ!? それじゃぁ、ml.glace.me でメーリング・リストを作るたびに、glace.me でも同じものを作らないといけないではないか。

というわけで色々と英語と格闘したり、いろんな掲示板を徘徊したりして、どうやらカスタム・ドメインという設定があるというのにようやくたどり着く。XMail の MailRoot ディレクトリにある custdomains というディレクトリの中に転送したいドメイン名のファイル名を作り(この場合、ml.glace.me.tab)、そのファイルの中に転送したい SMTP サーバを指定すると、転送したいメールが来たときにすべてその SMTP サーバに転送してくれることが解った。

ml.glace.me.tab の中身
“smtprelay” “listserver.glace.local”

こうすることによって、めでたく ml.glace.me 宛てのメールはすべて listserver.glace.local というサーバに転送されるようになった。ちなみにこの  listserver.glace.local は仮想サーバである。いやー、ホント、仮想マシンは便利だ。ちょっと何か新しいサービスを立てたいとき、実験したいとき、仮想サーバを立ててそこに入れればすぐに動かせる。昔は何か実験するんでも余っているマシンとかパーツとかを見つけてきて組み立てて、OS インストールしてとかやっていたんだけど、今や、ほぼボタン一発でもう一つサーバが出来てしまう。うーむ、恐ろしい。

最後に、ここであげているドメイン名はあくまでも説明のためにテキトーにつけたモノなので、実際はこれらの名前で運用されているワケではない。