]> git.madduck.net Git - etc/mailfilter.git/blob - procmail/defines

madduck's git repository

Every one of the projects in this repository is available at the canonical URL git://git.madduck.net/madduck/pub/<projectpath> — see each project's metadata for the exact URL.

All patches and comments are welcome. Please squash your changes to logical commits before using git-format-patch and git-send-email to patches@git.madduck.net. If you'd read over the Git project's submission guidelines and adhered to them, I'd be especially grateful.

SSH access, as well as push access can be individually arranged.

If you use my repositories frequently, consider adding the following snippet to ~/.gitconfig and using the third clone URL listed for each project:

[url "git://git.madduck.net/madduck/"]
  insteadOf = madduck:

cosmetic touchup
[etc/mailfilter.git] / procmail / defines
1 ### basic settings
2
3 SHELL=/bin/sh
4 PATH=$HOME/bin:/usr/local/bin:/usr/bin:/bin
5
6 COMSAT=no
7
8 LINEBUF=16384
9 UMASK=0077
10
11 PMVAR=$HOME/.var/procmail
12 MAILFILT=$HOME/.etc/mailfilter
13 PMRULES=$PMDIR/rules
14 CONF=$MAILFILT/config
15 REPLIES=$MAILFILT/autoreplies
16
17 LOGFILE=${LOGFILE:-$PMVAR/log}
18 LOGABSTRACT=no
19
20 LC_CTYPE=de_CH.UTF-8
21
22 #NICE='/usr/bin/nice -20'
23
24 PROCMAIL="$NICE /usr/bin/procmail -p $PMDIR/procmailrc"
25 FORMAIL="$NICE /usr/bin/formail -f"
26 EGREP="$NICE /bin/egrep"
27 SED="$NICE /bin/sed"
28 DELIVER="$NICE /usr/lib/dovecot/deliver"
29
30 CRM114="$NICE /usr/share/crm114/mailreaver.crm -u $MAILFILT/crm114/"
31 SA_PREFS="$MAILFILT/spamassassin/user_prefs"
32 SPAMASSASSIN="$NICE /usr/bin/spamassassin --prefs-file=$SA_PREFS"
33 SPAMC="$NICE /usr/bin/spamc --log-to-stderr --no-safe-fallback"
34 #SPAMC="$SPAMASSASSIN"
35 TRAINER="$NICE $MAILFILT/bin/train"
36
37 SQLITE="$NICE /usr/bin/sqlite3"
38
39 BASE=$HOME/.maildir
40
41 #DEFAULT="|$DELIVER"
42 DEFAULT=$BASE/
43 ORGMAIL=$HOME/BOUNCED-MAIL
44
45 # maximum message size for spam checking
46 SPAMCHECK_MAX_MESSAGE_SIZE=512000
47
48 # if crm114 is unsure and SA returns a score less-than-or-equal to this,
49 # autotrain crm114 with ham
50 CRM_UNSURE_SA_AUTOTRAIN_LIMIT_HAM=2.0
51 # if crm114 classifies a message as spam but SA returns a score
52 # less-than-or-equal to this, retrain crm114
53 CRM_MISCLASSIFY_SA_AUTOTRAIN_LIMIT_HAM=-1.0
54 # if crm114 is unsure and SA returns a score greater than this, autotrain
55 # crm114 with spam
56 CRM_UNSURE_SA_AUTOTRAIN_LIMIT_SPAM=8.0
57 # if crm114 classifies a message as ham but SA returns a score
58 # greate than this, retrain crm114
59 CRM_MISCLASSIFY_SA_AUTOTRAIN_LIMIT_SPAM=11
60
61 ### constants used in rules
62 NL="
63 "
64 RE_MYDOMAIN="(.+\.)*madduck\.net"
65 RE_MAILRELAYS="(seamus|clegg)\.madduck\.net"
66 RE_SPACE="[     ]"
67 RE_NOT_SPACE="[^        ]"
68 RE_SPACE_NEWLINE="(^|$RE_SPACE)"
69 RE_FIRSTNAME="martin($RE_SPACE_NEWLINE+f(\.?|elix))?"
70 RE_LASTNAME="kraff?t"
71 RE_EXTRACT_HEADER_VALUE="$RE_SPACE*\/$RE_NOT_SPACE.*"
72
73 DEJAVU_HEADER=X-Deja-Vu
74
75 NULL=/dev/null
76 DELAYED_QUEUE=$BASE/.delayed/
77 TICKLER_QUEUE=$BASE/.tickler/
78 DISCARD=$BASE/.discard/
79 #DISCARD="'|$DELIVER -m BASE.discard'"
80
81 OURDATE="`date +'%s %Y.%m.%d.%H.%M.%N %a, %d %b %Y %T %z'`"
82 :0
83 *$ OURDATE ?? ^\/${RE_NOT_SPACE}+
84 { OURDATE_TS="$MATCH" }
85 :0
86 *$ OURDATE ?? ^[0-9]+${RE_SPACE}+\/${RE_NOT_SPACE}+
87 { OURDATE_SHORT="$MATCH" }
88 :0
89 *$ OURDATE ?? ^[0-9]+${RE_SPACE}+[0-9.]+${RE_SPACE}+\/${RE_NOT_SPACE}+
90 { OURDATE="$MATCH" }
91
92 ### variables from the message
93
94 ### local recipient data
95 # user+foobar@my.domain.org
96 # <  >                       $USER
97 #      <    >                $EXTENSION
98 # <         >                $LOCAL
99 #             <           >  $DOMAIN
100 # <                       >  $RECIPIENT
101 USER="${USER:-$LOGNAME}"
102 EXTENSION="${EXTENSION:-}"
103 LOCAL="${LOCAL:-$USER${EXTENSION:++$EXTENSION}}"
104 HOSTNAME="`hostname --fqdn`"
105 DOMAIN="${DOMAIN:-$HOSTNAME}"
106 RECIPIENT="${RECIPIENT:-$LOCAL@$DOMAIN}"
107 ID="$LOGNAME@$HOSTNAME"
108
109 # message-id
110 INCLUDERC=$PMDIR/get-msgid
111
112 # if $SENDER is undefined or not an email address, get it from the message
113 :0
114 * !SENDER ?? @
115 *$ ^Sender:$RE_EXTRACT_HEADER_VALUE
116 { SENDER="$MATCH" }
117
118 :0
119 *$ ^Date:$RE_EXTRACT_HEADER_VALUE
120 { DATE="$MATCH" }
121
122 :0
123 *$ ^From:$RE_EXTRACT_HEADER_VALUE
124 { FROM="$MATCH" }
125
126 :0
127 *$ ^Subject:$RE_EXTRACT_HEADER_VALUE
128 { SUBJECT="$MATCH" }
129
130 :0
131 *$ ^X-Original-To:$RE_EXTRACT_HEADER_VALUE
132 { ORIGINAL_TO="$MATCH" }
133 :0 E
134 { LOG="NO ORIGINAL_TO: $MSGID" }
135
136 :0
137 *$ ^X-Trained-As:$RE_EXTRACT_HEADER_VALUE
138 { TRAINED_AS="$MATCH" }
139
140 :0
141 *$ ^X-Tickle-Delivered:$RE_EXTRACT_HEADER_VALUE
142 { TICKLE_DELIVERED="$MATCH" }
143
144 :0
145 *$ ^X-Delayed:$RE_EXTRACT_HEADER_VALUE
146 { DELAYED="$MATCH" }
147
148 # fix variable values for special cases
149 INCLUDERC=$PMDIR/normalise
150
151 :0
152 * ORIGINAL_TO ?? ^\/[^@]+
153 { ORIG_LOCAL="$MATCH" }
154
155 :0
156 * ORIGINAL_TO ?? .+@\/.+
157 { ORIG_DOMAIN="$MATCH" }
158
159 ### run-time variables
160
161 # MSG_DEJAVU
162 # a procmail-style flag, which is true if unset and false if set (to !).
163 # unset by dejavu if the message has already been seen by the filter (according
164 # to the X-Been-There header).
165 MSG_DEJAVU=!
166
167 # DEST
168 # set this to a folder if the message should be delivered elsewhere than the
169 # default
170 DEST
171
172 # SKIP_SPAMCHECKS
173 # if set, cuases spamchecks to be skipped, value lists reason
174 SKIP_SPAMCHECKS
175
176 # SPAMTRAPPED
177 # set by spamtrapped and eqdomains and used to bypass spamchecks and handle as
178 # spam immediately. The value identifies who unset the variable.
179 SPAMTRAPPED
180
181 # IS_SPAM
182 # if set, then the mailfilter is as sure as it gets that the message is spam.
183 # The value identifies who set the variable.
184 IS_SPAM
185
186 # SPAM_DISAGREE
187 # if set, then the various spamchecks disagree about spaminess of the mail.
188 # The value can hold additional information.
189 SPAM_DISAGREE
190
191 # SPAM_UNSURE
192 # if set, then the various spamchecks are unsure about spaminess of the mail.
193 # The value can hold additional information.
194 SPAM_UNSURE
195
196 # SPAM_UNKNOWN
197 # if set, the spamchecks were skipped. The value gives the reason for
198 # skipping.
199 SPAM_UNKNOWN
200
201 # RETRAIN
202 # if set, causes spamfilters to be retrained, according to the variable's value
203 RETRAIN
204
205 # JUSTME
206 # if set, contains reason why justme message was passed
207 JUSTME