Subject: | Ignored QUIT with LMTP PIPELINING |
Discovered an apparent bug when using Net::Server::Mail::LMTP with a
Postfix client. The Net::Server::Mail::LMTP server announces support for
PIPELINING, which works fine up until the DATA stage, but apparently
ignores a pipelined QUIT command after the message data.
Here's a transcript from a packet capture (with some private data edited
out):
220 [removed] LMTP Net::Server::Mail (Perl) Service ready
LHLO [removed]
250-[removed] Service ready
250 PIPELINING
MAIL FROM:<[removed]>
RCPT TO:<[removed]>
DATA
250 sender <[removed]> OK
250 recipient <[removed]> OK
354 Start mail input; end with <CRLF>.<CRLF>
Received: from [removed] ([removed] [[removed]])
by [removed] (Postfix) with ESMTP id 5B0D212B067
for <[removed]>; Tue, 7 Jul 2009 20:48:30 +0000 (UTC)
Date: Tue, 07 Jul 2009 20:48:30 +0000
To: [removed]
From: [removed]
Subject: test Tue, 07 Jul 2009 20:48:30 +0000
X-Mailer: swaks v20061116.0 jetmore.org/john/code/#swaks
This is a test mailing
.
QUIT
250 2.0.0 Ok: queued as 6E79612B071
421 [removed] Timeout exceeded, closing transmission channel
There's about 5 minutes between the 250 and the closing 421.
As a workaround, I currently have Postfix set to ignore the PIPELINING
capability being advertised.
My code only has a callback for the DATA command.
This is perl, v5.8.9 built for amd64-freebsd
FreeBSD 7.2-RELEASE