Back in April I installed SpamAssassin with Courier's maildrop. maildrop has a nice, simple filtering language. At some point, it stopped working for my parents, though, which baffled me at the time. Fixing this has been on my to-do list for weeks, and I've prodded it on several occasions, always coming up short.
Tonight I sent some test emails and found out the problem was worse than I thought: no local mail was being delivered to them. They get most of their mail via fetchmail pulling from other accounts onto the local Linux server at home (not that they know about any of this), which collects and filters the mail, making it available for IMAP and webmail access. Fetchmail-delivered messages were getting through, and the remainder of their messages were mailing list posts delivered by Mailman, so I had no reason to suspect anything was wrong.
I first narrowed down the problem to maildrop, then to the use of the 'xfilter' command. Running a message through any filter, even /bin/cat, caused maildrop to spit out the following unhelpful message:
Jun 16 00:45:41 calamity postfix/local[10907]: A7D00C0E:
to=<julia\@XXX.sabi.net>, relay=local, delay=3218, status=deferred
(temporary failure. Command output: maildrop: error writing to filter.
/usr/bin/maildrop: Unable to filter message. )
Beyond that, I was stumped. I spent over an hour trying various permissions-related things, reading through source. On a hunch, I tried another change, and it worked. The problem turned out to be that I didn't have a valid shell set for my folks: since they never logged in, what was the point? Maildrop ran into the problem when it tried to read from the pipe it established for communication with the filter process, and nothing was there. There's definitely some room for improvement here!
Still needed on calamity are a decent backup system, and a monitoring system to alert me when any of the increasing array of network services I maintain for myself and my family stops working. (I've got a long way to go before I approach what Matt Schechtman has set up though!)