On 17/01/17 06:59, Ben Kennedy wrote: >> Has anyone tried this with courier-mta? > > I have nothing to contribute except to add my interest to this as > well. I've been running SpamAssassin for years, but with poorer and > poorer results, and have been keen to find an alternative.
FWIW atm I only use spamprobe via maildop using 2 IMAP retraining folders (super simple setup, no ram hogging daemons) and out of ~30 spams per day I get about 2 or 3 spams per week that get through to my Inbox. But its taken a year of training to get to this point. > I'd not heard of rspamd; looks like it could be the thing. It's a monster unto itself and the only way I've got it to work is by installing mailcow-dockerized which I'm trying to "flatten" out so it doesn't require docker containers. It's not as light as I hoped it might be but it should be fast being written in C by a Russian (shades of nginx.) This is it's startup state and it will spawn many more processes under load but it's still only half as much as spamassassin would use... ps -eo rss:10,vsz:10,cmd --sort=rss | grep rspamd 4580 327444 rspamd: hs_helper process 5648 327436 rspamd: main process 59664 402564 rspamd: controller process 60300 478416 rspamd: normal process In the postfix world it's called via rmilter (which also uses redis for caching so that is another ram sinkhole)... main.cf:smtpd_milters = unix:/var/run/rmilter/rmilter.sock which has this rspamd config option in /etc/rmilter.conf... spamd { extended_spam_headers = yes servers = r:localhost:11333; reject_message = "Spam message rejected; If this is not spam contact abuse"; whitelist = 127.0.0.1/32, 192.168.0.0/16, [::1]/128; [...]] }; so rspamd is expected on localhost:11333 and runs quite a range of tests including a baysean filter and also uses LUA to provide a huge level of configurability... classifier "bayes" { tokenizer { name = "osb"; } cache { path = "${DBDIR}/learn_cache.sqlite"; } statfile { symbol = "BAYES_HAM"; path = "${DBDIR}/bayes.ham.sqlite"; spam = false; } statfile { symbol = "BAYES_SPAM"; path = "${DBDIR}/bayes.spam.sqlite"; spam = true; } learn_condition =<<EOD return function(task, is_spam, is_unlearn) [... the rest of an embedded LUA function ...] then dovecot has hooks to call into rspamd for retraining... dovecot.conf: antispam_mail_sendmail = /usr/local/bin/rspamd-pipe which can take advantage of the dovecot-antispam plugin that dynamically retrains spam when items are moved in or out of a Junk folder (interesting use of curl)... #!/bin/bash if [[ ${2} == "learn_spam" ]]; then /usr/bin/curl --data-binary @- http://localhost:11334/learnspam < /dev/stdin elif [[ ${2} == "learn_ham" ]]; then /usr/bin/curl --data-binary @- http://localhost:11334/learnham < /dev/stdin fi exit 0 I haven't got this all working properly yet to even begin to know how to hook this into courier-mta. One thing I've learned from messing around with postfix/dovecot the past month or so is that courier-mta (inc Sam and this list) is the BEST most efficient MTA/IMAP combo by far. Unfortunately with the lack of uptodate (*buntu) packages and zero PHP management frontends I find I have to try and become... ambidextrous. ------------------------------------------------------------------------------ Check out the vibrant tech community on one of the world's most engaging tech sites, SlashDot.org! http://sdm.link/slashdot _______________________________________________ courier-users mailing list courier-users@lists.sourceforge.net Unsubscribe: https://lists.sourceforge.net/lists/listinfo/courier-users