Yesterday I really got tired of all spam coming into our queue. So, I
setup a nice procmail filter which will get rid of most of it.
Works like a charm. But, when I tested the filter by sending a regular
email to our queue address (email@example.com) I accidentally used the same
address to send it from (since I sent it as root, and root on our system
is masqueraded by sendmail to firstname.lastname@example.org).
Then hell started. I got 166 autoresponders in half a minute, because
each autoresponder created a new ticket My own fault of course, but
it puzzled me, since RT should be able to detect mail loops itself.
I found out that lib/RT/Interface/Email.pm does CheckForLoops.
CheckForLoops checks to see if the header X-RT-Loop-Prevention exists
and contains $RT::rtname.
Then I tried to find in which cases RT adds such a header, but I
couldn’t find it:
root@kubstu:/opt/rt2# grep X-RT-Loop-Prevention
find . -type f
./lib/RT/Interface/Email.pm: my $RTLoop = $head->get(“X-RT-Loop-Prevention”) || “”;
Only the check in Email.pm is found, but nowhere does RT add that
header. I think this is a serious bug.
Imagine what would happen if someone faked a From-header in the
weekends… that would mean thousands of emails for all queue members
Martin Schapendonk, email@example.com, Phone: +31 (0)6 55770237
Student Information Systems and Management at Tilburg University