ietf
[Top] [All Lists]

Re: Last Call: SMTP Service Extension for Content Negotiation to Proposed Standard

2002-07-02 23:10:02
Is this complex?  Sure it is.  But, if one is going to end up
with least common denominator, the limiting (and probably
common) case is to just send that and forget about capabilities
negotiation.  Or, if the number of useful differentiated formats
is _very_ small, just sending both with multipart/alternative
might turn out to be easier and cheaper than messing around
trying to find feature intersections.  There isn't nearly enough
information in the spec for me to be able to guess if that would
be the case.  There shouldn't be if this is a general purpose,
multiple-recipient, capabilities negotiation mechanism but, if
it is, I don't see much hope other than dealing with the
complexity (or deciding we don't need something that general).

I guess I remain to be convinced either way: That multiple versions schemes are
necessary or that a single version schemes are sufficient. I'd guess there's a
sweet spot somewhere in there. Unfortunately in this particular case the
location of that spot drives a bunch of design choices.

I think the determining factor needs to be how clients will
actually handle recipients with differing capabilities. If the
least common denominator is going to be the dominant approach
(and I suspect that it will be) then RCPT TO capabilities
return is the simplest and most direct approach. If, on the
other hand, messages tailored for a each recipient is going to
be the norm, then VRFY is the correct approach.

Ignoring all of the relay issues, which I still don't think the
document addresses,

I must say I don't see any of this as particularly useful in a relay scenario.

and the fallback to fax while claiming it
isn't fax-specific, etc., I'd partition the above a bit
differently.  I'd guess the dominant approach (especially if one
generalizes beyond fax) is going to be greatest (most capable)
common denominator above a threshold.  I.e., if there is some
minimal, default, capability, and some recipients can support
only that (e.g., they don't handle option negotiation at all),
then two messages are going to be sent: one corresponding to the
common feature set of the more capable recipients and one for
the minimal/default feature set.  Everyone gets downgraded to
the minimum/default because one recipient isn't highly capable
just doesn't feel commercially viable to me, while assuming a
mix of high-function and low-function hosts does.

I certainly agree with the common denominator above a threshhold. But given
that a single recipient per destination is likely to be a very common case, I'm
less sure that simpler approaches won't be commercially viable. Or perhaps
capabilities will be used to reduce the number of variants sent with
multipart/alternative.

Other
combinations are possible, but my sense of reality says they
would rapidly turn into message-copy-per-recipient rather than
strange combinatorics on feature sets.

It may indeed turn out that per-recipient message copy is the right way to
finesse the feature set combination issues.

But, in that "two message" case, one really doesn't want 5yz
codes coming back from the server in response to a RCPT TO.  If
the "one digit" rule is observed, there is no way to
differentiate between "bad mailbox" and "bad parameter".  If it
is not, and three digits are processed, the server cannot
effectively differentiate between a bad parameter to CONNEG and
one to some other option by the code -- the reply string has to
be parsed, and that leads to bad trouble.   So I would think
that a batch of capability-determining commands before the first
RCPT one would be a better idea, complexity notwithstanding.

I'm not sure I get what you're driving at here. The client gets
to choose whether the server treats a recipient with unknown
capabilities as an error or simply by indicating as much.

Again, the way to get most of the complexity out of this, IMO,
is to change the problem.  For example, if the server makes the
determination of the common capability set among all recipients
and returns it only once (a bit tricky with the SMTP model, but
not impossible), then the client doesn't have to figure out how
to intersect whatever comes back, break things up into separate
messages, etc.  But I don't know if that would do the job; it
certainly doesn't handle a mix of high- and low-function
recipients in a plausible way.

I considered proposing this as well, but it seemed to be that knowledge
of what the client can actually do may determine how differing
feature sets are combined.

                                Ned




<Prev in Thread] Current Thread [Next in Thread>