dspam works great for me most of the time but I've had a long-standing question that I haven't been able to figure out.
In dspam.conf these two Preferences I changed from defaults don't seem to stick. Others that are changed from defaults are fine. Preference "spamSubject=" # { string } -> default:[SPAM] Preference "signatureLocation=headers" # { message | headers } -> default:message After relaunching the dspam daemon these two revert back to defaults after some period of time--minutes or days. To try to get around this I set prefs using dspam_admin for default: mail# dspam_admin li pref default signatureLocation=headers spamSubject= This seems to force spamSubject and signatureLocation settings to be retained but causes this pair of lines in dspam output. One pair when email is delivered and two pair if the email is moved to or from the Junk mailbox. I'm using the antispam plugin with dovecot. Aug 8 15:19:52 mail dspam[95996]: Ignoring disallowed preference 'signatureLocation' Aug 8 15:19:52 mail dspam[95996]: Ignoring disallowed preference 'spamSubject' If I recompile with debug I see this: 95996: [08/08/2013 13:05:24] Loading preferences for uid 0 95996: [08/08/2013 13:05:24] destroying/freeing configuration 95996: [08/08/2013 13:05:24] loaded default preferences externally 95996: [08/08/2013 13:05:24] match attribute 'AllowOverride' with value 'signatureLocation' 95996: [08/08/2013 13:05:24] find attribute 'AllowOverride' 95996: [08/08/2013 13:05:24] _ds_find_attribute(): NULL config 95996: [08/08/2013 13:05:24] -> match: not found attribute 'AllowOverride' 95996: [08/08/2013 13:05:24] match attribute 'AllowOverride' with value 'spamSubject' 95996: [08/08/2013 13:05:24] find attribute 'AllowOverride' 95996: [08/08/2013 13:05:24] _ds_find_attribute(): NULL config 95996: [08/08/2013 13:05:24] -> match: not found attribute 'AllowOverride' 95996: [08/08/2013 13:05:24] aggregated preference 'signatureLocation' => 'headers' 95996: [08/08/2013 13:05:24] aggregated preference 'spamSubject' => '' My dspam version: DSPAM Anti-Spam Suite 3.10.2 (agent/library) Copyright (C) 2002-2012 DSPAM Project http://dspam.sourceforge.net. DSPAM may be copied only under the terms of the GNU Affero General Public License, a copy of which can be found with the DSPAM distribution kit. Configuration parameters: '--prefix=/opt/local' '--sysconfdir=/opt/local/etc' '--mandir=/opt/local/share/man' '--with-logdir=/opt/local/var/log/dspam' '--enable-daemon' '--with-storage-driver=hash_drv,mysql_drv' '--enable-preferences-extension' '--enable-virtual-users' '--with-mysql-includes=/opt/local/include/mysql5/mysql' '--with-mysql-libraries=/opt/local/lib/mysql5/mysql' '--enable-debug' '--enable-verbose-debug' 'CC=/usr/bin/clang' 'CFLAGS=-pipe -Os -arch x86_64' 'LDFLAGS=-L/opt/local/lib -Wl,-headerpad_max_install_names -arch x86_64' 'CPPFLAGS=-I/opt/local/include' My dspam.conf: Home /opt/local/var/dspam StorageDriver /opt/local/lib/dspam/libmysql_drv.dylib DeliveryHost 127.0.0.1 DeliveryPort 10026 DeliveryIdent localhost DeliveryProto SMTP OnFail error Trust root Trust dspam Trust apache Trust mail Trust mailnull Trust smmsp Trust daemon Trust _dspam # I threw everything and the kitchen sink at trusted users Trust _www # to see if it might help Trust _vmail Trust _postfix Trust _dovecot Trust _dovenull Debug * TrainingMode toe TestConditionalTraining on Feature noise Feature whitelist Feature tb=5 Algorithm graham burton Tokenizer osb PValue bcr WebStats on ImprobabilityDrive on Preference "trainingMode=TOE" # { TOE | TUM | TEFT | NOTRAIN } -> default:teft Preference "spamAction=tag" # { quarantine | tag | deliver } -> default:quarantine Preference "spamSubject=" # { string } -> default:[SPAM] Preference "statisticalSedation=5" # { 0 - 10 } -> default:0 Preference "enableBNR=on" # { on | off } -> default:off Preference "enableWhitelist=on" # { on | off } -> default:on Preference "signatureLocation=headers" # { message | headers } -> default:message Preference "tagSpam=off" # { on | off } Preference "tagNonspam=off" # { on | off } Preference "showFactors=off" # { on | off } -> default:off Preference "optIn=off" # { on | off } Preference "optOut=off" # { on | off } Preference "whitelistThreshold=10" # { Integer } -> default:10 Preference "makeCorpus=off" # { on | off } -> default:off Preference "storeFragments=off" # { on | off } -> default:off Preference "localStore=" # { on | off } -> default:username Preference "processorBias=on" # { on | off } -> default:on Preference "fallbackDomain=off" # { on | off } -> default:off Preference "trainPristine=off" # { on | off } -> default:off Preference "optOutClamAV=off" # { on | off } -> default:off Preference "ignoreRBLLookups=off" # { on | off } -> default:off Preference "RBLInoculate=off" # { on | off } -> default:off Preference "notifications=off" # { on | off } -> default:off AllowOverride enableBNR AllowOverride enableWhitelist AllowOverride fallbackDomain AllowOverride ignoreGroups AllowOverride ignoreRBLLookups AllowOverride localStore AllowOverride makeCorpus AllowOverride optIn AllowOverride optOut AllowOverride optOutClamAV AllowOverride processorBias AllowOverride RBLInoculate AllowOverride showFactors AllowOverride signatureLocation AllowOverride spamAction AllowOverride spamSubject AllowOverride statisticalSedation AllowOverride storeFragments AllowOverride tagNonspam AllowOverride tagSpam AllowOverride trainPristine AllowOverride trainingMode AllowOverride whitelistThreshold AllowOverride dailyQuarantineSummary AllowOverride notifications MySQLServer /opt/local/var/run/mysql5/mysqld.sock MySQLUser xxx MySQLPass xxx MySQLDb xxx MySQLCompress false MySQLReconnect true MySQLConnectionCache 10 HashRecMax 98317 HashAutoExtend on HashMaxExtents 0 HashExtentSize 49157 HashPctIncrease 10 HashMaxSeek 10 HashConnectionCache 10 Notifications off PurgeSignatures 14 # Stale signatures PurgeNeutral 90 # Tokens with neutralish probabilities PurgeUnused 90 # Unused tokens PurgeHapaxes 30 # Tokens with less than 5 hits (hapaxes) PurgeHits1S 15 # Tokens with only 1 spam hit PurgeHits1I 15 # Tokens with only 1 innocent hit PurgeSignature off # Specified in purge.sql PurgeNeutral 90 PurgeUnused off # Specified in purge.sql PurgeHapaxes off # Specified in purge.sql PurgeHits1S off # Specified in purge.sql PurgeHits1I off # Specified in purge.sql LocalMX 127.0.0.1 SystemLog on UserLog on Opt out MaxMessageSize 1048576 ServerPort 24 ServerQueueSize 32 ServerPID /opt/local/var/run/dspam.pid ServerMode auto ServerPass.dspam_dop "xxx" ServerParameters "--deliver=innocent,spam" ServerIdent "localhost.local" ServerDomainSocketPath "/opt/local/var/run/dspam.sock" ClientHost "/opt/local/var/run/dspam.sock" ClientIdent "xxx" ProcessorURLContext on ProcessorBias on StripRcptDomain off Any suggestions? The "Ignoring disallowed" lines don't bother me too much, but I think it means maybe I've got something configured incorrectly. Thanks, -Terry Terry Barnum digital OutPost http://www.dop.com ------------------------------------------------------------------------------ Get 100% visibility into Java/.NET code with AppDynamics Lite! It's a free troubleshooting tool designed for production. Get down to code-level detail for bottlenecks, with <2% overhead. Download for free and get started troubleshooting in minutes. http://pubads.g.doubleclick.net/gampad/clk?id=48897031&iu=/4140/ostg.clktrk _______________________________________________ Dspam-user mailing list Dspam-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/dspam-user