On Thu, 2002-07-04 at 12:40, Oliver Egginger wrote:
> I have a perl-script which sends mail via the socket interface.
> Previously (with Exim3) I had no problems with this script,
> but with Exim4, when I first try to send mail,
> Exim gives the following error:
>
> 12:52:38 SMTP protocol violation: synchronization error (next input sent too soon): rejected "DATA" H= ...
Its part of ESMTP pipelining.
DATA is a sync point - you need to make sure you have received the
status returns for the MAIL FROM, (potentially multiple) RCPT TO and the
DATA command itself, before you actually send the data on.
I assume your script is ignoring the status returns entirely - probably
not even reading them. From exim's point of view it is seeing
additional stuff after the DATA command even though it has not send the
status information back.
Use one of the perl SMTP modules for doing this rather than rolling your
own - you then get status checking back so you know when all the
recipients were rejected (for example).
Nigel.
--
[ Nigel Metheringham Nigel.Metheringham@??? ]
[ - Comments in this message are my own and not ITO opinion/policy - ]