G'day, I've been investigating an issue with using Sender Address Verification using address_verify_sender.
I've established that there is a problem with the implementation of pipelining used by Microsoft's servers, here's an example of the broken behaviour: # telnet 65.55.88.22 25 Trying 65.55.88.22... Connected to mail.global.frontbridge.com (65.55.88.22). Escape character is '^]'. 220 TX2EHSMHS029.bigfish.com Microsoft ESMTP MAIL Service ready at Thu, 25 Nov 2010 06:30:43 +0000 EHLO foo.com 250-TX2EHSMHS029.bigfish.com Hello [150.101.177.132] 250-SIZE 157286400 250-PIPELINING 250-ENHANCEDSTATUSCODES 250-STARTTLS 250-AUTH 250-8BITMIME 250-BINARYMIME 250 CHUNKING RSET RSET RSET RSET QUIT 250 2.0.0 Resetting 221 2.0.0 Service closing transmission channel Connection closed by foreign host. What is expected is 4 consequtive '250 2.0.0 Resetting' lines, but only 1 is seen. This is not limited to RSET commands, but this is the simplest test I could compose that illustrates the problem. It seems that the issue is that if you send several commands pipelined, and one of those commands is a 'QUIT', the server skips ahead to the QUIT and closes the connection. We've verified that this is a major problem with doing sender address verification as that sends MAIL FROM, RCPT TO, RSET, QUIT in one set of pipelined commands, and the server will reliably respond to the MAIL FROM, then send the 221 and close the connection. What I'm trying to figure out how to do is selectively ignore the 250-PIPELINING response from the server, either based on the EHLO response (*.bigfish.com is a common factor between these connections) or simply ignore 250-PIPELINING for all sender address verification connections. I can disable it globally using smtp_discard_ehlo_keywords but does anyone have any ideas of how to selective disable pipelining? I'd rather not turn it off globally. -- Regards, Stephen Thorne Development Engineer Netbox Blue