On July 21, 1999 at 12:13, John Stumbles wrote:
I've thought about it. I have been considering what the best approach
will be. Maybe something like:
<MsgExcludeFilter>
/^Subject: DON'T DELETE THIS MESSAGE -- FOLDER INTERNAL DATA/m;
</MsgExcludeFilter>
NOTE: I have decided to call it MSGEXCFILTER.
I like this: you could do other useful things such as:
/^Subject: .*(money fast|XXX sex|business opportunity|your web site|test
message|unsubscribe)/im
(Couldn't excluding messages with the X-no-archive header set have
been done this way too?)
Yes, and I give an example in the documentation (btw, I have already
implemented MSGEXCFILTER in my dev tree). However, the CHECKNOARCHIVE
resource may be useful to users who do not know Perl.
What might be useful would be a way of ANDing and ORing
expressions to match on e.g.
<MsgExcludeFilter>
<!-- implicit OR: exclude if any of following rules matches -->
<FilterRule>
/^Subject: DON'T DELETE THIS MESSAGE -- FOLDER INTERNAL DATA/m;
</FilterRule>
[snip]
<!-- implicit AND: this rule matches if both of following
regexps match -->
/^From: \w+\@(aol|hotmail)\.com/im
/^Subject: .*(money|opportunity|your web)/im
</FilterRule>
</MsgExcludeFilter>
Oh, the horrors. Just use Perl:
<MsgExcFilter>
/^Subject: DON'T DELETE THIS MESSAGE -- FOLDER INTERNAL DATA/m ||
/^Subject: unsubscribe/im ||
/^Subject: test message/im ||
(/^From: \w+\@(aol|hotmail)\.com/im &&
/^Subject: .*(money|opportunity|your web)/im);
</MsgExcFilter>
Basically, you have all of Perl to do what you want. You can declare
variables, use loops, require modules, etc. Internally, MHonArc wraps
your code into a function and puts the body of the function (that the
user defines via MsgExcFilter) into a separate package to avoid
conflicts with MHonArc internals. $_ is set to a copy of the message
header, so you can actually modify the $_ in your calculations w/o
affecting the original header.
--ewh