vdelivermail improperly translates .qmail commands that return 99 into 111, which is a soft delivery failure. 99 is a success, but stop interpreting further .qmail commands. This causes problems with condredirect and bouncesaying. The following patch resolves the issue.
*** vpopmail-5.3.8/vdelivermail.c Thu Jun 20 16:13:25 2002
--- vpopmail-5.3.8.patched/vdelivermail.c Mon Sep 23 13:24:52 2002
*** 727,732 ****
--- 728,734 ----
case 64: case 65: case 70: case 76: case 77: case 78: case 112: _exit(100);
+ case 99: _exit(99);
case 0: break;
As stated in this paragraph:
command's exit codes are interpreted as follows: 0 means
that the delivery was successful; 99 means that the delivery
was successful, but that qmail-local should ignore all
further delivery instructions; 100 means that the delivery
failed permanently (hard error); 111 means that the delivery
failed but should be tried again in a little while (soft
error). Currently 64, 65, 70, 76, 77, 78, and 112 are con-
sidered hard errors, and all other codes are considered soft
errors, but command should avoid relying on this.
May I have credit for this fix?
Senior Software Engineer