foxcpp / foxcpp/maddy

Several new plugins/modules implemented

Aperta
#534 4 commenti 5 reazioni 1 assegnatario Rivendicata da @foxcpp Vedi su GitHub
new feature
Lingua principale
Go
Stelle
6.1k
Fork
327
Metriche di merge delle PR
Nessuna PR unita negli ultimi 30g

Descrizione

I've made some additions to Maddy that were essential for my own deployment; I'm not sure if any of these would be useful to anyone else, or appropriate for the Maddy core, but I thought I'd offer them up for review just in case. I wouldn't consider them heavily battle-tested, but they've been in production for about 6 months on my own low-volume mail server.

Complete change list is [here](https://github.com/foxcpp/maddy/compare/master...sblinch:maddy:master).

Some highlights:

- [pattern check plugin](https://github.com/foxcpp/maddy/commit/28f5b6f544d78eeb7dc01dff5adb02b16ebc7f7b), to whitelist/blacklist senders, recipients, hosts, and headers by pattern, regexp, or CIDR
- [spamassassin check plugin](https://github.com/foxcpp/maddy/commit/67651264ce43ffa32f72e8c6df32381d0ef1d80d), adding SA support
- [geobl check plugin](https://github.com/foxcpp/maddy/commit/be705f687a10e87ebd4a956db91b292e253bedb3), to ban countries by connecting IP
- [domainbl check plugin](https://github.com/foxcpp/maddy/commit/033cbe00b9a9bb01b83761829a48580ee82ea95d), to support SURBL/URIBL/etc
- [safelist support](https://github.com/foxcpp/maddy/commit/365a658fe538a3d5790782469d95e841f0bb9cdd) to add "safelist" in addition to "reject", "ignore", etc., which overrides all other check plugins and ensures a message is delivered
- [crypto storage module](https://github.com/foxcpp/maddy/commit/13f0b5736a96f61a0f7d748079b5f9045d8e40b7), a wrapper that transparently adds encryption support to any other storage blob module
- [delivery attempt logging](https://github.com/foxcpp/maddy/commit/b67e6ab6630430bb9365b127e31347385915c60d), to more easily grep for specific delivery incidents in production logs
- dnsbl improvements to [log which dnsbl providers returned hits, and why](https://github.com/foxcpp/maddy/commit/b9b9338be75863ed8e8286f790c476e40e46e653) and [be more resiliant to dnsbl outages](https://github.com/foxcpp/maddy/commit/cd9bd1ba7b3a5fc2d4ce6b7cc1d1a74fe31f5c13)
- [table storage blob module](https://github.com/foxcpp/maddy/commit/c7c8102cbc6fc2e414ebc84136b31be1c079faca), to use any table module (such as sqlite) as blob storage
- [require_matching_rdns_lax check plugin](https://github.com/foxcpp/maddy/commit/63ae3ff4185421384736ff39ecd805d6afcf9cce), handles a commonly-encountered corner case for require_matching_rdns (not sure if this is even relevant any more; I see there were some changes involving this code since I originally implemented it)

For documentation, for now, I've included a doc.go for each plugin/module that's formatted similarly to docs/reference/checks/*.md.

Guida per i contributori

Apri la guida per i contributori

Valutazione

Questa issue non è ancora stata valutata.

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.