Strange RT-Mailgate error

Hello,

I have been struggling with this error for about a week. I never saw this
error running rt2, and started occurring when I updated our version of RT
to the latest release in the past 2 weeks. Basically, RT works perfectly
for about 2-3 hours after each time I restart sendmail. Then, for some
reason, I start getting escalation amounts of EX_TEMPFAIL errors stemming
from mailgate. Sometimes new tickets are created, usually they are delayed,
and sendmail will try again after a few minutes. This error quickly expands
to the point of the maillog showing EX_TEMPFAIL errors almost every second.
I can fix the problem by restarting sendmail (in fact, I set up a cron job
to do this until I can figure out the error).

I did make a slight change to the way emails are handled via RT. This may
be causing my errors, but honestly, I don’t see how it could be causing an
error. I had a similair hack in place in RT2, and had no problems. What I
did was modify MailFrom.pm, specifially the GetCurrentUser function. I
commented out the parts that allow unknown users the right to create
tickets or even create a user. We use a registration system for RT, so I
don’t want users to be autocreated via Email. After commenting out the last
half of GetCurrentUser, the function now looks like this:

sub GetCurrentUser {
my %args = ( Message => undef,
CurrentUser => undef,
AuthLevel => undef,
Ticket => undef,
Queue => undef,
Action => undef,
@_ );

 # We don't need to do any external lookups
 my ( $Address, $Name ) = ParseSenderAddressFromHead( 

$args{‘Message’}->head );
my $CurrentUser = RT::CurrentUser->new();
$CurrentUser->LoadByEmail($Address);

 unless ( $CurrentUser->Id ) {
     $CurrentUser->LoadByName($Address);
 }

 if ( $CurrentUser->Id ) {
     return ( $CurrentUser, 1 );
 }

####### Code from this point down is what I added ########

 unless ($CurrentUser->Id) {
         my $Message = "Sender's email address was not found in the 

user database.";
require RT::Template;
my $template = new RT::Template($RT::Nobody);
$template->Load(‘AutoRejectRequest’);
$Message = $template->Content || $Message;

         MailError( To => $ErrorsTo,
                        Subject => "ATTN: NetBurner Support Account 

Required",
Explanation => “$Message”,
MIMEObj => $entity,
LogLevel => ‘crit’
);
return ( $args{‘CurrentUser’}, 0 );
}
}

I am also considering the possibility that this newer version of sendmail
handles spam differently than the version of sendmail I had running with
rt2. I do get a lot of spam to the account, and it may be flooding the server.

What really stumps me is the fact that the server will run perfectly for a
few hours, then slowly degrade to nothing. If anyone has any input, it
would be greatly appreciated.

Forrest Stanley
NetBurner Inc.
fstanley@netburner.com
858-558-0293 x204
“Networking in 1 Day!”
Find out how at http://www.netburner.com