Subject: smtpupd-12: MAIL resets state tables and buffers

From: Gregory Neil Shapiro <[email-masked]>
Date: Sun, 30 Jul 2000 21:39:45 -0700 (PDT)

Section 4.1.4 states, "MAIL ... MUST not be sent if a mail transaction is
already open" which I agree with.  However, the wording in 3.3 and 4.1.12
do not make this restriction and actually read as if:

C: MAIL From:<[email-masked]>
S: 250 Ok
C: MAIL From:<[email-masked]>
S: 250 Ok

should be allowed an implicit RSET would be done after receiving the second
MAIL command.

Hoping that 4.1.4 is correct, this restriction should be mentioned in
sections 3.3 and 4.1.12.

---

From: Gregory Neil Shapiro <[email-masked]>
Date: Mon, 31 Jul 2000 19:53:02 -0700 (PDT)

gshapiro> Section 4.1.4 states, "MAIL ... MUST not be sent if a mail
gshapiro> transaction is already open" which I agree with.  However, the
gshapiro> wording in 3.3 and 4.1.12 do not make this restriction and
gshapiro> actually read as if:

gshapiro> C: MAIL From:<[email-masked]>
gshapiro> S: 250 Ok
gshapiro> C: MAIL From:<[email-masked]>
gshapiro> S: 250 Ok

gshapiro> should be allowed an implicit RSET would be done after receiving
gshapiro> the second MAIL command.

gshapiro> Hoping that 4.1.4 is correct, this restriction should be
gshapiro> mentioned in sections 3.3 and 4.1.12.

Note that "4.1.12" should be "4.1.1.2" in the last line of my original
post.

---

From: John Beck <[email-masked]>
Date: Mon, 31 Jul 2000 23:14:09 -0400

(Cited text modified per <[email-masked]>)

Gregory> Section 4.1.4 states, "MAIL ... MUST not be sent if a mail
Gregory> transaction is already open" which I agree with.  However, the
Gregory> wording in 3.3 and 4.1.1.2 do not make this restriction and actually
Gregory> read as if:

Gregory> C: MAIL From:<[email-masked]>
Gregory> S: 250 Ok
Gregory> C: MAIL From:<[email-masked]>
Gregory> S: 250 Ok

Gregory> should be allowed an implicit RSET would be done after receiving the
Gregory> second MAIL command.

Gregory> Hoping that 4.1.4 is correct, this restriction should be mentioned in
Gregory> sections 3.3 and 4.1.1.2.

Actually, 4.1.1.2 does say:

---
In general, the MAIL command may be sent only
when no mail transaction is in progress, see section 4.1.4.
---

So I think that section is OK.  But section 3.3 says:

---
This command tells the SMTP-receiver that a new mail transaction is
starting and to reset all its state tables and buffers, including any
recipients or mail data.
---

This sounds like an implied RSET to me.  So I propose modifying the
first paragraph of 3.3 to:

---
There are three steps to SMTP mail transactions.  The transaction
starts with a MAIL command which gives the sender identification.
(In general, the MAIL command may be sent only when no mail transaction
is in progress; see section 4.1.4.)  A series of one or more RCPT
commands follows giving the receiver information.  Then a DATA command
initiates transfer of the mail data and is terminated by the "end of
mail" data indicator, which also confirms the transaction.
---

-- John