Disabling Spam checking for a particular address or domain and Dspam: Difference between pages

From QmailToaster
(Difference between pages)
Jump to navigation Jump to search
No edit summary
 
No edit summary
 
Line 1: Line 1:
[[User_Tips_%26_Tricks#Anti_Spam|Back]]
[[User_Tips_%26_Tricks#Anti_Spam|Back]]<br>
Install Dspam:
wget https://raw.githubusercontent.com/qmtoaster/dspam/master/dspamdb.sh
chmod 755 dspamdb.sh
./dpsamdb.sh<br>
Running the script 'dspamdb.sh' creates the dspam database, installs dspam, and starts the dspam service.
If dspam is implemented for a domain, every email received by that domain will have a dspam signature in the header and a
matching signature will automatically be entered in the dspam maria/mysql database. At this point there has been no training.
To train I have users create a spam and notspam folder in their IMAP account. All spam will be placed into the spam folder and
all ham into the notspam folder. I run a bash script enumerating all mail in these folders and dumping each to dspam.<br>
If there are spam filters in front of dspam that insert header signatures dspam's configuration file must enumerate them
so that they can be ignored for training purposes. Below are the Spamassassin signatures with the proper configuration syntax:<br>
IgnoreHeader X-Spam-Checker-Version
IgnoreHeader X-Spam-Level
IgnoreHeader X-Spam-Status
IgnoreHeader X-Spam-Flag
IgnoreHeader X-Spam-Report
IgnoreHeader X-Spam-Prev-Subject<br>
Here's a list of headers to ignore for your config file: https://raw.githubusercontent.com/qmtoaster/dspam/master/IgnoreHeader<br>
Training:<br>
  Flag options:
      SOURCE=corpus/error
      CLASS=spam/innocent
      MODE=toe/teft/unlearn<br>
  Dspam call:
      cat $email | dspam --user $USER@$DOMAIN --mode=$MODE --class=$CLASS --source=$SOURCE<br>
  Source: Depending on email source, corpus or error, dspam must be called with the flags set below.
      1) Corpus (no dspam signature present in header) Depending on type of corpus, ham or spam, class appropriately.
        SOURCE=corpus
        CLASS=spam or innocent
        MODE=teft
      2) Error (dspam signature present in header) dspam catagorizes spam as ham
        SOURCE=error
        CLASS=spam
        MODE=toe
      3) Error (dspam signature present in header) dspam catagorized ham as spam, dspam must be called twice, to unlearn/train.
        A)
            SOURCE=error
            CLASS=spam
            MODE=unlearn
        B)
            SOURCE=error
            CLASS=innocent
            MODE=toe<br>
Server side filtering 1) Before queue, 2) after queue :<br>
Option 1)
  [[Simscan#Filtering|Simscan]]
Option 2a Domain level)
  If dspam is enabled at domain level in .qmail-default use this file:
  # cd /home/vpopmail/'dspam-enabled-domain'
  # mv .qmail-default .qmail-default.bak
  # chmod 600 .qmail-default && chown vpopmail:vchkpw .qmail-default
  # wget https://raw.githubusercontent.com/qmtoaster/dspam/master/.qmail-default
Option 2b User level)
  If dspam is enabled at user level you must install maildrop and download and install two files
  .qmail and .mailfilter.dspam (or .mailfilter) in each user directory for which Dspam will be enabled.
  # cd /home/vpopmail/'dspam-enabled-domain'/'user'
  # wget https://raw.githubusercontent.com/qmtoaster/dspam/master/.qmail
  # wget https://raw.githubusercontent.com/qmtoaster/dspam/master/.mailfilter.dspam
  # chown vpopmail:vchkpw .qmail
  # chown vpopmail:vchkpw .mailfilter.dspam
  # chmod 600 .qmail
  # chmod 600 .mailfilter.dspam<br>
Mail should flow and be logged
  # cat /var/log/maildrop/maildrop-'user'@'dspam-enabled-domain'.log<br>
At this point in your email client you must create the 'spam' and 'notspam' folders and start placing spam in the spam folder to be learned by the
script.


This tip shows how to disable Spam processing using simscan in your toaster.
== [[Dspam w/PostgreSQL]] ==
 
I added this tip after needing to disable spam checking for a given domain. I had a program which automatically generated emails for events and sent them using a perl script. The perl smtp module was not sending a header that Spam Assasin liked so every mail sent was being tagged as spam. Here are the steps I used to quit processing mails sent from this domain.
 
