On 23 Jun 2015, at 8:34, Roman Gelfand wrote:

Periodically, I am running the following command on my spam box...
sa-learn --no-sync --spam /mbx/adomain.com/auser/Maildir/.Junk/{cur,new}

It seems to work.  However, I continue to get this message type.  Why?
Here is SA message.

X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on mail.adomain.com
X-Spam-Level: ***
X-Spam-Status: No, score=3.6 required=5.0 tests=BAYES_99,BAYES_999,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HTML_MESSAGE,SPF_PASS,URIBL_BLOCKED autolearn=no
        version=3.3.2

Your configuration appears to use the default scores for the rules that are being hit there and for the "required" threshold. A 100% certain Bayes judgment (technically anything >99.9%) only adds up to a score of 3.7 with the default scores, and the default threshold is 5.0, so you need *something more* than a Bayes certainty to get SA to call anything spam, using the default configuration. Without seeing the actual mail, what "more" might be is a generic theoretical discussion.

However, in this case there's an obvious first thing to fix: stop using a shared DNS resolver.

The URIBL_BLOCKED "rule" is a message from the operators of the uribl.com service that the DNS resolver used for a query is explicitly refused service. The most common reason for this is excess query volume from a resolver. The only likely reasons for you to hit this are:

1. You are scanning so much mail with SA that you must be a large commercial operation capable of helping to support the uribl.com service as "free for most," so they require you to do so. This seems unlikely for someone newly setting up SA...

2. You are using a DNS resolver that is shared by a large number of other people and in aggregate you are all pounding the uribl.com nameservers as if you are a commercial service provider or large business.

The solution for (2) is a step that should be part of running *ANY* MTA that accepts mail from the world at large: bring up a caching recursive (NOT forwarding) resolver DNS daemon on the same host (or in multi-host environments: same physical LAN) as the MTA and use it as the resolver for the MTA. In addition to being able to use services like uribl.com and Spamhaus that block large resolvers who don't support them, having your own resolver makes DNS resolution substantially faster on average for your MTA. With a modern MTA doing basic spam control, DNS resolution time is a substantial contributor to session lifetime, which is a major determinant of overall capacity. Another positive advantage is that many shared resolvers (especially those run by ISPs) do non-standard things in response to some queries designed to either assist and protect web-surfing users or line their own pockets, depending on the particular resolver and one's PoV. None of those tricks are helpful for an MTA, and some can be positively harmful, so you shouldn't do resolution for an MTA through such a server. A caching-only recursive nameserver isn't a substantial load and isn't difficult to configure, and many OS distributions include such a configuration in the base OS (e.g. FreeBSD) or as the default config in packages of ISC BIND and/or other DNS daemons.

Reply via email to