[Mimedefang] md_check_against_smtp_server

Paul Houselander housey at sme-ecom.co.uk
Fri Oct 19 07:19:44 EDT 2007


Hi

Ive been using this filter to do recipient verfication
http://www.mimedefang.org/kwiki/index.cgi?RecipientCheckBDBCache

Its been working really well, however ive just got a new customer who is
running a CommuniGate Pro 4.1.8 back end server which I am trying to verify
against.

The filter wont reject any users to this particular mail server.

The server responds with (ive replaced various bits with xxxxxx)

[root at xxxx ~]# telnet x.x.x.x 25
Trying x.x.x.x...
Connected to x.x.x.x (x.x.x.x).
Escape character is '^]'.
220 xxxxxxx ESMTP CommuniGate Pro 4.1.8
EHLO xxxxxxxx
250-xxxxxxx we trust you xxxxxxxxx
250-HELP
250-PIPELINING
250-ETRN
250-DSN
250-TURN
250-ATRN
250-SIZE 31457280
250-STARTTLS
250-AUTH=LOGIN
250-AUTH LOGIN PLAIN CRAM-MD5 DIGEST-MD5 MSN
250-8BITMIME
250 EHLO
MAIL FROM: paul at xxxxxx
250 paul at xxxxxxx sender accepted
RCPT TO: xxxxx at xxxxxxxx.com
550 xxxxx at xxxxxxxx.com unknown user account

Ive added unknown user account to the $msgre variable in the script but it
never rejects the user. Below is a small extract from the script

my $msgre = "5\.1\.1|No Such user|User unknown|unknown user account";
my ($stat,$msg,$code) = md_check_against_server('<>',$recip,$helo,$server);

if ( $stat == "REJECT" && $msg =~ /$msgre/i ) {
  return("REJECT","No such user");
}

So the "RecipientCheckBDBCache" script checks both the return value of
md_check_against_server is REJECT and that the $msg variable contains the
text in the $msgre variable.

I created a test script and just lifted the md_check_against_smtp_server and
get_smtp_return_code from mimedefang.pl to simulate what was happening and
it does come back with a REJECT and the $msg variable contains the text
"unknown user account"

Any ideals on what else to check, it all looks like it should work but
doesnt (it works fine for every other customer I have set up)

Cheers

Paul





More information about the MIMEDefang mailing list