2377353cae
Signed-off-by: Nicolas Sebrecht <nicolas.s-dev@laposte.net>
956 lines
34 KiB
Plaintext
956 lines
34 KiB
Plaintext
|
||
|
||
|
||
|
||
|
||
|
||
Network Working Group R. Gellens
|
||
Request for Comments: 5423 QUALCOMM Inc.
|
||
Category: Standards Track C. Newman
|
||
Sun Microsystems
|
||
March 2009
|
||
|
||
|
||
Internet Message Store Events
|
||
|
||
Status of This Memo
|
||
|
||
This document specifies an Internet standards track protocol for the
|
||
Internet community, and requests discussion and suggestions for
|
||
improvements. Please refer to the current edition of the "Internet
|
||
Official Protocol Standards" (STD 1) for the standardization state
|
||
and status of this protocol. Distribution of this memo is unlimited.
|
||
|
||
Copyright Notice
|
||
|
||
Copyright (c) 2009 IETF Trust and the persons identified as the
|
||
document authors. All rights reserved.
|
||
|
||
This document is subject to BCP 78 and the IETF Trust's Legal
|
||
Provisions Relating to IETF Documents in effect on the date of
|
||
publication of this document (http://trustee.ietf.org/license-info).
|
||
Please review these documents carefully, as they describe your rights
|
||
and restrictions with respect to this document.
|
||
|
||
Abstract
|
||
|
||
One of the missing features in the existing Internet mail and
|
||
messaging standards is a facility for server-to-server and server-to-
|
||
client event notifications related to message store events. As the
|
||
scope of Internet mail expands to support more diverse media (such as
|
||
voice mail) and devices (such as cell phones) and to provide rich
|
||
interactions with other services (such as web portals and legal
|
||
compliance systems), the need for an interoperable notification
|
||
system increases. This document attempts to enumerate the types of
|
||
events that interest real-world consumers of such a system.
|
||
|
||
This document describes events and event parameters that are useful
|
||
for several cases, including notification to administrative systems
|
||
and end users. This is not intended as a replacement for a message
|
||
access facility such as IMAP.
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
Gellens & Newman Standards Track [Page 1]
|
||
|
||
RFC 5423 Internet Message Store Events March 2009
|
||
|
||
|
||
Table of Contents
|
||
|
||
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 2
|
||
1.1. Conventions Used in This Document . . . . . . . . . . . . 3
|
||
2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 3
|
||
3. Event Model . . . . . . . . . . . . . . . . . . . . . . . . . 4
|
||
4. Event Types . . . . . . . . . . . . . . . . . . . . . . . . . 5
|
||
4.1. Message Addition and Deletion . . . . . . . . . . . . . . 5
|
||
4.2. Message Flags . . . . . . . . . . . . . . . . . . . . . . 7
|
||
4.3. Access Accounting . . . . . . . . . . . . . . . . . . . . 8
|
||
4.4. Mailbox Management . . . . . . . . . . . . . . . . . . . . 8
|
||
5. Event Parameters . . . . . . . . . . . . . . . . . . . . . . . 10
|
||
6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 14
|
||
7. Security Considerations . . . . . . . . . . . . . . . . . . . 14
|
||
8. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 15
|
||
9. References . . . . . . . . . . . . . . . . . . . . . . . . . . 15
|
||
9.1. Normative References . . . . . . . . . . . . . . . . . . . 15
|
||
9.2. Informative References . . . . . . . . . . . . . . . . . . 15
|
||
Appendix A. Future Extensions . . . . . . . . . . . . . . . . . . 17
|
||
|
||
1. Introduction
|
||
|
||
A message store is used to organize Internet Messages [RFC5322] into
|
||
one or more mailboxes (possibly hierarchical), annotate them in
|
||
various ways, and provide access to these messages and associated
|
||
metadata. Three different standards-based protocols have been widely
|
||
deployed to remotely access a message store. The Post Office
|
||
Protocol (POP) [RFC1939] provides simple download-and-delete access
|
||
to a single mail drop (which is a subset of the functionality
|
||
typically associated with a message store). The Internet Message
|
||
Access Protocol (IMAP) [RFC3501] provides an extensible feature-rich
|
||
model for online, offline, and disconnected access to a message store
|
||
with minimal constraints on any associated "fat-client" user
|
||
interface. Finally, mail access applications built on top of the
|
||
Hypertext Transfer Protocol (HTTP) [RFC2616] that run in standards-
|
||
based web browsers provide a third standards-based access mechanism
|
||
for online-only access.
|
||
|
||
While simple and/or ad-hoc mechanisms for notifications have sufficed
|
||
to some degree in the past (e.g., "Simple New Mail Notification"
|
||
[RFC4146], "IMAP4 IDLE Command" [RFC2177]), as the scope and
|
||
importance of message stores expand, the demand for a more complete
|
||
store notification system increases. Some of the driving forces
|
||
behind this demand include:
|
||
|
||
o Mobile devices with intermittent network connectivity that have
|
||
"new mail" or "message count" indicators.
|
||
|
||
|
||
|
||
|
||
Gellens & Newman Standards Track [Page 2]
|
||
|
||
RFC 5423 Internet Message Store Events March 2009
|
||
|
||
|
||
o Unified messaging systems that include both Internet and voice
|
||
mail require support for a message-waiting indicator on phones.
|
||
|
||
o Interaction with systems for event-based or utility-computing
|
||
billing.
|
||
|
||
o Simplification of the process of passing message store events to
|
||
non-Internet notification systems.
|
||
|
||
o A calendar system may wish to subscribe to MessageNew
|
||
notifications in order to support iMIP [RFC2447].
|
||
|
||
o Some jurisdictions have laws or regulations for information
|
||
protection and auditing that require interoperable protocols
|
||
between message stores built by messaging experts and compliance
|
||
auditing systems built by compliance experts.
|
||
|
||
Vendors who have deployed proprietary notification systems for their
|
||
Internet message stores have seen significant demand to provide
|
||
notifications for more and more events. As a first step towards
|
||
building a notification system, this document attempts to enumerate
|
||
the core events that real-world customers demand.
|
||
|
||
This document includes those events that can be generated by the use
|
||
of IMAP4rev1 [RFC3501] and some existing extensions. As new IMAP
|
||
extensions are defined, or additional event types or parameters need
|
||
to be added, the set specified here can be extended by means of an
|
||
IANA registry with update requirements, as specified in Section 6.
|
||
|
||
1.1. Conventions Used in This Document
|
||
|
||
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
|
||
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
|
||
document are to be interpreted as described in RFC 2119 [RFC2119].
|
||
When these words appear in lower-case or with initial capital
|
||
letters, they are not RFC 2119 key words.
|
||
|
||
2. Terminology
|
||
|
||
The following terminology is used in this document:
|
||
|
||
mailbox
|
||
A container for Internet messages and/or child mailboxes. A
|
||
mailbox may or may not permit delivery of new messages via a mail
|
||
delivery agent.
|
||
|
||
|
||
|
||
|
||
|
||
|
||
Gellens & Newman Standards Track [Page 3]
|
||
|
||
RFC 5423 Internet Message Store Events March 2009
|
||
|
||
|
||
mailbox identifier
|
||
A mailbox identifier provides sufficient information to identify a
|
||
specific mailbox on a specific server instance. An IMAP URL can
|
||
be a mailbox identifier.
|
||
|
||
message access protocols
|
||
Protocols that provide clients (e.g., a mail user agent or web
|
||
browser) with access to the message store, including but not
|
||
limited to IMAP, POP, and HTTP.
|
||
|
||
message context
|
||
As defined in [RFC3458].
|
||
|
||
UIDVALIDITY
|
||
As defined in IMAP4rev1 [RFC3501]. UIDVALIDITY is critical to the
|
||
correct operation of a caching mail client. When it changes, the
|
||
client MUST flush its cache. It's particularly important to
|
||
include UIDVALIDITY with event notifications related to message
|
||
addition or removal in order to keep the message data correctly
|
||
synchronized.
|
||
|
||
3. Event Model
|
||
|
||
The events that are generated by a message store depend to some
|
||
degree on the model used to represent a message store. The model the
|
||
IETF has for a message store is implicit from IMAP4rev1 and
|
||
extensions, so that model is assumed by this document.
|
||
|
||
A message store event typically has an associated mailbox name and
|
||
usually has an associated user name (or authorization identity if
|
||
using the terminology from "Simple Authentication and Security Layer"
|
||
(SASL) [RFC4422]). Events referring to a specific message can use an
|
||
IMAP URL [RFC5092] to do so. Events referring to a set of messages
|
||
can use an IMAP URL to the mailbox plus an IMAP UID (Unique
|
||
Identifier) set.
|
||
|
||
Each notification has a type and parameters. The type determines the
|
||
type of event, while the parameters supply information about the
|
||
context of the event that may be used to adjust subscription
|
||
preferences or may simply supply data associated with the event. The
|
||
types and parameter names in this document are restricted to US-ASCII
|
||
printable characters, so these events can be easily mapped to an
|
||
arbitrary notification system. However, this document assumes that
|
||
arbitrary parameter values (including large and multi-line values)
|
||
can be encoded with the notification system. Systems which lack that
|
||
feature could only implement a subset of these events.
|
||
|
||
|
||
|
||
|
||
|
||
Gellens & Newman Standards Track [Page 4]
|
||
|
||
RFC 5423 Internet Message Store Events March 2009
|
||
|
||
|
||
This document does not indicate which event parameters are mandatory
|
||
or optional. That is done in documents that specify specific message
|
||
formats or bindings to a notification system.
|
||
|
||
For scalability reasons, some degree of filtering at event generation
|
||
is necessary. At the very least, the ability to turn on and off
|
||
groups of related events and to suppress inclusion of large
|
||
parameters (such as messageContent) is needed. A sophisticated
|
||
publish/subscribe notification system may be able to propagate
|
||
cumulative subscription information to the publisher.
|
||
|
||
Some of these events might be logically collapsed into a single event
|
||
type with a required parameter to distinguish between the cases
|
||
(e.g., QuotaExceed and QuotaWithin). However, until such time that
|
||
an event subscription model is formulated, it's not practical to make
|
||
such decisions. We thus note only the fact that some of these events
|
||
may be viewed as a single event type.
|
||
|
||
4. Event Types
|
||
|
||
This section discusses the different types of events useful in a
|
||
message store event notification system. The intention is to
|
||
document the events sufficient to cover an overwhelming majority of
|
||
known use cases while leaving less common event types for the future.
|
||
This section mentions parameters that are important or specific to
|
||
the events described here. Event parameters likely to be included in
|
||
most or all notifications are discussed in the next section.
|
||
|
||
4.1. Message Addition and Deletion
|
||
|
||
This section includes events related to message addition and
|
||
deletion.
|
||
|
||
MessageAppend
|
||
A message was appended or concatenated to a mailbox by a message
|
||
access client. For the most part, this is identical to the
|
||
MessageNew event type except that the SMTP envelope information is
|
||
not included as a parameter, but information about which protocol
|
||
triggered the event MAY be included. See the MessageNew event for
|
||
more information.
|
||
|
||
MessageExpire
|
||
One or more messages were expired from a mailbox due to server
|
||
expiration policy and are no longer accessible by the end user.
|
||
|
||
The parameters include a mailbox identifier that MUST include
|
||
UIDVALIDITY and a UID set that describes the messages.
|
||
|
||
|
||
|
||
|
||
Gellens & Newman Standards Track [Page 5]
|
||
|
||
RFC 5423 Internet Message Store Events March 2009
|
||
|
||
|
||
Information about which server expiration policy was applied may
|
||
be included in the future.
|
||
|
||
MessageExpunge
|
||
One or more messages were expunged from a mailbox by an IMAP
|
||
CLOSE/EXPUNGE, POP3 DELE+QUIT, HTTP, or equivalent client action
|
||
and are no longer accessible by the end user.
|
||
|
||
The parameters include a mailbox identifier that MUST include
|
||
UIDVALIDITY, a UID set, and MAY also indicate which access
|
||
protocol triggered the event.
|
||
|
||
MessageNew
|
||
A new message was received into a mailbox via a message delivery
|
||
agent.
|
||
|
||
The parameters include a message identifier that, for IMAP-
|
||
accessible message stores, MUST include UIDVALIDITY and a UID.
|
||
The parameters MAY also include an SMTP envelope and other
|
||
arbitrary message and mailbox metadata. In some cases, the entire
|
||
new message itself may be included. The set of parameters SHOULD
|
||
be adjustable to the client's preference, with limits set by
|
||
server policy. An interesting policy, for example, would be to
|
||
include messages up to 2K in size with the notification, but to
|
||
include a URLAUTH [RFC4467] reference for larger messages.
|
||
|
||
QuotaExceed
|
||
An operation failed (typically MessageNew) because the user's
|
||
mailbox exceeded one of the quotas (e.g., disk quota, message
|
||
quota, quota by message context, etc.). The parameters SHOULD
|
||
include at least the relevant user and quota and, optionally, the
|
||
mailbox. Quota usage SHOULD be included if possible. Parameters
|
||
needed to extend this to support quota by context are not
|
||
presently described in this document but could be added in the
|
||
future.
|
||
|
||
QuotaWithin
|
||
An operation occurred (typically MessageExpunge or MessageExpire)
|
||
that reduced the user's quota usage under the limit.
|
||
|
||
QuotaChange
|
||
The user's quota was changed.
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
Gellens & Newman Standards Track [Page 6]
|
||
|
||
RFC 5423 Internet Message Store Events March 2009
|
||
|
||
|
||
4.2. Message Flags
|
||
|
||
This section includes events related to changes in message flags.
|
||
|
||
MessageRead
|
||
One or more messages in the mailbox were marked as read or seen by
|
||
a user. Note that POP has no concept of read or seen messages, so
|
||
these events are only generated by IMAP or HTTP clients (or
|
||
equivalent).
|
||
|
||
The parameters include a mailbox identifier and a set of message
|
||
UIDs.
|
||
|
||
MessageTrash
|
||
One or more messages were marked for future deletion by the user
|
||
but are still accessible over the protocol (the user's client may
|
||
or may not make these messages accessible through its user
|
||
interface).
|
||
|
||
The parameters include a mailbox identifier and a set of message
|
||
UIDs.
|
||
|
||
FlagsSet
|
||
One or more messages in the mailbox had one or more IMAP flags or
|
||
keywords set.
|
||
|
||
The parameters include a list of IMAP flag or keyword names that
|
||
were set, a mailbox identifier, and the set of UIDs of affected
|
||
messages. The flagNames MUST NOT include \Recent. For
|
||
compatibility with simpler clients, it SHOULD be configurable
|
||
whether setting the \Seen or \Deleted flags results in this event
|
||
or the simpler MessageRead/MessageTrash events. By default, the
|
||
simpler message forms SHOULD be used for MessageRead and
|
||
MessageTrash.
|
||
|
||
FlagsClear
|
||
One or more messages in the mailbox had one or more IMAP flags or
|
||
keywords cleared.
|
||
|
||
The parameters include a list of IMAP flag or keyword names that
|
||
were cleared, a mailbox identifier, and the set of UIDs of
|
||
affected messages. The flagNames parameter MUST NOT include
|
||
\Recent.
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
Gellens & Newman Standards Track [Page 7]
|
||
|
||
RFC 5423 Internet Message Store Events March 2009
|
||
|
||
|
||
4.3. Access Accounting
|
||
|
||
This section lists events related to message store access accounting.
|
||
|
||
Login
|
||
A user has logged into the system via IMAP, HTTP, POP, or some
|
||
other mechanism.
|
||
|
||
The parameters include the domain name and port used to access the
|
||
server and the user's authorization identity. Additional possible
|
||
parameters include the client's IP address and port, the
|
||
authentication identity (if different from the authorization
|
||
identity), the service name, the authentication mechanism,
|
||
information about any negotiated security layers, a timestamp, and
|
||
other information.
|
||
|
||
Logout
|
||
A user has logged out or otherwise been disconnected from the
|
||
message store via IMAP, HTTP, POP, or some other mechanism.
|
||
|
||
The parameters include the server domain name and the user's
|
||
authorization identity. Additional parameters MAY include any of
|
||
the information from the "Login" event as well as information
|
||
about the type of disconnect (suggested values include graceful,
|
||
abort, timeout, and security layer error), the duration of the
|
||
connection or session, and other information.
|
||
|
||
4.4. Mailbox Management
|
||
|
||
This section lists events related to the management of mailboxes.
|
||
|
||
MailboxCreate
|
||
A mailbox has been created, or an access control changed on an
|
||
existing mailbox so that it is now accessible by the user. If the
|
||
mailbox creation caused the creation of new mailboxes earlier in
|
||
the hierarchy, separate MailboxCreate events are not generated, as
|
||
their creation is implied.
|
||
|
||
The parameters include the created mailbox identifier, its
|
||
UIDVALIDITY for IMAP-accessible message stores, and MAY also
|
||
indicate which access protocol triggered the event. Access and
|
||
permissions information (such as Access Control List (ACL)
|
||
[RFC4314] settings) require a standardized format to be included,
|
||
and so are left for future extension.
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
Gellens & Newman Standards Track [Page 8]
|
||
|
||
RFC 5423 Internet Message Store Events March 2009
|
||
|
||
|
||
MailboxDelete
|
||
A mailbox has been deleted, or an access control changed on an
|
||
existing mailbox so that it is no longer accessible by the user.
|
||
Note that if the mailbox has child mailboxes, only the specified
|
||
mailbox has been deleted, not the children. The mailbox becomes
|
||
\NOSELECT, and the hierarchy remains unchanged, as per the
|
||
description of the DELETE command in IMAP4rev1 [RFC3501].
|
||
|
||
The parameters include the deleted mailbox identifier and MAY also
|
||
indicate which access protocol triggered the event.
|
||
|
||
MailboxRename
|
||
A mailbox has been renamed. Note that, per the description of the
|
||
RENAME command in IMAP4rev1 [RFC3501], special semantics regarding
|
||
the mailbox hierarchy apply when INBOX is renamed (child mailboxes
|
||
are usually included in the rename, but are excluded when INBOX is
|
||
renamed). When a mailbox other than INBOX is renamed and its
|
||
child mailboxes are also renamed as a result, separate
|
||
MailboxRename events are not generated for the child mailboxes, as
|
||
their renaming is implied. If the rename caused the creation of
|
||
new mailboxes earlier in the hierarchy, separate MailboxCreate
|
||
events are not generated for those, as their creation is implied.
|
||
When INBOX is renamed, a new INBOX is created. A MailboxCreate
|
||
event is not generated for the new INBOX, since it is implied.
|
||
|
||
The parameters include the old mailbox identifier, the new mailbox
|
||
identifier, and MAY also indicate which access protocol triggered
|
||
the event.
|
||
|
||
MailboxSubscribe
|
||
A mailbox has been added to the server-stored subscription list,
|
||
such as the one managed by the IMAP SUBSCRIBE and UNSUBSCRIBE
|
||
commands.
|
||
|
||
The parameters include the user whose subscription list has been
|
||
affected, the mailbox identifier, and MAY also indicate which
|
||
access protocol triggered the event.
|
||
|
||
MailboxUnSubscribe
|
||
A mailbox has been removed from the subscription list.
|
||
|
||
The parameters include the user whose subscription list has been
|
||
affected, the mailbox identifier, and MAY also indicate which
|
||
access protocol triggered the event.
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
Gellens & Newman Standards Track [Page 9]
|
||
|
||
RFC 5423 Internet Message Store Events March 2009
|
||
|
||
|
||
5. Event Parameters
|
||
|
||
This section lists parameters included with these events.
|
||
|
||
admin
|
||
Included with all events generated by message access protocols.
|
||
|
||
The authentication identity associated with this event, as
|
||
distinct from the authorization identity (see "user"). This is
|
||
not included when it is the same as the value of the user
|
||
parameter.
|
||
|
||
bodyStructure
|
||
May be included with MessageAppend and MessageNew.
|
||
|
||
The IMAP BODYSTRUCTURE of the message.
|
||
|
||
clientIP
|
||
Included with all events generated by message access protocols.
|
||
|
||
The IPv4 or IPv6 address of the message store access client that
|
||
performed the action that triggered the notification.
|
||
|
||
clientPort
|
||
Included with all events generated by message access protocols.
|
||
|
||
The port number of the message store access client that performed
|
||
an action that triggered the notification (the port from which the
|
||
connection occurred).
|
||
|
||
diskQuota
|
||
Included with QuotaExceed, QuotaWithin, and QuotaChange
|
||
notifications relating to a user or mailbox disk quota. May be
|
||
included with other notifications.
|
||
|
||
Disk quota limit in kilobytes (1024 octets).
|
||
|
||
diskUsed
|
||
Included with QuotaExceed and QuotaWithin notifications relating
|
||
to a user or mailbox disk quota. May be included with other
|
||
notifications.
|
||
|
||
Disk space used in kilobytes (1024 octets). Only disk space that
|
||
counts against the quota is included.
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
Gellens & Newman Standards Track [Page 10]
|
||
|
||
RFC 5423 Internet Message Store Events March 2009
|
||
|
||
|
||
envelope
|
||
May be included with the MessageNew notification.
|
||
|
||
The message transfer envelope associated with final delivery of
|
||
the message for the MessageNew notification. This includes the
|
||
MAIL FROM and relevant RCPT TO line(s) used for final delivery
|
||
with CRLF delimiters and any ESMTP parameters.
|
||
|
||
flagNames
|
||
Included with FlagsSet and FlagsClear events. May be included
|
||
with MessageAppend and MessageNew to indicate flags that were set
|
||
initially by the APPEND command or delivery agent, respectively.
|
||
|
||
A list (likely to be space-separated) of IMAP flag or keyword
|
||
names that were set or cleared. Flag names begin with a backslash
|
||
while keyword names do not. The \Recent flag is explicitly not
|
||
permitted in the list.
|
||
|
||
mailboxID
|
||
Included in events that affect mailboxes. A URI describing the
|
||
mailbox. In the case of MailboxRename, this refers to the new
|
||
name.
|
||
|
||
maxMessages
|
||
Included with QuotaExceed and QuotaWithin notifications relating
|
||
to a user or mailbox message count quota. May be included with
|
||
other notifications.
|
||
|
||
Quota limit on the number of messages in the mailbox, for events
|
||
referring to a mailbox.
|
||
|
||
messageContent
|
||
May be included with MessageAppend and MessageNew.
|
||
|
||
The entire message itself. Size-based suppression of this SHOULD
|
||
be available.
|
||
|
||
messageSize
|
||
May be included with MessageAppend and MessageNew.
|
||
|
||
Size of the RFC 5322 message itself in octets. This value matches
|
||
the length of the IMAP literal returned in response to an IMAP
|
||
FETCH of BODY[] for the referenced message.
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
Gellens & Newman Standards Track [Page 11]
|
||
|
||
RFC 5423 Internet Message Store Events March 2009
|
||
|
||
|
||
messages
|
||
Included with QuotaExceed and QuotaWithin notifications relating
|
||
to a user or mailbox message count quota. May be included with
|
||
other notifications.
|
||
|
||
Number of messages in the mailbox. This is typically included
|
||
with message addition and deletion events.
|
||
|
||
modseq
|
||
May be included with any notification referring to one message.
|
||
|
||
This is the 64-bit integer MODSEQ as defined in [RFC4551]. No
|
||
assumptions about MODSEQ can be made if this is omitted.
|
||
|
||
oldMailboxID
|
||
A URI describing the old name of a renamed or moved mailbox.
|
||
|
||
pid
|
||
May be included with any notification.
|
||
|
||
The process ID of the process that generated the notification.
|
||
|
||
process
|
||
May be included with any notification.
|
||
|
||
The name of the process that generated the notification.
|
||
|
||
serverDomain
|
||
Included in Login and optionally in Logout or other events. The
|
||
domain name or IP address (v4 or v6) used to access the server or
|
||
mailbox.
|
||
|
||
serverPort
|
||
Included in Login and optionally in Logout or other events. The
|
||
port number used to access the server. This is often a well-known
|
||
port.
|
||
|
||
serverFQDN
|
||
May be included with any notification.
|
||
|
||
The fully qualified domain name of the server that generated the
|
||
event. Note that this may be different from the server name used
|
||
to access the mailbox included in the mailbox identifier.
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
Gellens & Newman Standards Track [Page 12]
|
||
|
||
RFC 5423 Internet Message Store Events March 2009
|
||
|
||
|
||
service
|
||
May be included with any notification.
|
||
|
||
The name of the service that triggered the event. Suggested
|
||
values include "imap", "pop", "http", and "admincli" (for an
|
||
administrative client).
|
||
|
||
tags
|
||
May be included with any notification.
|
||
|
||
A list of UTF-8 tags (likely to be comma-separated). One or more
|
||
tags can be set at the time a notification criteria or
|
||
notification subscription is created. Subscribers can use tags
|
||
for additional client-side filtering or dispatch of events.
|
||
|
||
timestamp
|
||
May be included with any notification.
|
||
|
||
The time at which the event occurred that triggered the
|
||
notification (the underlying protocol carrying the notification
|
||
may contain a timestamp for when the notification was generated).
|
||
This MAY be an approximate time.
|
||
|
||
Timestamps are expressed in local time and contain the offset from
|
||
UTC (this information is used in several places in Internet mail)
|
||
and are normally in [RFC3339] format.
|
||
|
||
uidnext
|
||
May be included with any notification referring to a mailbox.
|
||
|
||
The UID that is projected to be assigned next in the mailbox.
|
||
This is typically included with message addition and deletion
|
||
events. This is equivalent to the UIDNEXT status item in the IMAP
|
||
STATUS command.
|
||
|
||
uidset
|
||
Included with MessageExpires, MessageExpunges, MessageRead,
|
||
MessageTrash, FlagsSet, and FlagsClear.
|
||
|
||
This includes the set of IMAP UIDs referenced.
|
||
|
||
uri
|
||
Included with all notifications. A reference to the IMAP server,
|
||
a mailbox, or a message.
|
||
|
||
Typically an IMAP URL. This can include the name of the server
|
||
used to access the mailbox/message, the mailbox name, the
|
||
UIDVALIDITY of the mailbox, and the UID of a specific message.
|
||
|
||
|
||
|
||
Gellens & Newman Standards Track [Page 13]
|
||
|
||
RFC 5423 Internet Message Store Events March 2009
|
||
|
||
|
||
user
|
||
Included with all events generated by message access protocols.
|
||
|
||
This is the authorization identifier used when the client
|
||
connected to the access protocol that triggered the event. Some
|
||
protocols (for example, many SASL mechanisms) distinguish between
|
||
authorization and authentication identifiers. For events
|
||
associated with a mailbox, this may be different from the owner of
|
||
the mailbox specified in the IMAP URL.
|
||
|
||
6. IANA Considerations
|
||
|
||
The IANA has created a new registry for "Internet Message Store
|
||
Events" that contains two sub-registries: event names and event
|
||
parameters. For both event names and event parameters, entries that
|
||
do not start with "vnd." are added by the IETF and are intended for
|
||
interoperable use. Entries that start with "vnd." are intended for
|
||
private use by one or more parties and are allocated to avoid
|
||
collisions.
|
||
|
||
The initial values are contained in this document.
|
||
|
||
Using IANA Considerations [RFC5226] terminology, entries that do not
|
||
start with "vnd." are allocated by IETF Consensus, while those
|
||
starting with "vnd." are allocated First Come First Served.
|
||
|
||
7. Security Considerations
|
||
|
||
Notifications can produce a large amount of traffic and expose
|
||
sensitive information. When notification mechanisms are used to
|
||
maintain state between different entities, the ability to corrupt or
|
||
manipulate notification messages could enable an attacker to modulate
|
||
the state of these entities. For example, if an attacker were able
|
||
to modify notifications sent from a message store to an auditing
|
||
server, he could modify the "user" and "messageContent" parameters in
|
||
MessageNew notifications to create false audit log entries.
|
||
|
||
A competent transfer protocol for notifications must consider
|
||
authentication, authorization, privacy, and message integrity, as
|
||
well as denial-of-service issues. While the IETF has adequate tools
|
||
and experience to address these issues for mechanisms that involve
|
||
only one TCP connection, notification or publish/subscribe protocols
|
||
that are more sophisticated than a single end-to-end TCP connection
|
||
will need to pay extra attention to these issues and carefully
|
||
balance requirements to successfully deploy a system with security
|
||
and privacy considerations.
|
||
|
||
|
||
|
||
|
||
|
||
Gellens & Newman Standards Track [Page 14]
|
||
|
||
RFC 5423 Internet Message Store Events March 2009
|
||
|
||
|
||
8. Acknowledgments
|
||
|
||
Alexey Melnikov, Arnt Gulbrandsen, and Zoltan Ordogh have reviewed
|
||
and offered improvements to this document. Richard Barnes did a nice
|
||
review during Last Call.
|
||
|
||
9. References
|
||
|
||
9.1. Normative References
|
||
|
||
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
|
||
Requirement Levels", BCP 14, RFC 2119, March 1997.
|
||
|
||
[RFC3501] Crispin, M., "INTERNET MESSAGE ACCESS PROTOCOL - VERSION
|
||
4rev1", RFC 3501, March 2003.
|
||
|
||
[RFC5092] Melnikov, A. and C. Newman, "IMAP URL Scheme", RFC 5092,
|
||
November 2007.
|
||
|
||
[RFC5226] Narten, T. and H. Alvestrand, "Guidelines for Writing an
|
||
IANA Considerations Section in RFCs", BCP 26, RFC 5226,
|
||
May 2008.
|
||
|
||
9.2. Informative References
|
||
|
||
[RFC1939] Myers, J. and M. Rose, "Post Office Protocol - Version 3",
|
||
STD 53, RFC 1939, May 1996.
|
||
|
||
[RFC2177] Leiba, B., "IMAP4 IDLE command", RFC 2177, June 1997.
|
||
|
||
[RFC2447] Dawson, F., Mansour, S., and S. Silverberg, "iCalendar
|
||
Message-Based Interoperability Protocol (iMIP)", RFC 2447,
|
||
November 1998.
|
||
|
||
[RFC2616] Fielding, R., Gettys, J., Mogul, J., Frystyk, H.,
|
||
Masinter, L., Leach, P., and T. Berners-Lee, "Hypertext
|
||
Transfer Protocol -- HTTP/1.1", RFC 2616, June 1999.
|
||
|
||
[RFC3339] Klyne, G., Ed. and C. Newman, "Date and Time on the
|
||
Internet: Timestamps", RFC 3339, July 2002.
|
||
|
||
[RFC3458] Burger, E., Candell, E., Eliot, C., and G. Klyne, "Message
|
||
Context for Internet Mail", RFC 3458, January 2003.
|
||
|
||
[RFC4146] Gellens, R., "Simple New Mail Notification", RFC 4146,
|
||
August 2005.
|
||
|
||
|
||
|
||
|
||
|
||
Gellens & Newman Standards Track [Page 15]
|
||
|
||
RFC 5423 Internet Message Store Events March 2009
|
||
|
||
|
||
[RFC4314] Melnikov, A., "IMAP4 Access Control List (ACL) Extension",
|
||
RFC 4314, December 2005.
|
||
|
||
[RFC4422] Melnikov, A. and K. Zeilenga, "Simple Authentication and
|
||
Security Layer (SASL)", RFC 4422, June 2006.
|
||
|
||
[RFC4467] Crispin, M., "Internet Message Access Protocol (IMAP) -
|
||
URLAUTH Extension", RFC 4467, May 2006.
|
||
|
||
[RFC4551] Melnikov, A. and S. Hole, "IMAP Extension for Conditional
|
||
STORE Operation or Quick Flag Changes Resynchronization",
|
||
RFC 4551, June 2006.
|
||
|
||
[RFC5322] Resnick, P., Ed., "Internet Message Format", RFC 5322,
|
||
October 2008.
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
Gellens & Newman Standards Track [Page 16]
|
||
|
||
RFC 5423 Internet Message Store Events March 2009
|
||
|
||
|
||
Appendix A. Future Extensions
|
||
|
||
This document specifies core functionality based on events that are
|
||
believed to be well understood, have known use cases, and are
|
||
implemented by at least one deployed real-world Internet message
|
||
store. (A few events are exceptions to the last test only: FlagsSet,
|
||
FlagsClear, MailboxCreate, MailboxDelete, MailboxRename,
|
||
MailboxSubscribe, and MailboxUnSubscribe.)
|
||
|
||
Some events have been suggested but are postponed to future
|
||
extensions because they do not meet this criteria. These events
|
||
include messages that have been moved to archive storage and may
|
||
require extra time to access, quota by message context,
|
||
authentication failure, user mail account disabled, annotations, and
|
||
mailbox ACL or metadata change. The descriptions of several events
|
||
note additional parameters that are likely candidates for future
|
||
inclusion. See Section 6 for how the list of events and parameters
|
||
can be extended.
|
||
|
||
In order to narrow the scope of this document to something that can
|
||
be completed, only events generated from the message store (by a
|
||
message access module, administrative module, or message delivery
|
||
agent) are considered. A complete mail system is normally linked
|
||
with an identity system that would also publish events of interest to
|
||
a message store event subscriber. Events of interest include account
|
||
created/deleted/disabled and password changed/expired.
|
||
|
||
Authors' Addresses
|
||
|
||
Randall Gellens
|
||
QUALCOMM Incorporated
|
||
5775 Morehouse Drive
|
||
San Diego, CA 92651
|
||
USA
|
||
|
||
Phone:
|
||
EMail: rg+ietf@qualcomm.com
|
||
|
||
|
||
Chris Newman
|
||
Sun Microsystems
|
||
800 Royal Oaks
|
||
Monrovia, CA 91016-6347
|
||
USA
|
||
|
||
Phone:
|
||
EMail: chris.newman@sun.com
|
||
|
||
|
||
|
||
|
||
Gellens & Newman Standards Track [Page 17]
|
||
|