File: mailfilterex.5

package info (click to toggle)
mailfilter 0.8.6-2
  • links: PTS
  • area: main
  • in suites: stretch
  • size: 3,280 kB
  • ctags: 2,501
  • sloc: cpp: 2,452; sh: 1,393; ansic: 1,259; lex: 570; yacc: 468; makefile: 167; perl: 72
file content (241 lines) | stat: -rw-r--r-- 9,063 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
.TH MAILFILTEREX "5" "January 2009" Mailfilter "File Format Descriptions"
.SH NAME
mailfilterex \- Mailfilter configuration file examples
.SH SYNOPSIS
.B $HOME/.mailfilterrc examples
.SH DESCRIPTION
For a description of the rcfile format and its keywords see the
.BR mailfilterrc (5)
man page or get a basic set of options from either the INSTALL file or
the doc/ directory of the Mailfilter distribution.
.PP
This man page contains several configuration examples and real-life use cases
for the Mailfilter program.
.SH "EXAMPLES"
If not stated otherwise, the following examples assume you are using extended
Regular Expressions, compared to Mailfilter's default, basic type. General
information on Regular Expressions can be found in the
.BR regex (7)
man page or in any good book on UNIX/POSIX. You could also use slightly
modified examples from
.BR procmail (1)
if it is available on your system.
.SS Filtering Domains
To create a very restrictive set of filter rules at least two keywords should
be used: ALLOW and DENY. DENY could match all messages coming from an annoying
public mail service, while ALLOW matches messages from a good friend who also
uses this annoying public mailer.
.PP
.RS
DENY = "^From:.*public-mail\e\.com"
.br
ALLOW = "^From:.*friend@public-mail\e\.com"
.RE
.PP
These two lines are enough to block all but your friend's e-mail from the
public-mail.com domain.
.SS Case Sensivity
In general case-sensivity is controlled by the REG_CASE keyword. Having
Mailfilter treat expressions case-insensitive is almost always more efficient.
.PP
.RS
REG_CASE = "no"
.br
DENY = "^Subject:.*win money"
.RE
.PP
In this example Mailfilter would delete all messages with subject lines like
`WIN MONEY', `Win Money' or any other mix of capital and non-capital
characters. REG_CASE makes filters ignore the case.
.PP
A more complex set up can be achieved by additionally using the DENY_CASE
keyword.
.PP
.RS
DENY_CASE = "^Subject:.*BUSINESS"
.RE
.PP
In this example only e-mails that have `BUSINESS' in their subject match the
filter, even though in general Mailfilter ignores the case. So in this example
all messages with `business' or `Business' in their subjects would not be
affected by this filter.
.PP
Such an option is very useful if you are not interested in commercial bulk mail
that offers amazing business opportunities, but in all your business partners
who contact you by e-mail.
.SS Defining Friends
The keyword ALLOW can be used to override any spam filters. Similar to the
earlier example ALLOW defines a `friend'.
.PP
.RS
ALLOW = "^Subject:.*mailfilter"
.RE
.PP
Adding this rule to the rcfile would mean all messages that contain anything
about Mailfilter in their subject lines can pass the spam filters. But even
friends tend to send large e-mails sometimes to share their joy about the
latest joke that just made the round in their office. In such cases a limit
can be defined that affects particularly `friends'.
.PP
.RS
MAXSIZE_ALLOW = 500000
.RE
.PP
Setting MAXSIZE_ALLOW to 500000 means no message can be larger than 500
kBytes. (Scanned `office-jokes' are usually around that size.)
.SS Negative Message Filters
In order to create a very restrictive spam protection it can be more useful
sometimes to define which e-mails should not be deleted instantly and
consequently get rid of messages that can not be matched to this criterion -
rather than vice versa. This can be achieved by using negation. The typical
use case is looking at the message tags `To:' or `Cc:' of an e-mail.
.PP
.RS
DENY <> "^(To|Cc):.*my-email@address\e\.com"
.RE
.PP
Having added such a filter to your personal rule set keeps away a lot of spam
that is not directly addressed to your e-mail account. Since this is a very
aggressive way of filtering, you are well advised to keep your `friends list'
up to date. Also note that the above example, using the logical OR operator,
works only with extended Regular Expressions.
.SS Scores
Instead of setting up spam filters, it is also possible to define scores
which can be accumulated until a certain threshold is reached.  This is very
useful to delete advertisements on mailing lists, for instance.  Highscore
marks the threshold:
.PP
.RS
HIGHSCORE = 100
.br
SCORE +100 = "^Subject:.*viagra"
.br
SCORE +100 = "^Content-Type:.*html"
.br
SCORE -100 = "^(To|From):.*my_mailing_list"
.RE
.PP
This simple example is useful to delete mails with a score greater than 100,
i.e. if someone sends an HTML mail to my_mailing_list, the message will
reach score 0.  However, should an HTML mail regarding Viagra reach the list,
then the message will classify as spam, because it reached an overall score
of 100.
.PP
The MAXSIZE_SCORE keyword can be used to add to the accumulated score for
an e-mail.  The following will cause all emails not directly addressed to the
recipient and greater than 60000 bytes in size to be deleted (a useful way of
rejecting many common MS targeted worms and trojans which can clog up your
inbox).
.PP
.RS
HIGHSCORE = 100
.br
MAXSIZE_SCORE +50 = 60000
.br
SCORE +50 <> "^(To|Cc):.*my-email@address\e\.com"
.RE
.PP
This is a less aggressive way of dealing with e-mail sizes than the using the
MAXSIZE_DENY keyword.  Note that this example (by using the expression 
(To|Cc):.*my-email@address\e\.com) works only with extended Regular Expressions.
.PP
.SS General Message Size Limits
It is always a good idea to define a very general size limit for e-mails.
Mailfilter uses the keyword MAXSIZE_DENY for that purpose.
.PP
.RS
MAXSIZE_DENY = 200000
.RE
.PP
Setting it to 200 kBytes can save you a couple of hours, depending on how much
mail you get everyday. Messages bigger than that get deleted on the server,
unless they match any of the ALLOW rules. To achieve maximum efficiency it
makes sense to use both MAXSIZE_DENY and MAXSIZE_ALLOW. No one should block up
your mail box, no `friends', no others.
.PP
A rule of thumb is to be twice as tolerant towards friends than you are towards
anonymous people.
.SS Dealing with Duplicates
Most people want to download a message only once, even though it might have
been sent to two or three of their accounts at the same time. The simple line
.PP
.RS
DEL_DUPLICATES = "yes"
.RE
.PP
will take care of duplicates and makes sure that only one copy of a message
has to be delivered.
.SS Normalisation of Message Subjects
Every now and then some clever sales person comes up with the brilliant idea to
wrap spam in funny little characters. If you get a message with a subject line
similar to this one `,L.E-G,A.L; ,C.A-B`L`E, .B-O`X`', then ordinary filters
would fail to detect the junk.
.PP
.RS
NORMAL = "yes"
.RE
.PP
Adding this directive to the rcfile tells Mailfilter to `normalise' subject
strings, i.e. leave in only the alpha-numeric characters and delete the rest.
`,L.E-G,A.L; ,C.A-B`L`E, .B-O`X`' would then become `LEGAL CABLE BOX' which
can easily be matched to a spam filter.
.PP
Note that Mailfilter first tries to match the original subject string, before
it checks on the normalised one.
.SS Control Mechanism
Since Mailfilter deletes e-mails remotely, before they have to be downloaded
into the local machine, it is also important to know what is going on while the
program is being executed. The least you should do is define a proper level of
verbosity and a log file.
.PP
.RS
LOGFILE = "$HOME/logs/mailfilter-`date +"%h%y"'"
.br
VERBOSE = 3
.RE
.PP
Level three is the default verbosity level. Using it, Mailfilter reports
information on deleted messages, run-time errors and dates to the screen and
the log file.
.PP
You can use `command' to embedd shell skripts into your path names.  In the
above example it is used to store log files separately for each month and
year.
.SS Extended Regular Expressions
For advanced applications, the basic Regular Expressions are typically not
sufficient. If you know the syntax and usage of the extended expressions, it
is almost always a good idea to set REG_TYPE accordingly.
.PP
.RS
REG_TYPE = "extended"
.RE
.PP
Extended expressions are more flexible, but also more sensitive towards syntax
errors and the like.  Examples in this man page all use extended type.
.SH "NOTES"
If you are new to Regular Expressions and new to Mailfilter, you might want to
experiment a bit, before you accidentally delete messages for real. For such
cases Mailfilter provides two keywords. TEST can be used to only simulate the
deletion of messages and SHOW_HEADERS stores all the e-mail headers that get
examined by the program.
.PP
.RS
TEST = "yes"
.br
SHOW_HEADERS = "$HOME/logs/mailfilter-headers.txt"
.RE
.PP
Use this setup if you are not yet comfortable with the concept of spam
filtering. It may help to understand Regular Expressions better and how to use
them.
.SH SEE ALSO
.BR mailfilter (1),
.BR mailfilterrc (5),
.BR procmailrc (5),
.BR procmailex (5),
.BR regex (7)
.SH COPYRIGHT
Copyright \(co 2000-2014 Andreas Bauer <baueran@gmail.com>
.PP
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.