1PublicInbox::SaPlugin::ULsiesrtMCiornrtorri(b3u)ted PerlPuDbolciucmIennbtoaxt:i:oSnaPlugin::ListMirror(3)
2
3
4
6 PublicInbox::SaPlugin::ListMirror - SpamAssassin plugin for mailing
7 list mirrors
8
10 loadplugin PublicInbox::SaPlugin::ListMirror
11
12 Declare some mailing lists based on the expected List-ID value,
13 expected servers, and mailing list address:
14
15 list_mirror List-ID <foo.example.com> *.example.com foo@example.com
16 list_mirror List-ID <bar.example.com> *.example.com bar@example.com
17
18 Bump the score for messages which come from unexpected servers:
19
20 header LIST_MIRROR_RECEIVED eval:check_list_mirror_received()
21 describe LIST_MIRROR_RECEIVED Received does not match expected
22 score LIST_MIRROR_RECEIVED 10
23
24 Bump the score for messages which Bcc the list:
25
26 header LIST_MIRROR_BCC eval:check_list_mirror_bcc()
27 describe LIST_MIRROR_BCC Mailing list was Bcc-ed
28 score LIST_MIRROR_BCC 5
29
31 This plugin contains common functions to provide accurate, ongoing
32 mirrors of existing mailing lists. It may be used independently of the
33 rest of public-inbox, it does not depend on any public-inbox code, only
34 SpamAssassin.
35
37 This plugin has no administrator settings, aside from the need to load
38 it via "loadplugin" and enabling user rules "allow_user_rules 1"
39
41 list_mirror HEADER HEADER_VALUE HOSTNAME_GLOB [LIST_ADDRESS]
42 Declare a list based on an expected "HEADER" matching
43 "HEADER_VALUE" coming from "HOSTNAME_GLOB". "LIST_ADDRESS" is
44 optional, but may specify the address of the mailing list being
45 mirrored.
46
47 "List-ID" is the recommended value of "HEADER" as most mailing
48 lists support it.
49
50 An example of "HEADER_VALUE" is "<foo.example.org>" if "HEADER" is
51 "List-ID".
52
53 As of public-inbox 2.0, using "List-ID" as the "HEADER" and a
54 "HEADER_VALUE" contained by angle brackets (<list-id>), matching is
55 done in accordance with RFC 2919
56 <https://tools.ietf.org/html/rfc2919>. That is, "HEADER_VALUE"
57 will be a case-insensitive substring match and ignore the optional
58 description "phrase" as documented in RFC 2919.
59
60 All other "HEADER" values use exact matches for backwards-
61 compatibility.
62
63 "HOSTNAME_GLOB" may be a wildcard match for machines where mail can
64 come from or an exact match.
65
66 "LIST_ADDRESS" is only required if using the
67 "check_list_mirror_bcc" eval rule
68
69 "list_mirror" may be specified multiple times.
70
72 header LIST_MIRROR_RECEIVED eval:check_list_mirror_received()
73 The "check_list_mirror_received" function implements "Received:"
74 header checking based on "list_mirror" configuration values.
75
76 This rule can be used to score and prevent messages from being
77 injected directly into your mirror without going through the
78 expected mailing list servers:
79
80 ifplugin PublicInbox::SaPlugin::ListMirror
81 header LIST_MIRROR_RECEIVED eval:check_list_mirror_received()
82 describe LIST_MIRROR_RECEIVED Received does not match expected
83 endif
84
85 header LIST_MIRROR_BCC eval:check_list_mirror_bcc()
86 The "check_list_mirror_bcc" function checks for Bcc to mailing
87 lists declared with a "LIST_ADDRESS" via "list_mirror"
88
89 Spammers will often Bcc mailing lists; while it's uncommon and
90 strange for valid messages to be Bcc-ed to any public mailing list.
91 This rule allows users to assign a score to Bcc-ed messages
92
93 ifplugin PublicInbox::SaPlugin::ListMirror
94 header LIST_MIRROR_BCC eval:check_list_mirror_bcc()
95 describe LIST_MIRROR_BCC Mailing list was Bcc-ed
96 endif
97
99 Feedback welcome via plain-text mail to <mailto:meta@public-inbox.org>
100
101 The mail archives are hosted at <https://public-inbox.org/meta/> and
102 <http://4uok3hntl7oi7b4uf4rtfwefqeexfzil2w6kgk2jn5z2f764irre7byd.onion/meta/>
103
105 Copyright (C) all contributors <mailto:meta@public-inbox.org>
106
107 License: AGPL-3.0+ <http://www.gnu.org/licenses/agpl-3.0.txt>
108
110 Mail::SpamAssassin::Conf
111
112
113
114perl v5.38.0 2023-07-2P5ublicInbox::SaPlugin::ListMirror(3)