4

How can I implement "rate limit" in Exim so that every user in my exim can send specific number of emails per day.

List A of Users can send 100 emails per day and the list B of users can send 500 emails per day.

Waqas Khan
  • 181
  • 1
  • 1
  • 7

2 Answers2

7

Expanding on HBruijn's answer, I recommend this ACL segment:

# Keep authenticated users under control
deny authenticated = *
     set acl_c_msg_limit=${lookup{$sender_address}nwildlsearch{/etc/exim/send_limits}}
     ratelimit = $acl_c_msg_limit / 1d / strict / $authenticated_id

Then you create the /etc/exim/send_limits file and have this in there:

# Commented lines and blank lines are ignored
# Format is     EMAIL: LIMIT
user1@domain1.com: 100
user2@domain1.com: 200
user3@domainXX.com: 100

# Must be the last line, this is the default limit
*@*: 50

This is untested, but it should get you headed in the right direction.

Todd Lyons
  • 2,006
  • 16
  • 12
2

The manual has a configuration example for a user based rate limiting setting:

# Keep authenticated users under control
deny authenticated = *
     ratelimit = 100 / 1d / strict / $authenticated_id

That restricts authenticated senders to 100 messages per day but which would also be global for all authenticated users.

HBruijn
  • 72,524
  • 21
  • 127
  • 192
  • You can enhance the answer by on the line before the ratelimit, adding a set acl_c_msg_limit=${lookup{$sender_address}nwildlsearch{/etc/exim/send_limits}}, then use that variable in the place of the "100" in your ratelimit. In the /etc/exim/send_limits, have AT THE END of the file "*@*: 10" (assuming that 10 is a good default). Any other email address, including using wildcards, can be to set the limit to 100 or 200 as he desires. – Todd Lyons Oct 14 '14 at 12:22
  • That makes a much better answer than just leaving it as a comment. – HBruijn Oct 14 '14 at 12:59
  • 3
    Maybe it's a stupid question, but, where should I insert this settings? Which is the right ACL? I'm using ubuntu server and it has exim configuration separated in many files, I'm a bit confused how to use this fragmented configuration. – Tobia May 10 '19 at 08:38