]> 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:

add RE_NOT_SPACE variable
[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="$MAILFILT/bin/train"
36
37 OURDATE=`date -R`
38 OURDATE_SHORT=`date +%Y.%m.%d.%H.%M.%N`
39
40 BASE=$HOME/.maildir
41
42 #DEFAULT="|$DELIVER"
43 DEFAULT=$BASE/
44 ORGMAIL=$HOME/BOUNCED-MAIL
45
46 # maximum message size for spam checking
47 SPAMCHECK_MAX_MESSAGE_SIZE=512000
48
49 # if crm114 is unsure and SA returns a score less-than-or-equal to this,
50 # autotrain crm114 with ham
51 CRM_UNSURE_SA_AUTOTRAIN_LIMIT_HAM=2.0
52 # if crm114 classifies a message as spam but SA returns a score
53 # less-than-or-equal to this, retrain crm114
54 CRM_MISCLASSIFY_SA_AUTOTRAIN_LIMIT_HAM=-1.0
55 # if crm114 is unsure and SA returns a score greater than this, autotrain
56 # crm114 with spam
57 CRM_UNSURE_SA_AUTOTRAIN_LIMIT_SPAM=8.0
58 # if crm114 classifies a message as ham but SA returns a score
59 # greate than this, retrain crm114
60 CRM_MISCLASSIFY_SA_AUTOTRAIN_LIMIT_SPAM=11
61
62 ### constants used in rules
63 NL="
64 "
65 RE_MYDOMAIN="(.+\.)*madduck\.net"
66 RE_MAILRELAYS="(seamus|clegg)\.madduck\.net"
67 RE_SPACE="[     ]"
68 RE_NOT_SPACE="[^        ]"
69 RE_SPACE_NEWLINE="(^|$RE_SPACE)"
70 RE_FIRSTNAME="martin($RE_SPACE_NEWLINE+f(\.?|elix))?"
71 RE_LASTNAME="kraff?t"
72 RE_EXTRACT_HEADER_VALUE="$RE_SPACE*\/$RE_NOT_SPACE.*"
73
74 DEJAVU_HEADER=X-Deja-Vu
75
76 NULL=/dev/null
77 DISCARD=$BASE/.discard/
78 #DISCARD="'|$DELIVER -m BASE.discard'"
79
80 ### variables from the message
81
82 ### local recipient data
83 # user+foobar@my.domain.org
84 # <  >                       $USER
85 #      <    >                $EXTENSION
86 # <         >                $LOCAL
87 #             <           >  $DOMAIN
88 # <                       >  $RECIPIENT
89 USER="${USER:-$LOGNAME}"
90 EXTENSION="${EXTENSION:-}"
91 LOCAL="${LOCAL:-$USER${EXTENSION:++$EXTENSION}}"
92 HOSTNAME="`hostname --fqdn`"
93 DOMAIN="${DOMAIN:-$HOSTNAME}"
94 RECIPIENT="${RECIPIENT:-$LOCAL@$DOMAIN}"
95 ID="$LOGNAME@$HOSTNAME"
96
97 # message-id
98 INCLUDERC=$PMDIR/get-msgid
99
100 # if $SENDER is undefined or not an email address, get it from the message
101 :0
102 * !SENDER ?? @
103 *$ ^Sender:$RE_EXTRACT_HEADER_VALUE
104 { SENDER="$MATCH" }
105
106 :0
107 *$ ^Date:$RE_EXTRACT_HEADER_VALUE
108 { DATE="$MATCH" }
109
110 :0
111 *$ ^From:$RE_EXTRACT_HEADER_VALUE
112 { FROM="$MATCH" }
113
114 :0
115 *$ ^Subject:$RE_EXTRACT_HEADER_VALUE
116 { SUBJECT="$MATCH" }
117
118 :0
119 *$ ^X-Original-To:$RE_EXTRACT_HEADER_VALUE
120 { ORIGINAL_TO="$MATCH" }
121 :0 E
122 { LOG="NO ORIGINAL_TO: $MSGID" }
123
124 # fix variable values for special cases
125 INCLUDERC=$PMDIR/normalise
126
127 :0
128 * ORIGINAL_TO ?? ^\/[^@]+
129 { ORIG_LOCAL="$MATCH" }
130
131 :0
132 * ORIGINAL_TO ?? .+@\/.+
133 { ORIG_DOMAIN="$MATCH" }
134
135 ### run-time variables
136
137 # MSG_DEJAVU
138 # a procmail-style flag, which is true if unset and false if set (to !).
139 # unset by dejavu if the message has already been seen by the filter (according
140 # to the X-Been-There header).
141 MSG_DEJAVU=!
142
143 # DEST
144 # set this to a folder if the message should be delivered elsewhere than the
145 # default
146 DEST
147
148 # SKIP_SPAMCHECKS
149 # if set, cuases spamchecks to be skipped, value lists reason
150 SKIP_SPAMCHECKS
151
152 # SPAMTRAPPED
153 # set by spamtrapped and eqdomains and used to bypass spamchecks and handle as
154 # spam immediately. The value identifies who unset the variable.
155 SPAMTRAPPED
156
157 # IS_SPAM
158 # if set, then the mailfilter is as sure as it gets that the message is spam.
159 # The value identifies who set the variable.
160 IS_SPAM
161
162 # SPAM_DISAGREE
163 # if set, then the various spamchecks disagree about spaminess of the mail.
164 # The value can hold additional information.
165 SPAM_DISAGREE
166
167 # SPAM_UNSURE
168 # if set, then the various spamchecks are unsure about spaminess of the mail.
169 # The value can hold additional information.
170 SPAM_UNSURE
171
172 # SPAM_UNKNOWN
173 # if set, the spamchecks were skipped. The value gives the reason for
174 # skipping.
175 SPAM_UNKNOWN
176
177 # RETRAIN
178 # if set, causes spamfilters to be retrained, according to the variable's value
179 RETRAIN
180
181 # JUSTME
182 # if set, contains reason why justme message was passed
183 JUSTME
184
185 # TRAINED_AS
186 # if set, contains category with which this message has just been trained
187 TRAINED_AS