djblibとbuild-bapを利用したqmail用のツールです。
iffromlocal
no mailbox here by the name.のbounceメールをそのまま返してしまうのは色々と問題があります。
その対策として、それらを~alias/.qmail-defaultで受けてしまうことが
よく行なわれていますが、このエラーメールのおもりも楽ではありません。
そこで戻り先がローカルであれば、そのまま返してしまうということを、
qmail-sendにパッチをあてて行なっていました。
ただ、素性の良いソフトウェアにパッチあてをするのは、あまり好かないので
気になっていました。
そんなおりにSuperscript
でdjbのライブラリを使ってプログラムを作るためのツールを見付けたので、
その使い勝手をみる意味と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)
- 解凍をおこない、カレントディレクトリをうつす
tar zxvf iffromlocal-0.01.bap.tar.gz
- djblibからのソースの取得とパッチあてを行なう
djblibのインストールされたディレクトリをconf-borrowファイルに設定。
sh ./BAP
- コンパイル
iffromlocalのインストール先をconf-homeに設定。(/binが付加されます)
make
- インストール
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