How can I set up a site-wide rule to deliver all messages marked as Spam to the user's .Junk folder? And if the folder doesn't exist, create it. I know I can make a .forward file in the user's home directory, but I'm hoping there's a better way to do this. Thanks.
I don't think exim would be the tool to do this, more likely the MDA (Mail Delivery Agent) on your system is responsible for this kind of filtering. Exim has some delivery functions, but usually it is used as an MTA (Mail Transfer Agent) and passes mail off to another program for deliver. Sometimes this is
procmail
ormaildrop
. Those programs have config files that filter mail based on headers and change their delivery decisions based on them.Exim usually will act as and MDA, although it will use
maildrop
orprocmail
if they are available.If Exim is your MDA, you can setup a special router and transport that filters by spam score. This is the easiest way to add this action as the default. Base the router on the
local_delivery
router (likely the last router), and place it right before thelocal_delivery
router. Base the transport on the transport used by thelocal_delivery
router but change the destination to the Junk mailbox (directory or file).I prefer
procmail
when I want to filter email into different mailboxes. You would filter the headers for the Spam header, and write to the appropriate mailbox.