Oops.. I meant router, not transport. You need an entry in transport and router, but order _does_ matter in the router section, and not in the transport. Therefore, the procmail router should be listed before the maildir or in your case "local_delivery".
Basically, exim will go down the router list and say "do I match this router condition?" It will get to procmail and say "Do I have /usr/bin/procmail and ~/.procmailrc for the user?" If those two conditions exist, then it delivers the mail to procmail
Is this the trasport that you mentioned? What does a procmail setup look like?
For procmail, you will need to have the procmail router and transport. The procmail_pipe is the transport. It basically tells exim what to do with the email should the procmail router match.
Here is my procmail router
procmail: debug_print = "R: procmail for $local_part@$domain" driver = accept domains = +local_domains check_local_user transport = procmail_pipe require_files = ${local_part}:${home}/.procmailrc:+/usr/bin/procmail no_verify no_expn
The transport line says, if this matches, then call the procmail_pipe transport to know where to deliver the email. This particular router verifies that the intended recipient is infact a local user, and then checks the required_files for a .procmailrc and /usr/bin/procmail file. If those are present, then it calls the procmail_pipe transport. Mine looks like this:
procmail_pipe: debug_print = "T: procmail_pipe for $local_part@$domain" driver = pipe path = "/bin:/usr/bin:/usr/local/bin" command = "/usr/bin/procmail" return_path_add delivery_date_add envelope_to_add
The command line will pipe (see the driver line) the full email to that command. Procmail will then figure out who it goes to and read the .procmailrc file to figure out how to deliver it. A simple procmailrc file for maildirs would look something like this:
HOME=/home/jeremy PMDIR=$HOME/.procmail LOGFILE=$PMDIR/log MAILDIR=$HOME/mail/ LOCKFILE=$PMDIR/.lockmail VERBOSE=no
# catch all for inbox :0 $MAILDIR
Jeremy:
So I tried setting it up like you mention. The only thing I don't understand is the driver=accept part. I get an error related to this when I log in as another user and run 'mail -s "testing" mdg'. The error is: -------- avast:/home/mdg# mail -s "testing" mdg Cc: Null message body; hope that's ok 2004-10-14 10:33:52 Exim configuration error router procmail: cannot find router driver "accept" in line 405 Can't send mail: sendmail process failed with error code 1 avast:/home/mdg# ---------
I wondered if you have anything in your .conf about the accept...maybe another section that defines it? I tried to make sure that there were no transport or router conflicts.
My .procmailrc file looks like yours, with obvious changes...homedir and maildir changes. The rest is the same.
My exim.conf looks like this: http://mdg.homelinux.org/exim.conf
Also...I'm not using exim4, and thought this might be a difference.
Any ideas?
Matt