--- exim.conf-SpamBlockerTechnology-v4.2.1.txt	2014-06-04 02:42:06.000000000 -0600
+++ exim.conf-SpamBlockerTechnology-v4.2.2.txt	2014-07-23 16:09:01.000000000 -0600
@@ -1,4 +1,4 @@
-# SpamBlockerTechnology* powered exim.conf, Version 4.2.1
+# SpamBlockerTechnology* powered exim.conf, Version 4.2.2
 # April 28, 2014  17:54 (-0700)
 # Exim configuration file for DirectAdmin
 # Requires exim.pl as distributed by DirectAdmin here:
@@ -92,7 +92,7 @@
 smtp_accept_max = 100
 message_body_visible = 3000
 print_topbitchars = true
-smtp_accept_max_nonmail = 19
+smtp_accept_max_nonmail = 10
 smtp_accept_max_per_host = 10
 recipients_max = 150
 smtp_accept_queue_per_connection = 10
@@ -198,7 +198,11 @@
                           } {true}{false} }
   # deny if the HELO is an IP address
     deny message = HELO is an IP address (See RFC2821 4.1.3)
+         condition   = ${if eq{$interface_port}{25}}
          condition   = ${if isip{$sender_helo_name}}
+  # deny if hostname if ylmf-pc, which accounts for a HUGE percentage of BF attacks
+    deny message = Bad HELO - Blocked due to abuse
+         condition   = ${if eq{$sender_helo_name}{ylmf-pc}}
   # deny if the HELO pretends to be one of the domains hosted on the server
     deny message = Bad HELO - Host impersonating domain name [$sender_helo_name]
         condition = ${if match_domain{$sender_helo_name}{+local_domains}{true}{false}}
@@ -211,6 +215,21 @@
   # local parts begin with a dot or contain @ % ! / |
   deny  domains       = +local_domains
         local_parts   = ^[.] : ^.*[@%!/|]
+
+  # If you've hit the limit, you can't send anymore. Requires exim.pl 17+
+  drop  message = User account ${authenticated_id} has sent too many emails
+        condition = ${perl{auth_hit_limit_acl}}
+        authenticated = *
+
+  drop  message = Legitimate bounces are never sent to more than one recipient.
+        senders = : postmaster@*
+        condition = ${if >{$recipients_count}{0}{true}{false}}
+
+  drop  message = REJECTED - Too many failed recipients - count = $rcpt_fail_count
+        log_message = REJECTED - Too many failed recipients - count = $rcpt_fail_count
+        condition = ${if > {${eval:$rcpt_fail_count}}{3}{yes}{no}}
+        !verify = recipient/callout=2m,defer_ok,use_sender
+
   # restrict port 587 to authenticated users only
   # see also daemon_smtp_ports above
   accept  hosts = +auth_relay_hosts
@@ -274,20 +293,20 @@
           logwrite = $sender_host_address whitelisted in local sender whitelist
 
 #EDIT#32:
-    deny message = Email blocked by local blacklist
+    deny message = 554 denied. 5.7.1 Email Blocked due to SPAM
     domains = +use_rbl_domains
     domains = !+skip_rbl_domains
     senders = +blacklist_senders
 
 #EDIT#33:
-    deny message = Email blocked by local blacklist
+    deny message = 554 denied. 5.7.1 Host Blocked due to SPAM
        # only for domains that do want to be tested against RBLs
        domains = +use_rbl_domains
        domains = !+skip_rbl_domains
        hosts = +bad_sender_hosts
 
 #EDIT#34:
-    deny message = Email blocked by local blacklist
+    deny message = 554 denied. 5.7.1 IP Blocked due to SPAM
        hosts = +bad_sender_hosts_ip
 
 #EDIT#35:
@@ -308,15 +327,15 @@
   require verify = sender
 
 #EDIT#39:
-    deny message = Email blockedby local blacklist
+    deny message = 554 denied. 5.7.1 Domain Blocked due to SPAM
        domains = +use_rbl_domains
        domains = !+skip_rbl_domains
        sender_domains = +blacklist_domains
 
 #EDIT#40:
-    deny message = Forged Paypal Mail, not sent from PayPal.
-         senders = *@paypal.com
-         condition = ${if match {$sender_host_name}{\Npaypal.com$\N}{no}{yes}}
+#    deny message = 554 denied. 5.7.1 Forged Paypal Mail, not sent from PayPal.
+#         senders = *@paypal.com
+#         condition = ${if match {$sender_host_name}{\Npaypal.com$\N}{no}{yes}}
 
 #EDIT#41:
   deny message = Email blocked by $dnslist_domain
@@ -398,14 +417,14 @@
     driver = plaintext
     public_name = PLAIN
     server_prompts = :
-    server_condition = "${perl{smtpauth}}"
+    server_condition = "${perl{smtpauth}{0}}"
     server_set_id = $2
 
 login:
     driver = plaintext
     public_name = LOGIN
     server_prompts = "Username:: : Password::"
-    server_condition = "${perl{smtpauth}}"
+    server_condition = "${perl{smtpauth}{0}}"
     server_set_id = $1
 
 #EDIT#47:
@@ -436,19 +455,21 @@
 #COMMENT#49:
 #DIRECTORS CONFIGURATION
 
-#EDIT#50:
 #.include_if_exists /etc/exim.spamassassin.conf
-# spamcheck_director:
+
+#EDIT#50:
+# Spam Assassin
+#spamcheck_director:
 #   driver = accept
 #   condition = "${if and { \
 #    {!def:authenticated_id} \
-#    {!def:h_X-Spam-Flag:} \
 #    {!eq {$received_protocol}{spam-scanned}} \
 #    {!eq {$received_protocol}{local}} \
 #    {exists{/home/${lookup{$domain}lsearch{/etc/virtual/domainowners}{$value}}/.spamassassin/user_prefs}} \
 #    {<{$message_size}{100k}} \
 #    } {1}{0}}"
 #  retry_use_local_part
+#  headers_remove = X-Spam-Flag:X-Spam-Report:X-Spam-Status:X-Spam-Level:X-Spam-Checker-Version
 #  transport = spamcheck
 #  no_verify
 
@@ -696,6 +717,7 @@
 #COMMENT#61:
 remote_smtp:
   driver = smtp
+#.include_if_exists /etc/exim.dkim.conf
 
 #EDIT#62:
 address_pipe:
