[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Cyrdeliver mit jedem User ausführen (was: Re: mails sortieren und überhaupt)



On Sat, Feb 08, 2003 at 11:41:01PM +0100, Mike Dornberger wrote:

> Daher ein kleines C-Programm, welches ich cyrdeliver_wrapper genannt habe:
> 
> #include <pwd.h>
> #include <sys/types.h>
> #include <errno.h>
> #include <unistd.h>
> #include <string.h>
> 
> int main(int argc, char *argv[]){
>   struct passwd *userinfo;
> 
>   /*if (argc != 2) return EINVAL;*/ /* invalid argument, too many/too
> 				       few args */
>   if (argc != 2) return ECANCELED;  /* invalid argument, too many/too
> 				       few args; EINVAL is also returned
> 				       by execle */

Bei Fehlern würde ich EX_TEMPFAIL an den MTA zurückgeben, damit die
Mail nicht gleich endgültig abgewiesen wird.

>   userinfo = getpwuid(getuid()); /* get user info from /etc/passwd for
> 				    calling user */
>   execl("/usr/sbin/cyrdeliver", "cyrdeliver", "-a", userinfo->pw_name, "-m",
> 	argv[1], NULL);

Funktioniert das auch bei seltsamen Namen? Das Programm sollte
entsprechend reagieren, wenn EACCES zurückkommt oder -1. Siehe auch
man errno und popen().

>   return errno; /* if execle fails, it sets errno; see man execle or man
> 		   execve */

siehe man errno

Eine Fehlermeldung auszugeben, wäre schon irgendwie sinnvoll :)

>   /* Hm, I cannot see in man page, what cyrdeliver returns... */
> 
> }

Ggf. gibt cyrdeliver einen permanenten Fehler zurück, wenn die Mailbox
über Quota ist. Außerdem kann (bzw. wird) es eine Fehlermeldung nach
stdout (oder stderr?) ausgeben, die Du entsprechend an den MTA
weiterleiten müßtest, damit dieser einen Bounce mit sinnvoller
Fehlermeldung erzeugen kann. Was es sonst noch zurückgibt, weiß ich
nicht, aber ich kann mir vorstellen, daß irgendwas kommt, wenn
z. B. die angesprochene Mailbox nicht existiert.

Ob die Fehlerbehandlung mit dem zwischen MTA und cyrdeliver hängenden
procmail funktioniert, sei dahingestellt ...

Wie stellst Du sicher, daß bei der Verwendung Deines Programms keine
Mails verlorengehen?


GH



Reply to: