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

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