まず なんにも 考えずに 以下の 様に してみよう、これは どうにかこうに か実際に 動作している sendmail.cf を 使用したものです
$ /usr/sbin/sendmail -C/etc/mail/sendmail.cf -bt
ADDRESS TEST MODE (ruleset 3 NOT automatically invoked)
Enter <ruleset> <address>
> $=w
nyanco.kingdom
nyanco
127.0.0.1
koro.catland.kingdom
kingdom.of.cat
localhost
[192.168.2.1]
[192.168.0.5]
[127.0.0.1]
192.168.0.6
192.168.0.7
192.168.0.8
nyanco.kingdom.of.cat
> /quit
もうひとつ これは 現在色々テストしているもので 見たものです
$ /usr/sbin/sendmail -Ctest17.cf -bt Mhub: Warning: first argument in [IPC] mailer must be TCP or FILE ADDRESS TEST MODE (ruleset 3 NOT automatically invoked) Enter <ruleset> <address> > $=w nyanco.kingdom nyanco localhost [192.168.2.1] [192.168.0.5] [127.0.0.1] nyanco.kingdom.of.cat [localhost] > /quit
表示がおかしいかも しれませんが これが にゃんたろうの 実力です 参考にしているもの ウクライナ
http://www.unix.org.ua/orelly/networking/sendmail/ch12_01.htm
と 異なる点は ”localhost”ちゅうもんが 既に 存在していると云うことで す 従って 何回も お断りを している事 (sendmail ちゅうもんは ヴァージョ ン とかデストリビューションにより 色々 異なる結果ちゅうか 条件、 環境ちゅ うか そういうもんが 異なる) これを 頭の何処かに置いといて 後の事 を 考えねば いけんと云うことです。
class クラス て 何かと云う事です また 何をしようとしているのでせう? test17.cf にて こういう 所が 有りました
R$-@$w $@ $1@${HUB}
これは 何を していたかと いうと
Begin LHS R$-@$w R : LHS を 始めます $- : 1個の トークン の 代表 (ワイルドカード 1個の トークンを 表すもの) @ : @ マーク そのもの $w : (short domain name) 1例として ”nyanco” End LHS tab : (空白ではない タブ で 空ける) Begin RHS $@ : RHS の プリフィックス マッチしたら この ; ルールセットは この処理 RHS をして 終わりになる ; 現在の 処理は おえて このルールを return する $1 : 作業領域”workspace”の 一番目の トークン @ : @ マーク そのもの ${HUB} : D{HUB}nyanco.kingdom.of.cat で 定義された もの (1例として) ; ”nyanco.kingdom.of.cat”(canonical domain name) End RHS
この場合 $w を 使用した 経緯は $+ (一つ以 上の 何らかの トークン マッチさせるもの)で 処理しようとすると 不都合 が 出てくる
まず user@nyanco このパターン を 望んでいる (user は色々変化するが) $+ を 持ってくると user@nyanco は勿論 OK であるが user@nanndemo.kanndemo.OK 等も 採用 してしまう つまり マッチする それじゃ そのもの ずばり nyanco にすれば 良い これは これで 構わないが nyanco から nyanzi に 変更した時に 対応忘れが ある (対応できれば 採用可能) そこで 半自動 で それを 保持しているものを 使用する事に する 半自動 というのは 何処かで 決めておかないと いけない 例えば $ hostname nyanco で 得られるが これは /etc 内の hosts HOSTNAME 等で 決まっている これは サーバーの (計算機)の 設定が 変わらない限 変更は 無い いわば 大本であると考えられるので これを使うようにした
ここまでは 今までの ことである
計算機の 名前として
$ /usr/sbin/sendmail -Ctest16.cf -d0.1 -bt < /dev/null /* 抜粋 */ (short domain name) $w = nyanco (canonical domain name) $j = nyanco.kingdom.of.cat (subdomain name) $m = kingdom.of.cat (node name) $k = nyanco
この場合 user@nyanco user@nyanco.kingdom.of.cat の 場合も ユーザーの アドレスとしては ありうる もし IP アドレス で user@987.654.321.789 の 場合も 有るかもしれない これら すべて 真っ当な アドレス と考え られる へたら それに 対応させる $w 相当 のものを 使用する事ができれば 言いと云う事に なる。
少し 観点を 変えてみよう 今までは ”$w”に 注目してきたが まとめて リ ストの 形にして その代表として 参照出来るように しても よいのでは 無いかいな これは 単独の 決め方に なるのであるが
CXlist C{XXX}list 実例 として Cw server1 server2 あるいは Cw server1 Cw server2 また Cwserver1 Cwserver2
クラス設定コマンド の 形式は 上記のように 設定します 最初はC で始め 次に クラスの名前を 空白を入れづに続けま す この場合は X とか {XXX} 、w がこの場合 の クラスの名前です その後 リスト これは 同じ行に 空白で区切った 要素の 文字列を 続けて 入れていきます 今回は server1 server2 に相当します 決め方は 個々に つまり 1行に 2個のリストを 入れても 1個ずつ いれて 2行に しても クラスの名前が 同じであれば sendmail は 同じ クラスとして 取り扱って くれます。クラスの名前 と リス トの 間は 空白が 有っても 無くても 問題は 有りません
クラスは LHS の中で
$=X $={XXX}
の形で プリフィックス ”$=”の形で参照されます、X や XXX は クラス名 です。
にゃんたろう 拝!
2006年10月 6日 (金) 23:13:52 JST 作成