> > I imagine something like this would work?
>
> So would I, but I've not gotten around to actually playing with rate
> limiting (since these days I just have a personal server running Exim,
> so it's not such an issue).
>
> > # Slow down fast senders; note the need to truncate $sender_rate
> > # at the decimal point.
> > warn ratelimit = 100 / 1h / per_rcpt / strict
> > delay = ${eval: ${sg{$sender_rate}{[.].*}{}} - $sender_rate_limit }s
> > log_message = Sender rate $sender_rate excedes limit, delayed
> >
> > Is there a way to include the number of seconds delayed in each log entry?
>
> Yes; you repeat the string expansion used for setting delay. :^P
# Slow down fast senders; note the need to truncate $sender_rate
# at the decimal point.
warn ratelimit = 200 / 1h / per_rcpt / strict
delay = ${eval: ${sg{$sender_rate}{[.].*}{}} - $sender_rate_limit }s
log_message = Sender rate $sender_rate / $sender_rate_period
excedes limit delayed \
${eval: ${sg{$sender_rate}{[.].*}{}} -
$sender_rate_limit } seconds
Is there a way to get it to add the source and destination email
address to the log entry? When it triggers on webmail users it just
lists 127.0.0.1 and I have no idea who it was.
Matt