Sous Exim, pour refuser l’envoi de SPAM, il est possible de constituer une liste sous la forme d’un fichier texte contenant les emails des expéditeurs à refuser.

Pour ce faire, dans le fichier de configuration, on déclare l’ACL qui va être appellée au moment de la vérification du sender, puis on la définit :

######################################################################
#                    MAIN CONFIGURATION SETTINGS                     #
######################################################################

acl_smtp_mail = acl_check_sender

[...]

######################################################################
#                       ACL CONFIGURATION                            #
#         Specifies access control lists for incoming SMTP mail      #
######################################################################

begin acl

# This access control list is used to check every MAIL FROM in an incoming
# SMTP message. The tests are run in order until the address is either
# accepted or denied.

acl_check_sender:
 deny    senders = /etc/exim/sender_reject.list
 accept

Chaque email à bloquer devra être ajoutée dans le fichier sender_reject.list (une adresse par ligne). Pour valider la nouvelle configuration du serveur SMTP, rien de tel qu’un :

# exim -C /etc/exim/exim.conf -bV

En pratique, lors de l’envoi d’un mail par un expéditeur bloqué, il se produit une erreur 550, comme le montre cette session telnet :

220 smtp.mailserver.fr ESMTP Exim 4.69 Mon, 20 Jun 2009 20:03:58 +0200
EHLO test
250-smtp.mailserver.fr Hello test [127.0.0.1]
250-SIZE 52428800
250-PIPELINING
250-AUTH PLAIN LOGIN
250-STARTTLS
250 HELP
MAIL FROM:<someuser@somedomain.com>
550 Administrative prohibition