First I located the simcontrol file at /var/qmail/control. The default file looked like this:
 
 
<nowiki>:clam=yes,spam=yes,spam_hits=3</nowiki>
 
 
I edited the file to look like this:
 
 
<nowiki>mydomain.com:clam=yes,spam=no,spam_hits=8</nowiki>
 
<nowiki>:clam=yes,spam=yes,spam_hits=3</nowiki>
 
 
After saving the file, I ran this command to rebuild the simcontrol.cdb:
 
service qmail cdb
 
If I wanted to just stop spam processing for a single user I would have put:
 
 
<nowiki>user@mydomain.com:clam=yes,spam=no,spam_hits=8</nowiki>
 
 
<nowiki>:clam=yes,spam=yes,spam_hits=3</nowiki>
 
 
Detailed info about the simcontrol file and how to implement this can also be found at
 
[http://wiki.qmailtoaster.com/index.php/Simscan The Simscan Page on this site]

Latest revision as of 11:09, 30 March 2024

Back

Install Dspam:
wget https://raw.githubusercontent.com/qmtoaster/dspam/master/dspamdb.sh
chmod 755 dspamdb.sh
./dpsamdb.sh
Running the script 'dspamdb.sh' creates the dspam database, installs dspam, and starts the dspam service. If dspam is implemented for a domain, every email received by that domain will have a dspam signature in the header and a matching signature will automatically be entered in the dspam maria/mysql database. At this point there has been no training. To train I have users create a spam and notspam folder in their IMAP account. All spam will be placed into the spam folder and all ham into the notspam folder. I run a bash script enumerating all mail in these folders and dumping each to dspam.
If there are spam filters in front of dspam that insert header signatures dspam's configuration file must enumerate them so that they can be ignored for training purposes. Below are the Spamassassin signatures with the proper configuration syntax:
IgnoreHeader X-Spam-Checker-Version IgnoreHeader X-Spam-Level IgnoreHeader X-Spam-Status IgnoreHeader X-Spam-Flag IgnoreHeader X-Spam-Report IgnoreHeader X-Spam-Prev-Subject
Here's a list of headers to ignore for your config file: https://raw.githubusercontent.com/qmtoaster/dspam/master/IgnoreHeader
Training:
Flag options: SOURCE=corpus/error CLASS=spam/innocent MODE=toe/teft/unlearn
Dspam call: cat $email | dspam --user $USER@$DOMAIN --mode=$MODE --class=$CLASS --source=$SOURCE
Source: Depending on email source, corpus or error, dspam must be called with the flags set below. 1) Corpus (no dspam signature present in header) Depending on type of corpus, ham or spam, class appropriately. SOURCE=corpus CLASS=spam or innocent MODE=teft 2) Error (dspam signature present in header) dspam catagorizes spam as ham SOURCE=error CLASS=spam MODE=toe 3) Error (dspam signature present in header) dspam catagorized ham as spam, dspam must be called twice, to unlearn/train. A) SOURCE=error CLASS=spam MODE=unlearn B) SOURCE=error CLASS=innocent MODE=toe
Server side filtering 1) Before queue, 2) after queue :
Option 1) Simscan Option 2a Domain level) If dspam is enabled at domain level in .qmail-default use this file: # cd /home/vpopmail/'dspam-enabled-domain' # mv .qmail-default .qmail-default.bak # chmod 600 .qmail-default && chown vpopmail:vchkpw .qmail-default # wget https://raw.githubusercontent.com/qmtoaster/dspam/master/.qmail-default Option 2b User level) If dspam is enabled at user level you must install maildrop and download and install two files .qmail and .mailfilter.dspam (or .mailfilter) in each user directory for which Dspam will be enabled. # cd /home/vpopmail/'dspam-enabled-domain'/'user' # wget https://raw.githubusercontent.com/qmtoaster/dspam/master/.qmail # wget https://raw.githubusercontent.com/qmtoaster/dspam/master/.mailfilter.dspam # chown vpopmail:vchkpw .qmail # chown vpopmail:vchkpw .mailfilter.dspam # chmod 600 .qmail # chmod 600 .mailfilter.dspam
Mail should flow and be logged # cat /var/log/maildrop/maildrop-'user'@'dspam-enabled-domain'.log
At this point in your email client you must create the 'spam' and 'notspam' folders and start placing spam in the spam folder to be learned by the script.

Dspam w/PostgreSQL