When I evaluated available email software for a medium size installation a
few years ago I did not find anything that would cater all our needs, so I
wrote my own stack (MTA + MX + IMAP/POP3). Currently it runs in high
availability (any server can go down any time without affecting access to
stored mail) cluster of 20 servers (most being used in a sharded and
replicated db cluster). There are not so many users, slightly over 10k and
5+TB of emails, so there's a lot more room to grow. Even though the current
setup is much larger then it all started from not finding a suitable MTA
and once I'd built my own it kind ow grew from that.

The problems I had were mostly related to IP blocking. If you have lots of
users then some of the accounts get taken over from time to time and start
blasting out spam. Once you detect and block these users you already might
be listed in some DNSBL. You can ask for a delisting but it is going to
take some time and during that window your mail might not be accepted. So
the MTA we built uses similar IP rotation techniques, like for example,
PowerMTA. You assign a list of IPs to a server, set weights for each IP and
set up zones for different rules. When it is detected that an IP starts
getting DNSBL error responses from MXs, then this IP is temporarily removed
from the IP pool and a flag is raised for admins who can then start
evaluating the situation. As everything is automatic and you still have IPs
left that are not blacklisted (yet), then there is time for the admins to
react. Ie. if an IP gets listed in the middle of the night, then the admins
to not have to get up (assuming though that the account responsible was
also suspended on our side, otherwise your other IPs end up in lists as
well).

Anyway, the MTA is open source and available here:
https://github.com/zone-eu/zone-mta
And the rest of the mail stack here: https://github.com/nodemailer/wildduck

Regards,
Andris



On Mon, Dec 9, 2019 at 3:24 PM Jaroslaw Rafa via mailop <[email protected]>
wrote:

> Dnia  9.12.2019 o godz. 12:29:56 Steven Champeon via mailop pisze:
> >
> > I'm still running most of the 14K lines of custom m4 sendmail rulesets I
> > wrote back before I knew any better, mostly to deal with specific
> > ratware signatures.
> [...]
> > # f.last_
> > # e.g. "First M. Last" <[email protected]>
> > # e.g. "First Last" <[email protected]>
> > KEL_FirstMLastZZ05 regex -f -a_SPAMSIGN_ "[A-Z]([a-z]+)\ [A-Z]*\.*\
> *[A-Z]([a-z
> > \-]+[A-Z]*[a-z]*)"\ <[a-z].[a-z]\2_[a-z]{2}@
>
> Well... I'd rather do such things in procmail (and in fact I did and still
> do - while today I'm using SpamAssassin, a custom procmail rule set is
> called afterwards, which does the final decision - it's probably as old as
> your sendmail rules).
>
> I did it in procmail just because it was the first tool I learned to use
> for
> mail filtering, and because (after many modifications of course) it still
> works, I keep it :)
>
> Now my procmail runs at mail delivery stage, but while I was still using
> sendmail, I was using this procmail rule set as a filter "inside" sendmail
> (setup similar to after-queue filtering in Postfix, ie. message is
> delivered
> to procmail filter and if it passes through, /usr/sbin/sendmail is called
> to
> re-inject it into the queue - although sendmail does not support this setup
> directly as Postfix does, and it requires some rule tweaking to avoid
> getting stuck in the loop with procmail being called over and over again
> ;))
>
> But the point is, there are probably quite a lot of us who still run old
> custom made hacks in their mail systems :)
> --
> Regards,
>    Jaroslaw Rafa
>    [email protected]
> --
> "In a million years, when kids go to school, they're gonna know: once there
> was a Hushpuppy, and she lived with her daddy in the Bathtub."
>
> _______________________________________________
> mailop mailing list
> [email protected]
> https://chilli.nosignal.org/cgi-bin/mailman/listinfo/mailop
>
_______________________________________________
mailop mailing list
[email protected]
https://chilli.nosignal.org/cgi-bin/mailman/listinfo/mailop

Reply via email to