[Mailman-Users] Rejecting spam at the SMTP level?

Jim Popovitch jimpop at gmail.com
Sat Aug 8 17:43:35 CEST 2015


On Wed, Aug 5, 2015 at 3:15 AM, Jayson Smith <jaybird at bluegrasspals.com> wrote:
>
> A few months ago I did some Googling and found a project called
> Mailman-Milter which claims to reject unwanted list mail i.e., nonmember
> postings at the SMTP level. I would love to use this, but there's virtually
> no documentation and I've never been able to get it working. Has anyone else
> had any better luck, or do you know of any other solutions? I'm using
> Sendmail, by the way.

I'm not exactly sure how to do it in Sendmail (been a long time since
I've used that) but in Postfix it can be done by setting up a custom
master.cf service(s) and restriction class(es).

/etc/postfix/master.cf:
    # Mailman list member checks
    127.0.0.1:27015 inet    n       n       n       -       1       spawn
           user=mailman
argv=/usr/local/lib/mailman/scripts/check_subscriber mylist
    127.0.0.1:27016 inet    n       n       n       -       1       spawn
           user=mailman
argv=/usr/local/lib/mailman/scripts/check_subscriber mylist2

You can get a copy of the check_subscriber script here:
http://paste.debian.net/plainh/95fd6c08

You then need to setup a restriction class that matches a mailinglist
posting address and then hooks into the master.cf service on
127.0.0.1:27015 listed above.  The restriction class matches just the
mailinglist posting address (not the -bounce, -owner, -subscribe,
etc).

/etc/postfix/check_recipients:
mylist at mydomain.tld             mailman_subscribers_mylist
mylist2 at mydomain.tld           mailman_subscribers_mylist2

/etc/postfix/main.cf
    smtpd_client_restrictions=
        permit_mynetworks,
        ......
        check_recipient_access hash:/etc/postfix/check_recipients,
        permit,

    # declare our custom restriction classes
    smtpd_restriction_classes =
        mailman_subscribers_mylist
        mailman_subscribers_mylist2

   # define our custom restriction class for mylist
  mailman_subscribers_mylist =
        check_sender_access tcp:127.0.0.1:27015,
        permit

   # define our custom restriction class for mylist2
   mailman_subscribers_mylist2 =
        check_sender_access tcp:127.0.0.1:27016,
        permit


I would be interested in hearing/learning about how to make that work
in sendmail if you get the oppty to shoehorn something like this it
into your setup.

-Jim P.


More information about the Mailman-Users mailing list