DirectAdmin has a variety of features and options that can help you fight spam, both for incoming and outgoing messages.
1) The most common tool that is enabled to fight incoming spam, is to enable SpamAssassin:
http://help.directadmin.com/item.php?id=36
We recommend letting CustomBuild install it for you, but still requires you to ensure all perl/cpan modules are present first.
2) To keep outbound email in check, we recommend limits on both a
per-DA-User basis (/etc/virtual/limit) and per-Email basis
(/etc/virtual/user_limit).
http://help.directadmin.com/item.php?id=514
3) Exim can use a feature called RBL Blocking, which scans public
blocklists for sending IPs that have recently been known for sending
spam. Some consider this a bit too agressive, as this will reject all
emails from IPs that are in these lists. Note that SpamAsasssin in #1
also checks these lists, but gives them a score in consideration with
many other things, so only use RBLs via exim if SpamAssassin alone can't
keep up.
http://help.directadmin.com/item.php?id=142
4) "User Level -> SPAM Filters" are a very basic exim fitler
that lets you drop messages which exim has already accepted. This is
less effective for general spam, but can be handy if a message is always
getting through when it contains one specific word you don't like, or
simple blocks of that nature.
Note that exim itself can be customized via
/home/user/.spamassassin/user_prefs to have extra custom rules or score
changes, which is an alternative way of blocking words.
5) Newer versions of the exim.conf SpamBlocker with better tricks/filters.
http://files.directadmin.com/services/SpamBlocker/
Points #6 and #7 refer to
SpamBlocker modules for exim.conf 4.3.1+
6) Easy Spam Fighter is a tool for exim.conf 4.3.1+ that combines
the score of SpamAssassin, in addition to other important checks like
SPF, DKIM, reverse IP, etc.. to block email at smtp-time, so exim never
accepts the spam.
http://files.directadmin.com/services/easy_spam_fighter/
7) BlockCracking is a tool for exim.conf 4.3.1+ that monitors
outbound emails from your accounts/scripts. It counts then number of
failed addresses that a given item (account or script path) has sent to,
and the logic is that spammers will typically blast out to accounts
that often don't exist, as they don't check the list to ensure it's
valid.
http://files.directadmin.com/services/blockcracking/
8) General php security is important for your php scripts.
See tip #2 from the
Basic System Security
guide, so that poorly written php scripts have an extra layer of
security, by disabling functions that are too powerful for hackers.