On Sun, 2007-21-01 at 00:19 +0100, Michael Holzt wrote:
> > Bernstein claims that this is a requirement of RFC 821. 
> 
> Now, i'm not sure what Bernstein wrote, but i doubt he wrote that
> a MTA is not allowed to reject a mail at SMTP level.

Sorry, I'm probably SMTP-confused ... let me look up what he wrote ...
http://cr.yp.to/smtp/client.html

        [...]

        The client then sends a DATA request, and waits for the
        response:
        
             DATA
             354 go ahead
        If the server does not accept the request, the client quits.

At this point the mail is accepted.  But we don't know if it has been
delivered until "the final dot" (see below) AND the response from the
server.

        The client then sends the encoded message, waits for the
        response, and quits:
        
             Date: 8 Aug 1998 04:10:45 -0000
             From: [EMAIL PROTECTED]
             To: [EMAIL PROTECTED]
             Subject: chariot is back in service
        
             I patched up the wheel. It's as good as new.
             .
             250 ok 902549473 qp 24035
             QUIT
             221 heaven.af.mil
        If the client encounters a message I/O error, it closes the
        connection immediately, without sending a final dot and without
        sending a QUIT request.

At this point (the 250) the mail has been received and qmail-queue has
written it to disk and read it back.  However, if qmail-queue cannot
queue the mail then a 4xx response is sent and the client keeps the
message and retries.

My reading of rfc 2821 (and DJB) is that the MTA may send a 250 and then
a *subsequent* bounce message ... but that qmail will not do this.

-- 
--gh


Reply via email to