[Mimedefang] Milter failure processing Read and Delivery Rece ipts

Jim Crippen jcrippen at eliteint.com
Thu Mar 4 13:04:28 EST 2004


Michael,

I'll take all the grasping in the world right now.  I'll try the filter
seperately and see what the perl code returns.  Thanks.

Jim

-----Original Message-----
From: Michael Sims [mailto:michaels at crye-leike.com]
Sent: Thursday, March 04, 2004 11:18 AM
To: mimedefang at lists.roaringpenguin.com
Subject: RE: [Mimedefang] Milter failure processing Read and Delivery
Receipts


Jim Crippen wrote:
> be delivered.  Until Tuesday this all worked very well together.  We
> then added the filter_sender to query the LDAP service in Exchange to
> allow known senders through without checks.  This is when I started
> noticing the error appearing in the maillog files.  As said before
> the messages recieving the error are mostly READ and DELIVERED
> receipts or requested receipts.  The From address seems to get
> stripped from the message in the logs as it shows 'from=<>' instead
> of 'from=<postmaster at RUTTER.ELITEHOU.COM>'.

Your log files are showing the envelope sender, which is not always the same
as the address in the From header.  Read receipts (or disposition
notifications or whatever you want to call them) are sent using a null (<>)
envelope sender for the same reason that delivery status notifications are
sent with a null sender, to prevent mail delivery loops.

Are you absolutely certain that your filter_sender() routine is not being
called?  Did you restart MD after making your changes, and all that jazz?
Because looking at your code in filter_sender() I can see a few places where
a null sender (<>) might cause some problems.  For example, in the case
where $Sender = '<>':

> my ($sender, $ip, $hostname, $helo) = @_;
> $myrecp = "mail=".$sender;
> $myrecp =~ s/<//g;
> $myrecp =~ s/>//g;

$myrecp is now eq to 'mail='.  Perhaps your LDAP server has a problem with a
filter containing "mail="?  OpenLDAP doesn't seem to have a problem with it
(it quickly returns no matches) but perhaps Exchange's LDAP server doesn't
like it, or sees it as "return all results"?  I know I'm kinda grasping at
straws here...

BTW,

> my ($xhostname,$xdomain) = split("@",$sender);
> $xhostname =~ s/<//g;

In the case of a null sender, $xhostname is now "<>" and $xdomain is
undefined.  If you put your filter_sender() back into place later I would
suggest adding:

return('CONTINUE', 'OK') if ($sender eq '<>');

It might avoid a lot of headaches.

___________________________________________
Michael Sims
Project Analyst - Information Technology
Crye-Leike Realtors
Office: (901)758-5648  Pager: (901)769-3722
___________________________________________

_______________________________________________
Visit http://www.mimedefang.org and http://www.canit.ca
MIMEDefang mailing list
MIMEDefang at lists.roaringpenguin.com
http://lists.roaringpenguin.com/mailman/listinfo/mimedefang



More information about the MIMEDefang mailing list