http://wwww.imap.org defines IMAP as "a method of accessing electronic mail
or bulletin board messages that are kept on a (possibly shared) mail
server". I am writing a specialized client which focuses on the bulletin
board application and am confused by some of the language in RFC3501,
particularly in light of observed IMAP server behavior. The implementation
recommendations (RFC2683) didn't clear up my confusion and recent threads on
mutable messages have only added to it.  As a newbie, would appreciate any
feedback on the assumptions/interpretations below. When I say "IMAP" I mean
"IMAP4rev1" and I am concerned only with the IMAP4rev1 specification as it
exists, possibly operating in conjunction with accepted extension
specifications thereto as they presently exist. I.e., I have no
future-extension agenda.

The interpretations regarding which I request feedback are (apologies in
advance for the lack of brevity):

1. Use of an IMAP server on a standalone basis in the absence of a mail
transfer protocol agent is meaningful and supported, as IMAP does provide a
means of posting new bulletin board messages (the APPEND command). This
implies that messages need not have passed through an electronic mail
delivery process in order to be valid IMAP messages.

2. IMAP messages used in the bulletin board context, which originate via
APPEND, may acceptably lack a "To:" field in their headers. The "To:" field
is optional according to RFC2822 ("The only required header fields are the
origination date field and the originator address field(s). All other header
fields are syntactically optional.") so this omission does not even come
under the exception discussed in the APPEND command specification. The
Exchange 2000 IMAP server is an example of this behavior: bulletin board
posts ("New Post in This Folder", a first-class function, which has nothing
to do with draft or unsent messages) have no "To:" field in the header.

3. RFC2822 explicitly envisions revisions of messages and RFC2822 messages
are immutable only within the scope of a particular "Message-ID" field. Sec.
3.6.4 states that "The 'Message-ID:' field provides a unique message
identifier that refers to a particular version of a particular message... A
message identifier pertains to exactly one instantiation of a particular
message; subsequent revisions to the message each receive new message
identifiers".

3. Based on the above, and despite immutability of messages and associated
UIDs at the IMAP protocol level, a compliant IMAP client may nevertheless
choose to implement a user-level model of editable body content for bulletin
board posts. The Exchange 2000 IMAP server is an example of this behavior:
when post contents change, a new UID is generated, but the original internal
date is preserved and the original date is also retained in the "Date:"
field in the RFC2822 header. Note that while in the recent mutability thread
Larry Osterman mentioned changing message content only in the context of
"unsent messages", post editability is a first-class feature in Exchange,
and has nothing to do with draft/unsent messages. In
Outlook2000/Exchange2000, if the command "New Post in This Folder" was used
to create an item, then the command "Revise Contents" is available whenever
that item is opened (the similar command "Edit Message" is available for
mail messages, in certain circumstances, but the post scenario is my primary
concern). While Outlook/Exchange may implement post editability through
proprietary means, it could be implemented solely via IMAP using
DELETE/EXPUNGE/APPEND, where the APPEND command has a date/time string.

4. A system which wishes to provide a permanent way to locate an individual
post, for example a permanent URL that will retrieve it, and also wishes to
provide the user model of editability of post content, cannot solely depend
on the UID since when contents change the UID must change. However, the
internal date of the message may be used, since as per the above it is valid
to revise post contents while preserving the original internal date. The UID
may be used as a hint, but if it is not valid the timestamp (or, to fully
disambiguate, timestamp + FROM information) is a reasonable way to index an
entry. This is really a tautology since I am defining an "edited post" as a
post which has the date, sender (and, perhaps, subject) of an earlier post
but different body content. While IMAP doesn't provide a way to uniquely
retrieve a message based on the timestamp (since "SEARCH ON" returns
everything on a given day), that is an optimization issue since I am
assuming an intermediate agent that can process returned results and provide
the user model of individual entry retrieval.

5. While the APPEND command specification (6.3.11) states that "the APPEND
comamnd is not used for message delivery" the specification of the internal
message date attribute specification (2.3.11) discusses the case of
"messages delivered by the IMAP4rev1 APPEND command". I assert that the
meaning of "delivery" and "delivered" is different in these two sections:
6.3.11 uses "delivery" in the assumed context of a electronic mail delivery
protocol and associated agent, and 2.3.11 uses "delivered" in a more general
context - this is obvious of course because the APPEND command is explicitly
mentioned. So despite the apparently contradictory statements there is no
semantic conflict between these two sections.

6. Whether or not a user model of editable content "should" be provided for
messages that have been transmitted through a mail delivery system is not
clear. RFC2822 makes it seem as though there's no issue with multiple
versions of messages but the tenor of recent posts in this forum argue,
perhaps, that a system should not fake dates for messages that have been
delivered via a mail delivery system. But this is a UI issue not a protocol
issue. It may be that it would be useful to distinguish a class of IMAP
messages called "posts" which have either never been transmitted through a
mail delivery agent or (perhaps) are presented to the user as if that were
the case, and distinguish such "posts" from "mail messages".

OK, to verge into opinion here... use of IMAP servers as the persistent
storage for "bulletin board" type information in the form of public or
shared message folders that work independently of any SMTP message delivery
is a longstanding (since Cyrus 1.0), prevalent (with not only a number of
IMAP-centric servers but also Exchange supporting folder functionality), and
intended application. And RFC3501 makes the broad statement that "IMAP4rev1
permits manipulation of mailboxes (remote message folders) in a way that is
functionally equivalent to local folders.". It is clear that in the bulletin
board application context it is a valid user requirement to say "I'd like to
correct a typographic error in that post I made last Friday morning, and
please don't change the post date". This functionality is not only available
through IMAP via Exchange (and perhaps other IMAP servers) but is
commonplace in dedicated BBS/discussion forum systems. And editability of
messages in local mail folders is a given. In a publication context an
"edited on:" is provided as well, either as an authorial convention or
enforced by the system, but once again this is a UI or usage-convention
issue not a specification issue. So we should all get over the notion that
there's anything immutable about message content or that IMAP is only for
messages that are transmitted through electronic mail.

So to summarize: RFC2822 message ids and IMAP4 UIDs are certainly immutable
in their reference to a particular instantiation of header and body content;
however, if "editable message" means "give the user the ability to change
some content of a message while preserving its original creation date" this
makes perfect sense in IMAP and is presently implementable therein. No
extensions needed. While the Outlook/Exchange system may be less than an
exemplary IMAP citizen in other ways, there is nothing about its behavior in
regards to message editability that is out of conformance with the letter or
spirit of IMAP.

Thanks for any & all comments,


Bill McCoy
[EMAIL PROTECTED]
-- 
-----------------------------------------------------------------
 For information about this mailing list, and its archives, see: 
 http://www.washington.edu/imap/imap-list.html
-----------------------------------------------------------------

Reply via email to