今時のおしゃれなメールの送受信(^^受信篇)V
 最近ではインターネットもすっかり定着し、一人で二つも三つもメールアドレスを持っていると思いますし、自分でドメインを取得し、SMTP サーバとか、POP サーバとかを立てているかと思います。すごい世の中になりましたね。

 今回は、そんなあなたに、自分の FreeBSD でメールのバーチャルドメインをしようっ!!。特集です;-)。

 理屈は簡単です。例えば、環境を以下の様にした場合を説明します。

自分の取得したドメイン:running-dog.net
メール用ドメイン:running-dog.net
メール用サブドメイン1:kuro.running-dog.net
メール用サブドメイン2:pochi.running-dog.net
メールアドレス:takachan

と、有った場合、自分のマシンで受信出来るメールアドレスは、

takachan@running-dog.net
takachan@kuro.running-dog.net
takachan@pochi.rorunning-dog.net

全てを login 名 takachan で受信出来る様にする。と、言う設定を行う事です。送信に付いてはちょっと後で説明します。

 では早速とらいっ!!一番最初に行う事。
          ↓
 DNS のサブドメインの MX レコードを自分の FreeBSD に向けるっ!!

 次にっ!! sendmail.cf の設定と・・。うーうー。けどもだいじょーぶ。今回のは非常に楽です。では順を追って設定して行きましょう(^^)。

1.メールアドレスと loginID の対応リストを作ります。

---------------
takachan@running-dog.net takachan
takachan@pochi.running-dog.net takachan
takano@kuro.running-dog.net takachan
takano@boyoyon.foo.co.jp takachan
boyoyon@boyoyon.foo.co.jp takachan@running-dog.net
----------------
大体上記の様に、スペースで区切ります。見ての通り、左側のアドレスに来たメールが、右側のアドレスに変換され、その人のスプールに溜ります。二つの loginID とメールアドレスはどの様に書いても特に問題は無いです。

2.hash デタベース作ります。
 FreeBSD に標準バンドルのコマンド makemap コマンドを使います。後、環境も一緒に構築しましょう。

----------------
roman# mkdir /etc/maildb
roman# cd /etc/maildb
roman# vi list                   
roman# /usr/sbin/makemap  -v hash /etc/maildb/maildb.db < list
key=`takachan@running-dog.net', val=`takachan'
key=`takachan@pochi.running-dog.net', val=`takachan'
key=`takano@kuro.running-dog.net', val=`takachan'
key=`takano@boyoyon.foo.co.jp', val=`takachan'
key=`boyoyon@boyoyon.foo.co.jp', val=`takachan@running-dog.net'
roman# 
roman# ls -l
total 74
-rw-r--r--  1 root  wheel    848 Oct 15 00:00 README
-rw-r--r--  1 root  wheel    256 Oct 15 00:00 list
-rw-r--r--  1 root  wheel  32768 Oct 15 00:00 maildb.db
roman# 
----------------
 と、言う事で、/etc/maildb と言う所に一通り、環境が整いました。makemap の hash オプションは gdbm が付きでコンパイルされてないと対応していません。sendmail を自分でバージョンアップした人は一緒に makemap もコンパイルしてあげましょう。
#ちなみに、私は sendmail.8.8.8を使っていますが、そこに付属していた makemap のコンパイルが出来ませんでした。なので標準バンドルの makemap を使っています(^^;;。

3.いよいよ sendmail.cf を編集します。
 って書いても・・。なぁんも問題無いです。FreeBSD に最初から標準に付いている /etc/sendmail.cf をそのまま利用します。そんでもって以下の行を適当な部分に追加します。

・追加そのいち

----------------
# Varchial Mail by Takano.
# Declare mbt as a hash-lookup database:
Kmaildomains hash /etc/maildb/maildb.db
----------------
 作製したデータベースの宣言を行います。この設定は比較的上の方に書きます。私のには 106 行目位に書いています。

・追加そのに

----------------
###################################################################
###  Ruleset 98 -- local part of ruleset zero (can be null)     ###
###################################################################

S98

