Failure to send RSET

Página superior
Eliminar este mensaje
Responder a este mensaje
Autor: Alan Barrett
Fecha:  
A: exim-users
Asunto: Failure to send RSET
When two messages are delivered over the same SMTP connection, and the
first message has all its recipients refused, then one needs to send
"RSET" before the "MAIL FROM" for the second message. Exim was never
sending "RSET", so the second "MAIL FROM" resulted in the error "503
Sender already specified".

The following patch sends RSET before all except the first message being
sent on an SMTP connection. It would be better to do it only if the
previous message encountered an error of a type that makes RSET necessary.

(0.534 was a prerelease that I talked Philip into giving me. The same
patch will work in 0.54 except perhaps for linenumbers being off by 1.)

--apb (Alan Barrett)

Index: src/transports/smtp.c
*** exim-0.534/src/transports/smtp.c.orig    Sun Jul 28 16:52:42 1996
--- exim-0.534/src/transports/smtp.c    Sun Jul 28 16:54:37 1996
***************
*** 669,675 ****
  /* For continuing deliveries down the same channel, the socket is just the
  standard input or output. */


! else deliver_socket = fileno(stdin);

/* The setting up of the SMTP call is now complete. Any subsequent errors are
message-specific. */
--- 669,682 ----
/* For continuing deliveries down the same channel, the socket is just the
standard input or output. */

! else
!   {
!   deliver_socket = fileno(stdin);
!   /* send RSET, just in case. */
!   write_command("RSET\r\n");
!   if (!read_response(buffer, sizeof(buffer), FALSE, FALSE, ob))
!     goto RESPONSE_FAILED;
!   }


/* The setting up of the SMTP call is now complete. Any subsequent errors are
message-specific. */