キューディレクトリは次のように複数のディレクトリからなります。
new/ active/ incoming/ deferred/ info/sender/ info/recipients/ info/transport/ isolated/info/ には envelope 情報が格納されます。 isolated/ は隔離された不正なメール(ほぼ 100 % SPAM)置場です。 また incoming/ は incoming queue ですが、 それ以外のディレクトリは outgoing 用です。
outgoing の キューファイルを作る時は、一旦 new/ に作成します。 キューファイルを作る作業が終了し、 配送準備 OK となったら new/ から active/ に移動されます。 つまり active/ にあるファイルは配送準備ができているものです。
処理の途中でエラーが起こったら、new/ に残骸が残ります。 定期的にゴミは消すようにしていますが、しばらくは残るわけです。 そのあいだは救出するチャンスともいえますね。
特定の $queue_id object ごとに lock() と unlock() メソッドを使い、 ロックをかけます。 ロックは active/$queue_id ファイルに対しての flock(2) システムコールです。
Copyright (C) 1993-2025 Ken'ichi Fukamachi mail:< fukachan at fml.org >