Finally got around to installing SpamAssassin. The installation went smoothly, but I did have a vehement argument with sendmail about the honor of procmail. For those that only touch sendmail at install, here are some tips:
chmod 600 .forward
. Sendmail doesn’t like to execute world/group writable .forward files.- Simplify the .forward file. The following
incantation for the .forward file is suggested in the SpamAssassin INSTALL file:
"|IFS=' ' && exec /usr/bin/procmail -f- || exit 75 #user"
To reduce the number of cargo-cults out there, this line attempts to set an environment variable (the Input Field Separator) to a space and thenexec
procmail. The argument-f
tells procmail to regenerate the leading ‘From’ mail header. The following ‘-’ means that procmail only updates the timestamp on the ‘From’ line. If procmail bombs out, a mysterious exit code 75 is returned. Perhaps sendmail will do something with processes that return 75. In any case, this line ends in a comment that isn’t used by procmail nor sendmail. It’s for you! You don’t need this rather obtuse line. Instead the following will suffice:
|/usr/bin/procmail
Now that’s a line even I can understand. - Vouch for procmail. When you encounter the following error message sent in an email from postmaster:
“|/usr/bin/procmail” (reason: service unavailable) (expanded from: jjohn)
Make sure that the sendmail restricted shell (smrsh) knows that procmail is a trusted program. This is done by putting a symlink to procmail in a directory smrsh knows about. On my RedHat system, that directory is/etc/smrsh
. Local conditions may vary.
After my little wrasselin’ match with sendmail, I’m reaping the rewards. SpamAssassin appears to have been worth the effort to install.
What are you waiting for?