On 18/01/17 20:56, Evgeniy Berdnikov wrote: >> And you'd prefer before all the data is transmitted >> because that's a waste of bits and cpu. > > Right. > >> Any more? >> >> What should be preferred practice >> when CHUNKING is used? > > With BDAT syntax we have to mix "pre-data" and "post-data" approaches. > Unfortunately, this way conflicts with RFC3030 which states: > > A 250 response MUST be sent to each successful BDAT data block within > a mail transaction.
IMHO this leaves open the possibility of other responses. Specifically for greylisting, a 4xx. > So the "legal" way is to postpone 4xx response until the completion of > data stream. I think that is needlessly cautious. Sending a 4xx response to a non-LAST BDAT doe not violate 3030. > However, there is more > efficient way: server can close socket on the receipt of BDAT, client > should get EOF and process such transmission error as receipt of 4xx. :) The trouble with that is that the client might treat the drop, reasonably IMHO, as a transmission error - and retry immediately since it doe not have an SMTP-level temp-error (4xx). This is supposition, I admit - but dropping the connection feels ugly. -- Cheers, Jeremy -- ## List details at https://lists.exim.org/mailman/listinfo/exim-users ## Exim details at http://www.exim.org/ ## Please use the Wiki with this list - http://wiki.exim.org/