# Varchial Mail by Takano.
# Use mailboxtable-database:
R$+ < @ $+ . >          $: $1 < @ $2 > .
R$+ < @ $+ > $*         $: $(maildomains $1@$2 $: $1 < @ $2 > $3 $)
R$+ < @ $+ > $*         $: $(maildomains $2 $: $1 < @ $2 > $3 $)
RERROR $*               $#error $: $1
R$+ < @ $+ > .          $: $1 < @ $2 . >
----------------
 見ての通り、Ruleset 98 セクションに書きます。注意点ですが、各パラメータの区切りは 一応 TAB にしましょう。私の場合、$: で始まる所は TAB が無いと正しく動きませんでした。

 と、言う事で早々とバーチャルメールの設定が完了してしまいました(^^;;。今後のアカウント追加等は /etc/maildb/maildb.db を更新するだけで OK です。あーーらくちん。
#余談ですが、同じ機能を Solaris2.5.1 に持たせようとしたけれど、どうしても makepam が正しくコンパイル出来ませんでした・・(g_g)。

4.さてっ!!いよいよテストだっ!!
 ここまで来たら sendmail をリスタートしてテストです。テスト方法は
こっちを見て参考にしてください。list に宣言した全てのアドレスがローカルホスト内で処理されれば OK。もし外に出て行ってしまう様ならちょっと間違えたかもしれない。もう一度トライして見ましょう。

5.バーチャルメールその後・・。
 これで一応、バーチャルなメールサーバが完成しました。後は、qpopper をインストールして DNS に 自分のマシンに mx なるサブドメインなりを付けてあげるともーすっかり SMTP/POP サーバとなります。ふっふっふっ。どーするぅ?プロバイダでも初めてみるぅ?;-P。


今時のおしゃれなメールの送受信(^^送信篇)V
 バーチャルメールに改造しなくても「送信篇」は非常に有効な手段です。皆さんも参考になると思います。こっちゃの設定は、「UNIX のメーラもいよいよ Windows アプリ並になったか。」と感心させられます;-P。

 私の書いたホームページの項目を全て見ている方であれば、mule(xemacs)+mew+im+pwerl5.00403 の組合せのメールの処理をちょっとは知っているはず。知らない方は こっちゃへごー → ごーごー

 mew1.90 以上のバージョン、im-70 以上のバージョンでは、送信するアドレス(From: になるメールアドレス)を、自分の任意のメールアドレスに書き換える事が可能になっています。

 今までの FreeBSD 標準バンドルの /etc/sendmail.cf はメールを送信すると、From: 行にホスト名が付いてしまったりして、 sendmail.cf を書き直さなければならなかったのですが、このメーラセットを使うと sendmail.cf を書き直す必要もじぇーんじぇーん有りません。

 im-70 以上をインストールすると、自分のホームディレクトリ内に ~/.im/Config と言う環境設定ファイルを作製するのですが、そのファイルの設定をちょこっといじるだけで良いです。

 ~/.im/Config のサンプルはここにあります。一応目を通してください;-)。

----------------
###### DOMAIN Field
Address=takachan@running-dog.net              # set ~/.im/Config !
FromDomain=running-dog.net
ToDomain=running-dog.net
#
#Address=takachan@foo.co.jp                  # set ~/.im/Config !
#FromDomain=foo.co.jp
#ToDomain=foo.co.jp
######
----------------
~/.im/Config の中の上記の設定を送信したい時のドメインに変更するだけで OK です。ただ、この場合、実質的に変更出来るのはドメインだけで、login 名までは変える事が出来ません。login 名を変えたい時は User=takano と宣言してあげましょう。

----------------
Address=takano@running-dog.net              # set ~/.im/Config !
FromDomain=running-dog.net
ToDomain=running-dog.net
User=takano
----------------
 これで、takachan で login していても takano@running-dog.net でメールの送信が可能です。ただ、From 行のメールアドレス以外のメッセージは /etc/passwd から持って来ていますので、いざと言う場合はそこも変えてあげましょう。本当はやはり ~/.im/Config で変更が可能なのですが、いかんせん mew のマニュアルが無いので設定方法がいまいち解りません。詳しくは mew の ML に入るしかありません・・。

 さて、この mule(xemacs)+mew+im のセット。すごぉく使いやすくて良かったぞなもし。メールの設定もずいぶんとらくちんになったっ!!良かったっ!!


Copyright (c) 1997-2004 takachan@running-dog.net All Rights Reserved.