Rate limit exim per user basis

Solution 1:

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
[email protected]: 100
[email protected]: 200
[email protected]: 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.

Solution 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.