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

replace existing x-tickle-delivered header
[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_NEWLINE="(^|[  ])"
68 RE_FIRSTNAME="martin($RE_SPACE_NEWLINE+f(\.?|elix))?"
69 RE_LASTNAME="kraff?t"
70 RE_EXTRACT_HEADER_VALUE="[      ]*\/[^  ].*"
71
72 DEJAVU_HEADER=X-Deja-Vu
73
74 NULL=/dev/null
75 DISCARD=$BASE/.discard/
76 #DISCARD="'|$DELIVER -m BASE.discard'"
77
78 ### variables from the message
79
80 ### local recipient data
81 # user+foobar@my.domain.org
82 # <  >                       $USER
83 #      <    >                $EXTENSION
84 # <         >                $LOCAL
85 #             <           >  $DOMAIN
86 # <                       >  $RECIPIENT
87 USER="${USER:-$LOGNAME}"
88 EXTENSION="${EXTENSION:-}"
89 LOCAL="${LOCAL:-$USER${EXTENSION:++$EXTENSION}}"
90 HOSTNAME="`hostname --fqdn`"
91 DOMAIN="${DOMAIN:-$HOSTNAME}"
92 RECIPIENT="${RECIPIENT:-$LOCAL@$DOMAIN}"
93 ID="$LOGNAME@$HOSTNAME"
94
95 # message-id
96 INCLUDERC=$PMDIR/get-msgid
97
98 # if $SENDER is undefined or not an email address, get it from the message
99 :0
100 * !SENDER ?? @
101 *$ ^Sender:$RE_EXTRACT_HEADER_VALUE
102 { SENDER="$MATCH" }
103
104 :0
105 *$ ^Date:$RE_EXTRACT_HEADER_VALUE
106 { DATE="$MATCH" }
107
108 :0
109 *$ ^From:$RE_EXTRACT_HEADER_VALUE
110 { FROM="$MATCH" }
111
112 :0
113 *$ ^Subject:$RE_EXTRACT_HEADER_VALUE
114 { SUBJECT="$MATCH" }
115
116 :0
117 *$ ^X-Original-To:$RE_EXTRACT_HEADER_VALUE
118 { ORIGINAL_TO="$MATCH" }
119 :0 E
120 { LOG="NO ORIGINAL_TO: $MSGID" }
121
122 # fix variable values for special cases
123 INCLUDERC=$PMDIR/normalise
124
125 :0
126 * ORIGINAL_TO ?? ^\/[^@]+
127 { ORIG_LOCAL="$MATCH" }
128
129 :0
130 * ORIGINAL_TO ?? .+@\/.+
131 { ORIG_DOMAIN="$MATCH" }
132
133 ### run-time variables
134
135 # MSG_DEJAVU
136 # a procmail-style flag, which is true if unset and false if set (to !).
137 # unset by dejavu if the message has already been seen by the filter (according
138 # to the X-Been-There header).
139 MSG_DEJAVU=!
140
141 # SKIP_SPAMCHECKS
142 # if set, cuases spamchecks to be skipped, value lists reason
143 SKIP_SPAMCHECKS
144
145 # SPAMTRAPPED
146 # set by spamtrapped and eqdomains and used to bypass spamchecks and handle as
147 # spam immediately. The value identifies who unset the variable.
148 SPAMTRAPPED
149
150 # IS_SPAM
151 # if set, then the mailfilter is as sure as it gets that the message is spam.
152 # The value identifies who set the variable.
153 IS_SPAM
154
155 # SPAM_DISAGREE
156 # if set, then the various spamchecks disagree about spaminess of the mail.
157 # The value can hold additional information.
158 SPAM_DISAGREE
159
160 # SPAM_UNSURE
161 # if set, then the various spamchecks are unsure about spaminess of the mail.
162 # The value can hold additional information.
163 SPAM_UNSURE
164
165 # SPAM_UNKNOWN
166 # if set, the spamchecks were skipped. The value gives the reason for
167 # skipping.
168 SPAM_UNKNOWN
169
170 # RETRAIN
171 # if set, causes spamfilters to be retrained, according to the variable's value
172 RETRAIN
173
174 # JUSTME
175 # if set, contains reason why justme message was passed
176 JUSTME