djblibとbuild-bapを利用したqmail用のツールです。

iffromlocal


no mailbox here by the name.のbounceメールをそのまま返してしまうのは色々と問題があります。

その対策として、それらを~alias/.qmail-defaultで受けてしまうことが よく行なわれていますが、このエラーメールのおもりも楽ではありません。 そこで戻り先がローカルであれば、そのまま返してしまうということを、 qmail-sendにパッチをあてて行なっていました。
ただ、素性の良いソフトウェアにパッチあてをするのは、あまり好かないので 気になっていました。

そんなおりにSuperscriptdjbのライブラリを使ってプログラムを作るためのツールを見付けたので、 その使い勝手をみる意味とdjbのライブラリの勉強をかねて、 ~alias/.qmail-defaultで動作させることを考えたプログラムを作ってみました。

Overview

iffromlocalは.qmailの中で使うツールです。 メールが配送されてくると、環境変数SENDER(envelope from)のドメイン部が、 control/rcpthostsかcontrol/virtualdomainsに存在するかを調べます。
存在する場合は、引数で指定されたコマンドを起動しリターンコード100で 終了します。(これ以降の.qmailの行は無視される)
存在しない場合は、なにもせずに0で終了します。(.qmailの次の行以降の処理が続けられる)

qmailの設定例

/var/qmail/alias/.qmail-default
|iffromlocal  bouncesaying  'no mailbox here by the name.(#5.1.1)'
&bouncemails@localhost

インストール

コンパイルにはdjblibが必要です。 インストールされていない場合は、前もってインストールしてください。

iffromlocal-0.01.bap.tar.gz (6.5Kbyte)
  1. 解凍をおこない、カレントディレクトリをうつす

  2. tar zxvf iffromlocal-0.01.bap.tar.gz

  3. djblibからのソースの取得とパッチあてを行なう

  4. djblibのインストールされたディレクトリをconf-borrowファイルに設定。
    sh ./BAP

  5. コンパイル

  6. iffromlocalのインストール先をconf-homeに設定。(/binが付加されます)
    make

  7. インストール

  8. su -
    make setup check


djblibとbuildパッケージ

こういったdjbのソフトウェアの周辺ツールを作るとき、 配布の問題を気にせずにdjbのライブラリが使えることは大きな魅力です。
build関係の説明が少ないので、 試行錯誤やスクリプトを読んだりということが少し必要でしたが、 それほど難しいということはありませんでした。
buildパッケージにより、依存関係の解決や、djbのソースに対するパッチの差分生成、バージョンの管理、配布パッケージの作成などを行なうことができます。 djbソフトウェアの周辺ツールのみならず、djbのライブラリを活用できる環境として、いろいろ使いみちがありそうです。

無保証

iffromlocalの動作確認はFreeBSD(4.3,3.5,2.2.8)のみで行なっています。 動作や生成、利用による結果についての保証はしません。



おわびと追記(Aug.18,2002)

djblib/buildの構成が変ったため、bapのパッケージがコンパイルできないようです。 コンパイル済みのqmailのソースのディレクトリで作るものを用意しました。 最新のdjblibへの対応予定は未定です。

iffromlocal-0.01.tar.gz (2Kbyte)

Hiroshi Tsukamoto
Last modified: Tue Oct 16 20:20:54 2001