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-user
It'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/.duplicate
Very 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