Simple SPAM Prevention with Exim Aliases

Configuring Exim

You could probably just edit the system_aliases router, but I prefer to add a new one, because it reminds me that the system is in place. Add this to your exim configuration, ideally somewhere below the system_aliases router: simple_anti_spam_alias: driver = redirect allow_fail data = ${lookup{$local_part}wildlsearch{/etc/aliases.simplespam}} file_transport = address_file pipe_transport = address_pipe You may wish to re-start Exim to be 100% sure all is well, but it is not necessary.

Creating aliases.simplespam

Create a file called: /etc/aliases.simplespam Use vi or somesuch and edit the file. A very basic file looks like this: # Simple anti-spam aliases # ------------------------ # We do not wish to get mail from these any more. # Just drop the mail. xyz-testing: :blackhole: # In some cases we may wish to let them know. xyz-nothere: :fail: Gone away, too much spam? # Otherwise all is good. ^xyz.*: xyz The above should be fairly self explaining! Once you are done, re-start exim if it is running as a service.

Testing

Just to be sure all is working as expected, here is the exim output of trying to deliver to each of the addresses above: mailhost ~ # exim -bt xyz-testing mail to xyz-testing@fermit.org.uk is discarded mailhost ~ # exim -bt xyz-nothere xyz-nothere@fermit.org.uk is undeliverable: Gone away, too much spam? mailhost ~ # exim -bt xyz-thiswillwork xyz@fermit.org.uk <-- xyz@fermit.org.uk <-- xyz-thiswillwork@fermit.org.uk router = localuser, transport = local_delivery mailhost ~ # exim -bt xyz-aswillthis xyz@fermit.org.uk <-- xyz@fermit.org.uk <-- xyz-aswillthis@fermit.org.uk router = localuser, transport = local_delivery