RT sending mail to itself?

Hi,

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 (stuwww@kub.nl) 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 stuwww@kub.nl).

Then hell started. I got 166 autoresponders in half a minute, because
each autoresponder created a new ticket :frowning: 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”) || “”;
root@kubstu:/opt/rt2#

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
:frowning:

Martin

Martin Schapendonk, martin@schapendonk.org, Phone: +31 (0)6 55770237
Student Information Systems and Management at Tilburg University

Martin Schapendonk wrote:

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”) || “”;
root@kubstu:/opt/rt2#

Only the check in Email.pm is found, but nowhere does RT add that
header. I think this is a serious bug.

Try the attached (unofficial, barely-tested) patch.

An alternate patch would be to look for the RT-Ticket header, but
that’s not set on errors.

loop-patch (778 Bytes)