[Exim] Stopping out-of-office auto-reply mail loops

Top Page

Reply to this message
Author: Andrew Lewis
Date:  
To: exim-users
Subject: [Exim] Stopping out-of-office auto-reply mail loops
Hello,

Currently I am experiencing problems where-in one user will set their
out-of-office auto-reply on, and then mail another user who's auto-reply
is on, causing an infinite mail-loop.

I believe I can rate-limit these messages, which could be good, but I
didn't get working when I set everything up. What I would really like to
do is *check* if the sending address has auto-reply on and send no reply
back if they do. How to implement this as a condition in my
router/transport?

I have:

MYSQL_VACATIONEMAIL = SELECT email from vacation WHERE
email='${quote_mysql:$local_part_prefix$local_part$local_part_suffix@$domain}' AND onvacation='yes'
MYSQL_VACATIONSUBJECT = SELECT subject from vacation WHERE
email='${quote_mysql:$local_part_prefix$local_part$local_part_suffix@$domain}'
MYSQL_VACATIONMESSAGE = SELECT message from vacation WHERE
email='${quote_mysql:$local_part_prefix$local_part$local_part_suffix@$domain}'

vacation:
driver = manualroute
route_data = ${lookup mysql{MYSQL_VACATIONEMAIL}}
unseen
no_expn
no_verify
transport = vacation_user

vacation_user:
driver = autoreply
from = ${local_part_prefix}${local_part}${local_part_suffix}@${domain}
subject = "Re: $h_Subject"
text = ${lookup mysql {MYSQL_VACATIONMESSAGE} {$value} fail }
to = $reply_address
log =
/var/spool/exim/vacation/${local_part_prefix}${local_part}${local_part_suffix}@${domain}.log
user = mail

If I wanted to now have a condition like:

MYSQL_SENDERONVACATION = SELECT email from vacation WHERE
email='${quote_mysql:$reply_address}' AND onvacation='yes';

How could I integrate that?

If some-one can show me a working example of rate-limitting replies that
would be cool too.

Please CC me on your reply.

Best Regards,
AL.