Message-ID: <19980504170333.1127.qmail@toyland.ping.de>
To: "Peter Seitz" <seitz@bzs.tu-graz.ac.at>
Subject: Re: Sendmail Alias Fehlermeldungen
In-reply-to: Your message of "Mon, 04 May 1998 13:21:20 +0200."
<F5CFDE49D6@bzs.tu-graz.ac.at>
Date: Mon, 04 May 1998 19:03:33 +0200
From: Michael Stiller <michael@toyland.ping.de>
Hallo,
> ich habe bei meinem Sendmail ein mailalias eingerichtet, welches =
> direkt ein Perl-Programm ausfuehrt (die Mail parst und endsprechende =
> Aktionen macht).
> =
> Mir ist es nun passiert, dass ich im laufenden Betrieb versehentlich =
> dem Perl-Programm die Execute-Rechte genommen habe.
> =
> Die User, welche nun an das Mailalias geschrieben haben haben etwas =
> kryptische Fehlermeldungen bekommen (meist unknown Mailer, oder So), =
> mit denen sie eigentlich nichts anfangen konnten.
> =
> Ich kenne solche Mails auch von anderen PRogrammen, wie z.B. Python.
> =
> Kann man das Alias so absichern, dass der User nicht eine so =
> irrefuehrende Fehlermeldung erhaelt?
> =
Das Skript sollte im Fehlerfalle einen Exitcode zur=FCckgeben, den sendma=
il
versteht. Dazu mu=DF man zun=E4chst "sysexits.ph" einbinden:
require 'sysexits.ph';
Wenn man sysexits.ph nicht hat, kann man dieses aus sysexits.h mit h2ph =
erstellen.
Nun f=E4ngt man im Skript Fehler mit den jeweiligen passenden Exitcodes a=
b. =
z.B.: =
&fail(&EX_NOINPUT,"empty message or timeout");
oder =
&fail(&EX_OSERR,"chdir to $maildirprefix failed");
&fail(&EX_NOHOST,"invalid hostname: $host");
Wobei die Subroutine fail ungef=E4hr so aussieht:
sub fail {
my $exitcode =3D shift;
... # do interesting things
exit($exitcode);
}
Sendmail versteht Exitcodes wie z.b. EX_OSERR oder EX_NOHOST und bastelt
da bessere Fehlermeldungen raus.
-Michael