PostMaster.pl Exit Status

I use PostMaster.pl to pipe mail into OTRS (via a postfix transport map). One problem I have noticed is that in the event of a temporary failure, PostMaster.pl will often exit with exit status 1. This causes postfix to bounce the mail, which is obviously undesirable. In particular, this problem happens when the database is down -- our system bounced a couple of messages during a database upgrade when the database was offline for a minute or so. I have prevented this problem in the future by wrapping most of PostMaster.pl in an eval block: --------- eval { ... do PostMaster.pl stuff ... }; if ($@) { # a problem occurred (for example, database unavailable); # return a TEMPFAIL error to the mail program to make it # try again exit (75); } else { exit (0); } --------- This prevents bouncing messages when the database is unavailable. I think this problem must affect other people, too; it depends on how you run PostMaster.pl, of course, but I suspect this change would prevent many systems from bouncing mail during temporary problems -- for example, the same problem would happen if PostMaster.pl is run from an alias. Perhaps this change could be considered for inclusion in OTRS? -- Robert Mathews, Tiger Technologies http://www.tigertech.net/ "Clever things make people feel stupid, and unexpected things make them feel scared."

Hi Robert, On Mon, Jan 19, 2004 at 12:05:19PM -0800, Robert L Mathews wrote:
I use PostMaster.pl to pipe mail into OTRS (via a postfix transport map).
One problem I have noticed is that in the event of a temporary failure, PostMaster.pl will often exit with exit status 1. This causes postfix to bounce the mail, which is obviously undesirable.
In particular, this problem happens when the database is down -- our system bounced a couple of messages during a database upgrade when the database was offline for a minute or so.
I have prevented this problem in the future by wrapping most of PostMaster.pl in an eval block:
---------
eval {
... do PostMaster.pl stuff ...
};
if ($@) { # a problem occurred (for example, database unavailable); # return a TEMPFAIL error to the mail program to make it # try again exit (75); } else { exit (0); }
---------
This prevents bouncing messages when the database is unavailable.
I think this problem must affect other people, too; it depends on how you run PostMaster.pl, of course, but I suspect this change would prevent many systems from bouncing mail during temporary problems -- for example, the same problem would happen if PostMaster.pl is run from an alias.
Perhaps this change could be considered for inclusion in OTRS?
Of course, if it helps! :) However, means this, that emails piped into PostMaster.pl with exit code 75 getting lost (because of no bounce to the sender and not created ticket)? Thanks for your help!
-- Robert Mathews, Tiger Technologies http://www.tigertech.net/
Martin Edenhofer -- ((otrs.de)) :: OTRS GmbH :: Norsk-Data-Str. 1 :: 61352 Bad Homburg http://www.otrs.de/ :: Manage your communication!
participants (2)
-
Martin Edenhofer
-
Robert L Mathews