Date: | Tue, 20 May 2003 11:56:50 +0100 |
From: | Graham Barr <gbarr [...] pobox.com> |
To: | bug-libnet [...] rt.cpan.org |
Subject: | SMTP pipelining support in Net::SMTP |
Date: Fri, 20 Sep 2002 22:07:30 +0200
From: Mark Martinec <Mark.Martinec@ijs.si>
Hi,
Preparing a new version of amavisd-new content filter, the proper
use of Net::SMTP and it's conceptual clash with SMTP client-sede
pipelining requirements is causing me concerns. One way or another
I can't fit a round peg into a square hole.
The problem is that with pipelining the SMTP client must not
assume the SMTP reply to MAIL FROM and RCPT TO commands is
comming back right away. If the client waits long enough
for the SMTP server to time out and flush output buffer,
we eventually get a reply, but waste valuable time
waiting for a server timeout.
If on the other hand we postpone fetching SMTP responses until after
we send DATA command, this would guarantee us an instant shower
of responses to all previous commands, as the DATA command
triggers a buffer flush in the server according to rfc2920.
The problem with that approach is that the Net::SMTP module
only returns an array of received SMTP messages, but with stripped-out
SMTP codes - only the SMTP code for the last command is available.
Please advise.
Regards
Mark