3 PublicInbox::SaPlugin::ListMirror - SpamAssassin plugin for mailing list mirrors
7 loadplugin PublicInbox::SaPlugin::ListMirror
9 Declare some mailing lists based on the expected List-Id value,
10 expected servers, and mailing list address:
12 list_mirror List-Id <foo.example.com> *.example.com foo@example.com
13 list_mirror List-Id <bar.example.com> *.example.com bar@example.com
15 Bump the score for messages which come from unexpected servers:
17 header LIST_MIRROR_RECEIVED eval:check_list_mirror_received()
18 describe LIST_MIRROR_RECEIVED Received does not match expected
19 score LIST_MIRROR_RECEIVED 10
21 Bump the score for messages which Bcc the list:
23 header LIST_MIRROR_BCC eval:check_list_mirror_bcc()
24 describe LIST_MIRROR_BCC Mailing list was Bcc-ed
25 score LIST_MIRROR_BCC 5
29 This plugin contains common functions to provide accurate, ongoing
30 mirrors of existing mailing lists. It may be used independently of the
31 rest of public-inbox, it does not depend on any public-inbox code, only
34 =head1 ADMINISTRATOR SETTINGS
36 This plugin has no administrator settings, aside from the need
37 to load it via C<loadplugin> and enabling user rules
44 =item list_mirror HEADER HEADER_VALUE HOSTNAME_GLOB [LIST_ADDRESS]
46 Declare a list based on an expected C<HEADER> matching C<HEADER_NAME>
47 exactly coming from C<HOSTNAME_GLOB>. C<LIST_ADDRESS> is optional,
48 but may specify the address of the mailing list being mirrored.
50 C<List-Id> or C<X-Mailing-List> are common values of C<HEADER>
52 An example of C<HEADER_VALUE> is C<E<lt>foo.example.orgE<gt>>
53 if C<HEADER> is C<List-Id>.
55 C<HOSTNAME_GLOB> may be a wildcard match for machines where mail can
56 come from or an exact match.
58 C<LIST_ADDRESS> is only required if using the L</check_list_mirror_bcc>
61 C<list_mirror> may be specified multiple times.
69 =item header LIST_MIRROR_RECEIVED eval:check_list_mirror_received()
71 The C<check_list_mirror_received> function implements C<Received:>
72 header checking based on L</list_mirror> configuration values.
74 This rule can be used to score and prevent messages from being injected
75 directly into your mirror without going through the expected mailing
78 ifplugin PublicInbox::SaPlugin::ListMirror
79 header LIST_MIRROR_RECEIVED eval:check_list_mirror_received()
80 describe LIST_MIRROR_RECEIVED Received does not match expected
83 =item header LIST_MIRROR_BCC eval:check_list_mirror_bcc()
85 The C<check_list_mirror_bcc> function checks for Bcc to mailing lists
86 declared with a C<LIST_ADDRESS> via L</list_mirror>
88 Spammers will often Bcc mailing lists; while it's uncommon and
89 strange for valid messages to be Bcc-ed to any public mailing list.
90 This rule allows users to assign a score to Bcc-ed messages
92 ifplugin PublicInbox::SaPlugin::ListMirror
93 header LIST_MIRROR_BCC eval:check_list_mirror_bcc()
94 describe LIST_MIRROR_BCC Mailing list was Bcc-ed
101 Feedback welcome via plain-text mail to L<mailto:meta@public-inbox.org>
103 The mail archives are hosted at L<https://public-inbox.org/meta/>
104 and L<http://hjrcffqmbrq6wope.onion/meta/>
108 Copyright (C) 2016-2020 all contributors L<mailto:meta@public-inbox.org>
110 License: AGPL-3.0+ L<http://www.gnu.org/licenses/agpl-3.0.txt>
114 L<Mail::SpamAssassin::Conf>