Rejecting some recipients after DATA?

Brian J. Murrell dcc-list-in@interlinx.bc.ca
Sat Apr 20 16:09:45 UTC 2002


I have been looking into hooking dcc into an smtp server with
user-configurable thresholds.  I have come to the junction where,
after the DATA portion of the transaction is complete, a survey of the
bulkiness of the message is done with respect to each one of the
recipients' (RCPT TO:) thresholds.

The problem is, what if some of the recipients, by configuring their
personal thresholds, want the message and others don't?  Should the
SMTP server respond with a 2yz code or a 5yz code of some sort.  The
problem with the latter is that it is a violation of 2821 to do any
delivery if a reject is sent after DATA:


4.2.5 Reply Codes After DATA and the Subsequent <CRLF>.<CRLF>

[snip]

    When an SMTP server returns a permanent error status (5yz) code
    after the DATA command is completed with <CRLF>.<CRLF>, it MUST
    NOT make any subsequent attempt to deliver that message. The SMTP
    client retains responsibility for delivery of that message and may
    either return it to the user or requeue it for a subsequent
    attempt (see section 4.5.4.1).

    The user who originated the message SHOULD be able to interpret
    the return of a transient failure status (by mail message or
    otherwise) as a non-delivery indication, just as a permanent
    failure would be interpreted. I.e., if the client SMTP
    successfully handles these conditions, the user will not receive
    such a reply.

    When an SMTP server returns a permanent error status (5yz) code
    after the DATA command is completely with <CRLF>.<CRLF>, it MUST
    NOT make any subsequent attempt to deliver the message. As with
    temporary error status codes, the SMTP client retains
    responsibility for the message, but SHOULD not again attempt
    delivery to the same server without user review and intervention
    of the message.


It is also predicatble (and hardly arguable) that a bulk message
sender could just drop all of the recipients of a given domain after
receiving so many 5yz responses to his delivery attempts.  Dropping
both recipients that don't and do want the bulk mail.

So what to do about multiple recipients and only partial rejection?
The SMTP server could respond with a 2yz and drop the rejects on the
floor without knowlege to the sender but that makes the situation of a
false positive even uglier than it should be.

I understand that one solution is to lower the maximum recipient
buffer to 1 which is also an RFC violation and could be a serious
performance issue as there could be significant performance gains
(CPU, disk, network just for starters) to be made batching recipients
when delivering bulk mail.

So what to do?

b.

-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 232 bytes
Desc: not available
URL: <http://www.rhyolite.com/pipermail/dcc/attachments/20020420/d45c9ffb/attachment.bin>


More information about the DCC mailing list

Contact vjs@rhyolite.com by mail or use the form.