3

I want to block some users to sending out mails to other domains in Exim4. I tried the following configuration but did not work.

Changes done in exim.conf file:

In the main configuration section, enabled the acl_smtp_mail control as follows:

acl_smtp_mail = acl_check_mail

Then, in the acl_check_rcpt ACL configuration section, created a new rule:

accept   condition = ${lookup{$sender_address}lsearch{/etc/exim/freezelist_sender_addresses}{1}{0}}
         control   = freeze/no_tell

I tried this but not worked. Please advice me with configuration.

krisFR
  • 13,280
  • 4
  • 36
  • 42
user210108
  • 31
  • 1
  • 1
  • 2

2 Answers2

4

You can use the following acl

acl_smtp_rcpt = acl_check_rcpt

acl_check_rcpt:

  deny
     message = The $sender_address is prohibited to send mail to the $domain
     senders = lsearch;/etc/exim/restricted_sender
     domains = lsearch;/etc/exim/restricted_domains

/etc/exim/restricted_sender
user@example.net

/etc/exim/restricted_domains
gmail.com

Testing

# swaks -s mail.example.net --to alexhha@example.net --from user@example.net
=== Trying mail.example.net:25...
=== Connected to mail.example.net.
<-  220 mail.example.net, [xxx.xxx.114.28]
 -> EHLO www.example.net
<-  250-mail.example.net Hello www.example.net [xxx.xxx.114.28]
<-  250-SIZE 52428800
<-  250-PIPELINING
<-  250-STARTTLS
<-  250 HELP
 -> MAIL FROM:<user@example.net>
<-  250 OK
 -> RCPT TO:<alexhha@example.net>
<** 550 The user@example.net is prohobited to sent mail to the gmail.com
 -> QUIT
<-  221 mail.example.net closing connection
=== Connection closed with remote host.
ALex_hha
  • 7,193
  • 1
  • 25
  • 40
  • 2
    I wish I could add another +1 for demonstrating using swaks, the best ever tool created for testing smtp connections, configuration, and seeing smtp conversation. Great comment! – Todd Lyons Feb 21 '14 at 15:07
0

The final Solution step by step

  1. Create file restricted_sender. Example: /etc/restricted_sender
  2. Edit exim.conf
  3. Add the next rule at the beginning of acl_smtp_rcpt: (or how you have called it)

    deny condition = ${lookup{$sender_address}nwildlsearch{/path/to/the/restricted_sender}   {yes}}
      domains = !+local_domains
    

File /path/to/the/restricted_sender contain emails one per line:

restricted1@domain.com
restricted2@domain.com
masegaloeh
  • 18,236
  • 10
  • 57
  • 106