procmail
[Top] [All Lists]

Re: Trying to redefine the system-wide mailbox

2004-09-29 06:56:50
I discovered that nothing went to the log file and procmail attempted 
to deliver to /var/mail/spool. It appears that procmail is ignoring 
this file. So, the first question is:

- Does procmail not process the /etc/procmailrc file when it is 
acting as the LDA?

It does if your MTA isn't invoking procmail with the '-p' flag and don't
specify a particular rcfile to use.  How's your mail daemon invoking
procmail?

Also (sorry if this is an insultingly dumb question) are you absolutely
sure that the machine that is doing the mail delivery is the one with
the /etc/procmailrc file?

This almost works but I still need to add "/$logname". So, this leads 
me to the next question:

- Is there a way to make this happen using autoconf or by a "simple" 
modification of the code (I assume in authenticate.c)? Hacking the 
code on my own is a bit tough since my C skills are practically 
non-existent.

This assumes I've understood what you need, is completely untested, use
at your own risk, etc, etc.  But you can try changing these lines in
authenticate.c (lines 190 to 204 in my copy):

    #else
       { static const char mailspooldir[]=MAILSPOOLDIR;
         if(!(pass->mbox=malloc(STRLEN(mailspooldir)+MAILSPOOLHASH*2+
          strlen(pass->pw->pw_name)+1+STRLEN(MAILSPOOLSUFFIX))))
            return "";
         strcpy(pass->mbox,mailspooldir);
         ;{ char*p,*n;size_t i;int c;
            for(p=pass->mbox+STRLEN(mailspooldir),n=pass->pw->pw_name,
             i=MAILSPOOLHASH;i--;*p++='/')
             { if(*n)
                  c= *n++;
               *p++=c;
             }
            strcpy(p,pass->pw->pw_name);

to

    #else
       { static const char mailspooldir[]=MAILSPOOLDIR;
         if(!(pass->mbox=malloc(STRLEN(mailspooldir)+MAILSPOOLHASH*2+
          strlen(pass->pw->pw_name)*2+2+STRLEN(MAILSPOOLSUFFIX))))
            return "";
         strcpy(pass->mbox,mailspooldir);
         ;{ char*p,*n;size_t i;int c;
            for(p=pass->mbox+STRLEN(mailspooldir),n=pass->pw->pw_name,
             i=MAILSPOOLHASH;i--;*p++='/')
             { if(*n)
                  c= *n++;
               *p++=c;
             }
            strcpy(p,pass->pw->pw_name);
            p += strlen(pass->pw->pw_name);
            *p++ = '/';
            strcpy(p,pass->pw->pw_name);

Martin
-- 
Martin McCarthy                 /</    http://procmail.non-prophet.org
    `Procmail Companion'        \>\
     Addison Wesley             /</                  PGP key available

____________________________________________________________
procmail mailing list   Procmail homepage: http://www.procmail.org/
procmail(_at_)lists(_dot_)RWTH-Aachen(_dot_)DE
http://MailMan.RWTH-Aachen.DE/mailman/listinfo/procmail

<Prev in Thread] Current Thread [Next in Thread>