Re: Fwd: I-D ACTION:draft-ietf-fax-esmtp-conneg-03.txt
Keith Moore <[email protected]> Mon, 05 Aug 2002 15:19:46 -0400
| Newsgroups | gmane.ietf.fax |
|---|---|
| Message-ID | <[email protected]> |
[bcc'ed to iesg - on the assumption that they might not want to see the
resulting replies]
> The SMTP Conneg draft has been revised, with the primary change being
> addition of two Appendices. One discusses use of the option when there are
> multiple recipients. The other discusses use of the option when there is
> relaying.
I think the two appendices help slightly. However they also introduce
new problems not present in the previous draft. Also, the new version of
the document fails to correct a number of problems (some of them serious)
in the previous version.
In particular,
- it is still overbroad, claiming applicability for general email
when it really works only for a limited subset of content
which has an obvious ordering relation for "quality".
perhaps illustrating this, all of the examples are for fax.
- it still permits unauthorized parties to make arbitrary and
unspecified alterations to mail.
- worse, the new version permits unauthorized parties to make
arbitrary assertions of recipient capabilities in the absence
of explicit information.
- the new version also permits multiple conversions to take place,
potentially degrading the message considerably more than a
single conversion.
- it still mandates use of particular reply and status codes in cases
where they are not always appropriate
- it still has the server reporting status codes for conditions that
are best detected on the client
- it still allows SMTP servers to make assertions of recipient capabilities
without actual knowledge of those capabilities.
- I still think overloading of RCPT is a pessimal way to do this
since the command will often need to be issued twice anyway -
either because of a mixture of recipient capabilities, or because
the conversion could not be performed on-the-fly.
recommendations for near-term publication:
- this feature should be renamed and the document reworded to make it
clear that it is fax-specific rather than general purpose.
- misleading text should be fixed, unworkable recommendations should be
removed.
- the document should be published as experimental rather than on the
standards track, since it doesn't meet the requirements for proposed
standard.
things that need to be fixed before the document should be considered
as standards-track:
- needs to be examined for a wide range of content
- needs to have a well-defined protocol by which senders can request
conneg "convert-or-fail" semantics on a per-message, and probably
per-bodypart, basis. if they are not requested, such semantics
must not be applied.
- needs to explicitly specify which conversion algorithms are permissible
and how new conversion standards may be added, since there can be
multiple ways to perform a conversion and some are worse than others.
- needs to state that conneg features are only advertised with the
recipient's consent and control
- needs to state exactly which parties are authorized to perform
conversion.
- needs to prevent multiple conversions.
some details are below. not everything above can be seen from a close-up
view, so the list of details below should be considered separately from
the overall problems listed above.
> 1. INTRODUCTION
>
> When a data source and a receiver have interactive access to
> each other, the receiver often informs the source of its
> capabilities, to permit optimized performance or functionality for
> the interaction. Classic telephone-based facsimile is an example,
> as are voice over IP and ESMTP, among Internet applications. The
> store-and-forward nature of Internet mail is usually assumed to
> preclude such capabilities exchanges, although the sender in a
> store-and-forward scenario could benefit from knowing precise
> details about the receiver. In some configurations, direct
> email-based interactions -- with the originating ESMTP client
> and the destination ESMTP server able to have direct TCP
> connect -- are possible, such as over an intranet. In addition
> an end-to-end exchange can ESMTP for hop-by-hop enforcement.
nit: s/can/can use/ ???
problem: this proposal doesn't provide any way to "enforce" content
negotiation past a single hop. there is no requirement that the CONNEG
option be relayed from one hop to another. even if there were, it would
be problematic - it would require earlier SMTPs to advertise capabilities
of recipients for which they did not have information, and it would
require (and trust) later SMTPs to perform arbitrary and undefined
conversions on content to satisfy recipient-specific constraints.
> This document defines an SMTP-based service extension [ESMTP1,
> ESMTP2] for content negotiation, whereby an SMTP client may
> request information about content capabilities of the target
> device or system that is serviced by an SMTP server.
nit: the capability request is on a per-recipient-mailbox basis rather
than a 'target device or system' basis. of course being able to request
per-recipient-mailbox capabilities is sufficient to request target
device capabilities when all recipients accessed via a single SMTP server
have the same capabilities. but the fact that it's a per-recipient
capability makes the proposal more complex to handle for the sender,
and it would be better to make this clearer from the start.
> The SMTP
> server may report the target's content capabilities back to the
> client. This process can be used to emulate a classic facsimile
> start-of-session capabilities negotiation, as well as being used
> for other email-based services. The extension is primarily
> intended for "direct" SMTP transfers, although relayed scenarios
> are permitted through a series of SMTP servers and are discussed
> in Appendix B.
>
>
> 2. CONVENTIONS
>
> In examples, "C:" and "S:" indicate lines sent by the
> client and server respectively.
>
> The key words "MUST", "MUST NOT", "SHOULD", "SHOULD
> NOT", and "MAY" in this document are to be interpreted
> as defined in "Key words for use in RFCs to Indicate
> Requirement Levels" [KEYWORDS].
>
>
>
> 3. CONTENT NEGOTIATION SERVICE EXTENSION
>
> (1) The name of the SMTP service extension is
> "Content_Negotiation"
>
> (2) The EHLO keyword value associated with this extension
> is "CONNEG"
>
> (3) A parameter using the keyword "CONNEG" is added to the
> RCPT command
>
> (4) The server responds with a report of the content
> capabilities of the device or system that embodies the
> target RCPT address.
>
>
>
> 4. CONNEG PARAMETER TO RCPT
>
> 4.1 Parameter
>
> Keyword:
>
> CONNEG
>
> Argument:
>
> REQUIRED
> The client requires support for the capability. If the
> target does not support the CONNEG parameter, the target
> MUST reject the RCPT command with a 504 reply.
>
> If the target can not support the capability due to a
> temporary problem, it MUST reject the RCPT command with
> a 404 reply.
nit: It is not clear whether it is desirable for the server to give
CONNEG errors priority over all other sources of error. For instance,
if a recipient address is invalid, reporting *that* probably results in
a more useful error message than reporting that the CONNEG feature is
not supported for that particular recipient.
suggestion: reporting of errors with the CONNEG=REQUIRED option SHOULD
only occur if the RCPT command would otherwise have a successful result.
If the RCPT command would fail for other reasons, the error and status
codes should reflect the nature of that failure. In most cases this will
result in a more useful error message. An reasonable exception might
exist if the server checks several potential error conditions concurrently,
and it determines that the command would fail the CONNEG=REQUIRED criteria
before it determines that the command would fail due to other reasons.
> OPTIONAL
> The client requests the target to use the capability. If
> the target can not support the capability at this time, the
> target MUST process the address and message as if the
> requested CONNEG capabilities had not been specified.
>
> If the argument does not exist, the default is "REQUIRED".
>
> When a capability is REQUIRED by the client but can not
> currently be supported by the target, an error response will
> have significant performance impact to overall SMTP
> processing. Use of the OPTIONAL parameter will ensure high
> SMTP performance.
nit: s/ensure high SMTP performance/facilitate better SMTP performance/
even better would be to say that REQUIRED SHOULD only be used when the
sender has specified that the message delivery should fail unless it
is known that the recipient has the necessary capability.
even better would be to omit REQUIRED entirely, since it increases the
complexity of the server implementation and the protocol, for essential
zero benefit to the client. REQUIRED doesn't remove the need for the
client to detect errors due to content negotiation, since it is always
possible that the server/recipient does not support any way of handling
the content at all, or even if such conversion might be possible, the
client does not have the capability to perform that specific conversion.
> 4.2 Client Action
>
> If the server issued a 250-CONNEG, as part of its
> EHLO response for the current session, the client MAY
> issue the CONNEG parameter with RCPT.
>
> If the client issues the CONNEG parameter with
> RCPT, then it MUST honor the capabilities specified
> in the CONNEG RCPT reply, and transform data that is
> sent, so that the server can accept the data. The
> client SHOULD transform the data to the "highest" level
> of capability of the server.
problem: the client cannot be compelled to perform transformations that
are impossible or for which the client lacks the capability. no client
can reasonably convert video to audio. few clients could convert audio
or fax to text, and then only if the audio or fax contained words.
if taken literally this provision would prevent any client from asserting
CONNEG.
suggestion: rather than saying "MUST honor" say that the client
MUST NOT send forward which is inconsistent with the recipient's
stated capabilities. the client SHOULD, if capable, perform
transformations which are likely to preserve the recipient's ability
to use most of the information in the content. if the client is unable
to perform such transformations, it MUST bounce the message.
(there probably needs to be some interaction with critical content
here - it might be acceptable for a SMTP to discard conntent marked
as non-critical rather than bouncing the message. but under no
circumstances should the message be delivered to the recipient when
the recipient has stated via CONNEG that he/she cannot receive it)
> If the server rejects the RCPT command with a 404 reply, the
> client may later reissue the RCPT with the CONNEG parameter
> in a different SMTP session.
nit: presumably "may" should be capitalized here.
> If the server returns an EHLO 250 code without CONNEG
> capabilities, the client MUST NOT issue a CONNEG parameter
> with RCPT.
>
> Methods of using of this option with multiple addressees, for
> the same content, are discussed in Appendix A.
>
>
> 4.3 Server Action
>
> If the client specifies "CONNEG=REQUIRED" in the RCPT,
> but the server does not support the CONNEG parameter, the server
> MUST reject the RCPT command with a 504 reply.
>
> If the server supports the CONNEG parameter, but can not return
> the recepient's capability temporarily, the server MUST reject the
> RCPT command with a 404 reply. For example, if the server gets
> the capability information from a directory, but its connection is
> offline, the server MUST reject the RCPT command with a 404
> reply.
>
> If the client specifies "CONNEG=OPTIONAL" in the RCPT,
> but the server does not support the CONNEG parameter or can not
> return the recipient's capability temporarily, the server MUST
> process the address and message as if the requested CONNEG
> capabilities had not been specified.
>
> Regardless of the value of the parameter, if the server does
> support the CONNEG parameter and the address is acceptable,
> then it MUST issue a 250 reply, followed by the capabilities
> of the server that is specified by the RCPT address.
> Successful responses to CONNEG RCPT requests will always be
> multiple SMTP lines. The first line is the normal RCPT response,
> and subsequent lines beginning with the exact string
> "250-CONNEG " and "250 CONNEG " are the CONNEG responses.
> The last line begins with "250 CONNEG ".
>
> If the SMTP server supports ENHANCEDSTATUSCODES [RFC1893], the
> response strings for a success are "250-2.1.5 CONNEG" and
> "250 2.1.5 CONNEG".
nit: I think you want these to be "250-2.1.5 CONNEG " and "250 2.1.5 CONNEG ".
nit: it is out of scope for this document to specify the status codes for
a successful RCPT command.
> The response strings for indicating a
> permanent failure are "504-5.3.3 CONNEG" and "504 5.3.3 CONNEG".
> The response strings for a temporary failure are "404-4.3.3
> CONNEG" and "404 5.3.3 CONNEG".
problem: this overloads existing status codes for new error conditions.
there needs to be new status codes for "sender insisted on not delivering
the message unless it knew for sure that the recipient could deal with
it and the recipient's capabilities could not be obtained".
> All CONNEG-capable clients and CONNEG-capable servers MUST
> be able to successfully process CONNEG lines that are up to 512
> characters long, as required by RFC2821. If the length of CONNEG
> lines is greater than 512 characters, the server MUST insert
> line breaks and make next CONNEG line.
problem: you need to explain more about how this is done. e.g. can
"<CR><LF>250-2.1.5 CONNEG " be inserted in the middle of a token?
are spaces at the end of a reply line significant?
> The contents of the capability listing MUST conform to
> the specifications in "Content Feature Schema for Internet Fax".
> [RFC2879]
problem: this restriction seems inappropriate if the content is not a fax.
>
>
> 5. SYNTAX
>
> Command with "CONNEG":
> "RCPT TO:" ("<Postmaster@" domain ">" / "<Postmaster>"
> / Forward-Path) (SP "CONNEG =" ("REQUIRED" /
> "OPTIOANL") CRLF
nit: OPTIONAL is misspelled
nit: "CONNEG =" should be "CONNEG="
nit: "<Postmaster@" domain ">" is redundant with Forward-Path
problem: grammar excludes other RCPT options
suggestion: the RCPT command syntax should not be formally described
in this document; it is adequately described elsewhere and CONNEG
doesn't change the syntax.
> Reply:
> ( ("250-" CRLF) *("250-CONNEG" capability CRLF)
> ("250 CONNEG" capability CRLF) )/
> ( ("250-2.1.5" CRLF)
> *("250-2.1.5 CONNEG" capability CRLF)
> ("250 2.1.5 CONNEG" capability CRLF) )/
> ("504" CRLF) /
> ("504 5.3.3" CRLF) /
> ("404" CRLF) /
> ("404 4.3.3" CRLF) /
>
> capability = <<as per [RFC2879]>>
problem: this grammar excludes the possibility of other kinds of
responses besides CONNEG.
problem: need to specify how line wrapping works.
radical suggestion:
1. server encodes the recipient's conneg string in quoted-printable, with
the line length limits and wrapping rules per the MIME spec.
2. server then prefixes each of the resulting quoted-printable lines with
"250-2.1.5 CONNEG "
(perhaps adding 2.1.5 even if ENHANCEDSTATUSCODES are not supported)
3. client collects all lines from the response that begin with
"250-2.1.5 CONNEG ", removes that prefix from each line, and
processes the resulting set of lines as a quoted-printable encoded
file in order to obtain the conneg string for the recipient.
>
> 6. EXAMPLES
>
> 6.1 Success Response
>
> An example of ESMTP sequence with successful RCPT response
>
> S: 220 ifax1.jp IFAX
>
> C: EHLO ifax1.jp
>
> S: 250-ifax1.jp
> S: 250-DSN
> S: 250 CONNEG
>
> C: MAIL FROM:<[email protected]>
>
> S: 250 <[email protected]> sender ok
>
> C: RCPT TO:<[email protected]> CONNEG = REQUIRED
nit: should be "CONNEG=REQUIRED"
> S: 250-<[email protected]> recipient ok
> S: 250 CONNEG (&(image-file-structure=TIFF-minimal)
> S: (MRC-mode=0)(color=Binary)(|(&(dpi=204)
> S: (dpi-xyratio=[204/98,204/196]) )(&(dpi=200)
> S: (dpi-xyratio=[200/100,1]) )(&(dpi=400)
> S: (dpi-xyratio=1) ) )(|(image-coding=[MH,MR,MMR])
> S: (&(image-coding=JBIG)(image-coding-constraint=JBIG-T85)
> S: (JBIG-stripe-size=128) ) )(paper-size=[letter,A4,B4])
> S: (ua-media=stationery) )
nit: example shows inappropriate line wrapping, without explanation.
> C: DATA
>
> S: 354 okay, send data
>
> C: <<RFC 2822 message with MIME Content-Type:TIFF-FX
> Per:
> ( image-file-structure=TIFF-minimal
> dpi=400
> image-coding=JBIG
> size-x=2150
> )
> >>
nit: example shows invalid content-type
nit: example assumes fax.
> S: 250 message accepted
>
> C: QUIT
>
> S: 221 goodbye
>
>
> 6.2 Long Response
>
> An example of successful RCPT response when the length of
> capability is greater than 512 characters.
>
> S: 250-2.1.5<[email protected]> recipient ok
> S: 250-2.1.5 CONNEG (&(image-file-structure=TIFF-minimal) ...
> S: 250-2.1.5 CONNEG .....
> S: 250 2.1.5 CONNEG (color=Binary)
okay, that helps, but it still doesn't show whether line wrapping
can occur in the middle of a conneg token.
>
> An example of succssful RCPT response when CONNEG-capable
> server supports ENHANCEDSTATUSCODES.
>
> S: 250-2.1.5<[email protected]> recipient ok
> S: 250 2.1.5 CONNEG (&(image-file-structure=TIFF-minimal)
> S: (MRC-mode=0)(color=Binary)(|(&(dpi=204)
> S: (dpi-xyratio=[204/98,204/196]) )(&(dpi=200)
> S: (dpi-xyratio=[200/100,1]) )(&(dpi=400)
> S: (dpi-xyratio=1) ) )(|(image-coding=[MH,MR,MMR])
> S: (&(image-coding=JBIG)(image-coding-constraint=JBIG-T85)
> S: (JBIG-stripe-size=128) ) )(paper-size=[letter,A4,B4])
> S: (ua-media=stationery) )
nit: example assumes fax.
>
> 6.3 Failure Response
>
> An example of ESMTP sequence with parmanent failure RCPT
> response.
>
> S: 220 ifax1.jp IFAX
>
> C: EHLO ifax1.jp
>
> S: 250-ifax1.jp
> S: 250-DSN
>
> C: MAIL FROM:<[email protected]>
>
> S: 250 <[email protected]> sender ok
>
> C: RCPT TO:<[email protected]> CONNEG = REQUIRED
nit: should be "CONNEG=REQUIRED"
>
> S: 504 <[email protected]> recipient ok
>
> C: QUIT
>
> S: 221 goodbye
>
>
> 6.4 Temporary Failure Response
>
> An example of an ESMTP sequence with temporary failure RCPT
> response when the value of parameter is "REQUIRED":
>
> S: 220 ifax1.jp IFAX
>
> C: EHLO ifax1.jp
>
> S: 250-ifax1.jp
> S: 250-DSN
> S: 250 CONNEG
>
> C: MAIL FROM:<[email protected]>
>
> S: 250 <[email protected]> sender ok
>
> C: RCPT TO:<[email protected]> CONNEG = REQUIRED
nit: should be "CONNEG=REQUIRED"
>
> S: 404 <[email protected]> recipient ok
>
> C: QUIT
>
> S: 221 goodbye
> .
> .
> .
> retry according to implementation
>
>
> 6.5 Temporary Failure with Optional handling
>
> An example of an ESMTP sequence with temporary failure RCPT
> response when the value of parameter is "OPTIONAL":
>
> S: 220 ifax1.jp IFAX
>
> C: EHLO ifax1.jp
>
> S: 250-ifax1.jp
> S: 250-DSN
> S: 250 CONNEG
>
> C: MAIL FROM:<[email protected]>
>
> S: 250 <[email protected]> sender ok
>
> C: RCPT TO:<[email protected]> CONNEG = OPTIONAL
nit: should be "CONNEG=OPTIONAL"
>
> S: 250 <[email protected]> recipient ok
>
> C: DATA
>
> S: 354 okay, send data
>
> C: <<RFC 2822 message with MIME Content-Type:TIFF-FX
> Per "A Simple Mode of Facsimile Using Internet Mail"
> RFC2305
> >>
nit: example assumes fax
>
> S: 250 message accepted
>
> C: QUIT
>
> S: 221 goodbye
>
>
>
> 7. IANA CONSIDERATIONS
>
> On publicatiom of this document by the RFC Editor, the IANA
> shall register the Content_Negotiation ESMTP extension defined
> in section 3.
>
>
>
> 8. SECURITY CONSIDERATIONS
>
> This ESMTP option calls for a respondent to disclose
> its capabilities. Mechanisms for determining the
> requestor's authenticated identity are outside the
> scope of this specification. It is intended that this
> mechanism permit disclosure of public information;
> hence there is no particular need for security
> measures.
>
> However there is nothing to prevent disclosure of
> sensitive information that should receive restricted
> distribution. It is, therefore, the responsibility of
> the disclosing ESMTP server to determine whether
> additional security measures should be applied to the
> use of this ESMTP option.
>
> A man-in-the-middle attack might change the capabilities reported
> for a given recipient. For example: Suppose the sender knows the
> recipient has the ability to view color documents so they mark
> some things in red in what is otherwise a black and white
> document. But someone interferes with the returned capabilities,
> indicating that the recipient only supports black and white. The
> document is duly downgraded, with the result that the recipient
> doesn't see what the sender marked.
>
> An indirect exposure can occur when the report of a capability
> implies use of specific software. If that software is known to
> have security weaknesses, the capabilities report effectively
> advertises the associated opportunity to exploit the security
> weakness.
>
> For target SMTP servers that require security mechanisms to be in
> force at the start of the session, the target SHOULD refrain from
> including the CONNEG parameter in an EHLO response until the
> requisite security mechanisms are in force.
>
> For digitally signed content, the use of this option poses a
> special challenge. Digitally signing content relies on that
> content to be in a particular form. Use of this option changes
> that form. Hence an SMTP client that uses this option on
> digitally signed content MUST be able to recompute the digital
> signature of the content.
>
>
>
> 9. ACKNOWLEDGEMENTS
>
> Graham Klyne provided useful suggestions to an earlier
> draft.
>
>
>
> 10. NORMATIVE REFERENCES
>
> [ESMTP1] Klensin, J., Freed, N., Rose, M., Stefferud,
> E. and D. Crocker, "SMTP Service Extensions",
> RFC 1869, November 1995
>
> [ESMTP2] Klensin, J., "Simple Mail Transfer Protocol",
> RFC 2821, April 2001.
>
> [RFC2879] McIntyre, L. and G. Klyne, "Content Feature
> Schema for Internet Fax", RFC 2531, August
> 2000
>
> [RFC2305] Toyoda, K., Ohno, H., Murai, J. and D. Wing,
> "A Simple Mode of Facsimile Using Internet Mail",
> RFC 2305, March 1998.
>
>
>
> 11. AUTHORS' ADDRESSES
>
> Kiyoshi Toyoda
> Matsushita Graphic Communication Systems,Inc
> 2-3-8 Shimomeguro, Meguro-Ku
> Tokyo 153 JAPAN
>
> +81.3.5434.7161
> [email protected]
>
>
> Dave Crocker
> Brandenburg InternetWorking
> 675 Spruce Drive
> Sunnyvale, CA 94086 USA
>
> +1.408.246.8253
> [email protected]
>
>
>
> 12. FULL COPYRIGHT STATEMENT
>
> Copyright (C) The Internet Society (2001). All Rights
> Reserved.
>
> This document and translations of it may be copied and
> furnished to others, and derivative works that comment
> on or otherwise explain it or assist in its
> implementation may be prepared, copied, published and
> distributed, in whole or in part, without restriction
> of any kind, provided that the above copyright notice
> and this paragraph are included on all such copies and
> derivative works. However, this document itself may
> not be modified in any way, such as by removing the
> copyright notice or references to the Internet Society
> or other Internet organizations, except as needed for
> the purpose of developing Internet standards in which
> case the procedures for copyrights defined in the
> Internet Standards process must be followed, or as
> required to translate it into languages other than
> English.
>
> The limited permissions granted above are perpetual and
> will not be revoked by the Internet Society or its
> successors or assigns.
>
> This document and the information contained herein is
> provided on an "AS IS" basis and THE INTERNET SOCIETY
> AND THE INTERNET ENGINEERING TASK FORCE DISCLAIMS ALL
> WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT
> LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION
> HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED
> WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A
> PARTICULAR PURPOSE.
>
>
>
> APPENDIX
>
> A. USAGE FOR MULTIPLE RECIPIENTS
>
> ESMTP permits specification of multiple recipients for the same
> content. This option specified here can produce information that
> different recipients have different content capabilities. How
> this differential information is used will depend upon the
> requirements of the sender. This specification does not mandate
> particular choices. Three scenarios are possible:
>
> (1) Single Recipient
>
> For each recipient, conduct a separate ESMTP session. This
> ensures that each content transfer can be tailored to the
> capabilities of each recipient. This also consumes the largest
> amount of bandwidth and the largest number of cross-network SMTP
> protocol exchanges
>
> (2) Common Content
>
> For a single ESMTP session, issue RCPT commands that obtain
> content capabilities information for each recipient. With the
> DATA command, send the best content form that can be processed by
> ALL of the recipients. Some recipients will receive content that
> is below their best capabilities. However this approach also
> consumes the least bandwidth and has the fewest cross-network
> protocol exchanges
problem: this scenario does not work because the sender has no way to know a
priori whether it is possible to produce a common form that is acceptable
to all recipients. so any sender that sends multiple RCPT commands in a
single session MUST be prepared to terminate the session (either via RSET
or QUIT) and retry sending only to those recipients that DO have a common
format.
suggestion: delete scenario 2, as it is not workable.
> (3) Partial Batching
>
> This scenario begins the same as the "Common Content" scenario.
> Content capabilities information is obtained during a single ESMTP
> session, with all of the RCPT commands issued together. The
> difference for this scenario is that the client SMTP then
> terminates the session with an RSET and begins one or more new,
> separate sessions. Addressees are processed in batches, according
> to the similarity of their capabilities. This option balances
> consumption of bandwidth with optimization of content, at the cost
> of a terminated session.
>
>
> B. SCENARIOS FOR RELAYING
>
> ESMTP is a direct transfer mechanism, using a single TCP
> connection. It supports Internet mail store-and-forward through
> such characteristics as global addressing and ESMTP enforcement of
> global features.
nit: I'm not at all sure what this last sentence means.
> Use of the ESMTP Conneg option is
> straightforward when the originating ESMTP client is able to
> directly connect to the destination ESMTP server. The nature of
> this option is to return address-specific information that will
> affect content transmission. Hence the use of this option in the
> presence of the in-direct effects of store-and-forward is not
> obvious.
>
> This Appendix discusses some styles of use for the ESMTP Conneg
> option when messages are being relayed. The Appendix is intended
> only to provide discussion. It is neither intended to be
> exhaustive nor restrictive. Other scenarios are likely and
> encouraged.
>
>
> B.1 Relay Server Modes
>
> The key challenge for use of the ESMTP Conneg option is the
> requirement the receiving ESMTP server be able to return
> capabilities on behalf of a target addressee. This requirement
> translates into two, basic styles of operation for the receiving
> ESMTP server:
>
> (1) Server Knows Addressee Capabilities
>
> Here the receiving server has the necessary details about an
> addressee, at the time the sending server issues the RCPT
> response. Typically, this information will be obtained through a
> direct, real-time query mechanism, either to a directory
> containing addressee information or to a service run directly on
> behalf of the individual addressee and possibly on the addressee's
> system.
>
> One form of query to the addressee's system is to stack a
> cascading sequence of ESMTP sessions and RCPT commands
> together, all the way to the destination ESMTP server. Although
> theoretically possible, this attempt to turn a multi-hop scenario
> into a real-time, pseudo-direct query is not practical. It
> will most likely result in response delays for the RCPT command
> that are not acceptable, particularly over the public Internet.
>
> (2) Server Ensures Conversion
>
> Fundamental to the use of a capabilities exchange is the
> requirement that the receiver of capabilities information be able
> to convert content into a form that is more capable than the
> default form, when the receiver indicates that it can support the
> superior form. That is, use of this option presumes that the
> sender is holding a "more capable" form of the content and will
> map it to a "less capable form" if the receiver does not support
> the superior form.
problem: there is inherently no way for the sender to know in advance
whether it can convert the message in a form that is suitable for the
recipient.
problem: for most kinds of content there is not an obvious ordering
which determines "more capable" or "less capable". fax images containing
text are not inherently more or less capable than text - each has different
benefits and drawbacks. HTML is not inherently more or less capable than
PDF. it depends on how the recipient will use the message. so the
assumption by which relaying is justified is not valid.
> Hence another style of relaying configuration is to have a relay
> SMTP respond to an RCPT capability query by indicating that it
> supports the most capable form. The sender will pass the best
> version it can. The receiver has then taken responsibility for
> performing later conversions, as necessary, to the next hop in the
> sequence. That is, the receiving ESMTP server inherits the same
> level of responsibility already being held by the sending ESMTP
> client.
problem: this is unworkable unless the SMTP server already knows the
recipient's capabilities, since without knowing those capabilities
the SMTP server cannot be sure that it can convert the message to
something the recipient can accept. and if the SMTP server already
knows the recipient's capabilities, there is no need for it to lie
about them.
problem: this introduces the possibility of multiple conversions. multiple
conversions can cause considerable lossage due to interference between the
conversions - e.g. aliasing when audio or image sampling rates are changed,
interference caused when artifacts in the the output of one audio codec
appear in the input of another.
problem: this provision almost certainly allows SMTPs to make assertions
about recipient capabilities without the permission of the recipient.
> B.2 Some End-to-End Scenarios
>
> This section suggests methods of using ESMTP Conneg for achieving
> an end-to-end service that uses knowledge of recipient
> capabilities for modifying the content or the handling of the
> content. This section is intended only to explore possible
> scenarios. Others are feasible and likely. The choice of scenario
> to support will depend upon particular service policies chosen for
> a relay. This specification provides no constraint or guidance
> about which policies to choose.
>
> (1) Basic Tranfer betweeen Organizations
>
> Again noting that alternative configurations and support
> environments are permitted, a simple example of combining the two
> modes of receiving server style can be helpful. The scenario to
> consider is sending from one organization's email system to
> another organization's email system, across the Internet.
>
> This scenario presumes two, independent email services, one for
> each organization. In this simple example, the user has a local
> ESMTP server and it talks with the organization's Internet email
> gateway. Hence there are four ESMTP servers. The originating
> server takes the message from the originating user. It then
> relays the message to the originating organization's ESMTP
> gateway. This gateway, in turn, relays the message to the
> destination organization's gateway, which finally delivers it to
> the recipient's server.
>
> In this simple example, the originating ESMTP server includes a
> CONNEG option on the RCPT command
problem: for the originating server to include CONNEG on outgoing mail
without any per-message authorization from the sender presumes that it
is never desirable to deliver mail unless the recipient capabilities are
known. this is a radical departure from current practice and is probably
not feasible.
if the example assumes that the organizations have a mutual agreement to
support CONNEG for all recipients and the outgoing server only asserts
CONNEG when sending to recipients at that organization, this needs to be
stated explicitly.
> to the originating
> organization's Internet gateway and the gateway always responds
> that it supports the highest capabilities. It is then given the
> most capable form of the content.
>
> The originating gateway then performs a RCPT CONNEG exchange with
> the destination organization's gateway. This gateway can operate
> in the same "Ensure Conversion" mode as the originating gateway,
problem: no it cannot, at least not without more assumptions than are stated.
> or it can perform a real-time query about the addressee's
> capabilities. The former mode defers resolving recipient
> capabilities until the final step. The real-time query requires
> both that the query mechanism be timely, in order to avoid RCPT
> response delays, and that it be accurate, with correct information
> about the addressee.
>
> The final exchange is, of course, "direct". The recipient's ESMTP
> server is presumed to have easy access to the necessary
> capabilities information.
>
> (2) Integration with Multipart/Alternative
>
> Basic support for Conneg will typically involve a Conneg client
> that has a single, high-quality version of content and then maps
> is "down" to the best quality that can be supported by the
> responding Conneg server. That is, the sending system will do a
> conversion. In another mode of operation the Conneg client
> already holds a number of different mappings of content at
> different levels of quality. The client will use the Conneg
> response to choose the content quality that is "closest" to the
> capabilities of the receiver.
>
> MIME's Multipart/Alternative provides a means for a content
> originator to send a fixed set of content quality choices. An
> ESMTP relay in the sequence can then choose to use Conneg as a
> means of selecting one of the alternatives to transmit, rather
> than transmitting the full set. Such a scenario is particularly
> useful when the communication path changes from high-bandwidth to
> low.
>
> (3) Content Staging on Retrieval Server
>
> Rather than converting content to a lower quality, an ESMTP Conneg
> client might choose to use a Conneg response for choosing not to
> send the content directly. It might, instead, remove the content
> from the message and store the content on a retrieval server (for
> access through HTTP, FTP or the like.) It can then put a citation
> into the message, which points to the stored content.
>
> For the retrieval server, access security, as well as life-time
> management of the content on the retrieval server, should be
> considered. A full discussion of these considerations is out of
> the scope of this memo."
>
> (4) Alternate Addressing
>
> If an ESMTP Conneg client has access to multiple addresses for the
> same recipient, it might use Conneg to determine which is most
> capabable for particular content and send the content to that one.
>
> This scenario requires a number of infrastucture features for
> which there currently are no standards.