On Fri, Aug 10, 2018 at 08:29:34AM -0400, Rich Kulawiec wrote:
Correct. Procmail uses a set of rules to decide what to go with messages presented to it; those rules are usually based on the contents of message headers, but don't have to be. For example, for this mailing list: :0: * ^X-Mailing-List:.*<debian-user@lists.debian.org> /home/rsk/linux/debian-user Translating, this means that any message which has the specified header will be appended to the file named in the last line. (It would be nice if the debian lists complied with RFC 2919 by using List-Id, but at least this header works and is consistent throughout.)
Debian lists have had List-Id for years. This is classic procmail rule bitrot. :)
The equivalent maildrop syntax is: if (/^List-Id: <debian-user.lists.debian.org>/) to linux/debian-userIt's hard to argue that the procmail version is less error-prone or more readable. Especially when you get to things like
:0 Whc: $HOME/msgid.lock | formail -D 8192 $HOME/msgid.cache :0 a .duplicate/ versus `reformail -D 8192 msgid.cache` if ( $RETURNCODE == 0 ) to Maildir/.duplicateVery few people can read and understand the procmail version without looking up what the 'W', 'h', 'c', and 'a' mean, and why there's sometimes two ':' and sometimes one. It was a great program back in the day, but that day was back when we were still writing sendmail.cf by hand and the procmail syntax was comparatively easy to read. If you're starting from scratch, this is not the place to start.
Mike Stone