⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 rfc1056.txt

📁 RFC 的详细文档!
💻 TXT
📖 第 1 页 / 共 5 页
字号:
   leading period.  A single period is a list terminator; a period
   followed by other text is removed before being presented to the



Lambert                                                        [Page 10]

RFC 1056                         PCMAIL                        June 1988


   receiving application.

4.3. DMSP sessions

   A DMSP session proceeds as follows: a client begins the session with
   the repository by opening a connection to the repository's machine.
   The client then authenticates both itself and its user to the
   repository with a "login" operation.  If the authentication is
   successful, the user performs an arbitrary number of DMSP operations
   before ending the session with a "logout" operation, at which time
   the connection is closed by the repository.

   Because DMSP can manipulate a pair of mail states (local and global)
   at once, it is extremely important that all DMSP operations are
   failure-atomic.  Failure of any DMSP operation must leave both states
   in a consistent, known state.  For this reason, a DMSP operation is
   defined to have failed unless an explicit acknowledgement is received
   by the operation initiator.  This acknowledgement consists of a
   response code possibly followed by information, as described above.

   Following is a general discussion of all the DMSP operations.  The
   operations are broken down by type: general operations, user
   operations, client operations, mailbox operations, address
   operations, subscription operations, and message operations.
   Detailed operation specifications appear at the end of this document.

4.4. General operations

   The first group of DMSP operations perform general functions that
   operate on no one particular class of object.  DMSP has three general
   operations which provide the following services:

   In order to prevent protocol version skew between clients and the
   repository, DMSP provides a "send-version" operation.  The client
   supplies its DMSP version number as an argument; the operation
   succeeds if the supplied version number matches the repository's DMSP
   version number.  It fails if the two version numbers do not match.
   The version number is a natural number like "100", "101", "200".  The
   "send-version" operation should be the first that a client sends to
   the repository, since no other operation may work correctly if the
   client and repository are using different versions of DMSP.

   Users can send mail to other users via the "send-message" operation.
   The message must have an Internet-style header as defined by NIC
   RFC-822.  The repository takes the message and distributes it to the
   mailboxes specified by the message header's destination fields.  If
   one or more of the mailboxes exists outside the repository's user
   community, the repository is responsible for handing the message to a



Lambert                                                        [Page 11]

RFC 1056                         PCMAIL                        June 1988


   local SMTP server.  The message envelope is generated by the
   repository from the message contents since it may be difficult for
   some clients to perform envelope-generation functions such as address
   verification and syntax checking.

   A success acknowledgement is sent from the repository only if (1) the
   entire message was successfully transmitted from client to
   repository, and (2) the message header was properly formatted.  Once
   the repository has successfully received the message from the client,
   any subsequent errors in queueing or delivery must be noted via
   return mail to the user.

   The last general operation is the "help" operation.  The repository
   responds to "help" by printing an acknowledgement followed by a list
   of supported commands, terminated with a period plus CR-LF.  The
   information is intended for display and can be in any format as long
   as the individual lines of text returned by the repository are CR-
   LF-terminated.

4.5. User operations

   The next series of DMSP operations manipulates user objects.  The
   most common of these operations are "login" and "logout".  A client
   must perform a login operation before being able to access a user's
   mail state.  A DMSP login operation takes five arguments: (1) the
   user's name, (2) the user's password, (3) the name of the client
   performing the login, (4) a flag set to 1 if the repository should
   create a client object for the client if one does not exist (0 else),
   and (5) a flag set to 1 if the client wishes to operate in "batch
   mode" and 0 if the client wishes to operate in "interactive" mode.
   The last flag value allows the repository to tune internal parameters
   for either mode of operation.

   The repository can make one of three responses.  First, it can make a
   success response, indicating successful authentication.  Second, it
   can make one of several failure responses, indicating failed
   authentication.  Finally, it can make a special response indicating
   that authentication was successful, but that the client has not been
   used in over a week.  This last response serves as a hint that the
   client should consider erasing its local mail state and pulling over
   a complete version of the repository's mail state.  This is done on
   the assumption that so many mail state changes have been made in a
   week that it would be inefficient to perform a normal
   synchronization.

   When a client has completed a session with the repository, it
   performs a logout operation.  This allows the repository to perform
   any necessary cleanup before closing the network connection.



Lambert                                                        [Page 12]

RFC 1056                         PCMAIL                        June 1988


   A user can change his password via the "set-password" operation.  The
   operation works much the same as the UNIX change-password operation,
   taking as arguments the user's current password and a desired new
   password.  If the current password given matches the user's current
   password, the user's current password is changed to the new password
   given.  Because encryption can be difficult to perform on some
   resource-poor clients, passwords are transmitted in clear text.
   Clearly this is not an acceptable long-term solution, and
   alternatives are welcomed.

4.6. Client operations

   DMSP provides four operations to manipulate client objects.  The
   first, "list-clients", tells the repository to send the user's client
   list to the requesting client.  The list is a series of lines, one
   per client, containing the client's name, followed by whitespace,
   followed by a status string.  The status is either "inactive" or
   "active".  As with all text responses, the list is terminated with a
   period plus CR-LF.

   The "create-client" operation allows a user to add a client object to
   his list of client objects.  Although the login operation duplicates
   this functionality via the "create-this- client?" flag, the create-
   client operation is a useful means of creating a number of new client
   objects while logged into the repository via an existing client.  The
   create-client operation requires as an argument the name of the
   client to create.

   The "delete-client" operation removes an existing client object from
   a user's client list.  The client being removed cannot be in use by
   anyone at the time.  Delete-client also requires as an argument the
   name of the client to delete.

   The last client operation, "reset-client", causes the repository to
   place all of the messages in all mailboxes onto the named client's
   update list.  When a client next synchronizes with the repository, it
   will end up receiving a list of all descriptors when it requests a
   list of changed message descriptors for a particular mailbox.  This
   is useful for two reasons.  First, a client's local mail state could
   easily become lost or damaged, especially if it is stored on a floppy
   disk.  Second, if a client has been marked as inactive by the
   repository, the reset-client operation provides a fast way of
   resynchronizing with the repository, assuming that so many
   differences exist between the local and global mail states that a
   normal synchronization would take far too much time.






Lambert                                                        [Page 13]

RFC 1056                         PCMAIL                        June 1988


4.7. Mailbox operations

   DMSP supports seven operations that manipulate mailbox objects.
   First, "list-mailboxes" has the repository send to the requesting
   client information on each mailbox.  The repository transmits one
   line of information per mailbox, terminating the list with a period
   plus CR-LF.  Each line contains, in order and separated by
   whitespace, the mailbox name, "next available UID", total message
   count, and unseen message count.  This operation is useful in
   synchronizing local and global mail states, since it allows a client
   to compare the user's global mailbox list with a client's local
   mailbox list.  The list of mailboxes also provides a quick summary of
   each mailbox's contents without having the contents present.

   The "create-mailbox" has the repository create a new mailbox and
   attach it to the user's list of mailboxes.  It takes as an argument
   the name of the mailbox to create.

   "Delete-mailbox" removes a mailbox from the user's list of mailboxes.
   All messages within the mailbox are also deleted and permanently
   removed from the system.  Any address objects binding the mailbox
   name to RFC-822-style mailbox addresses are also removed from the
   system.  Delete-mailbox takes as an argument the name of the mailbox
   to delete.

   "Create-bboard-mailbox" allows a user to create a bboard mailbox.
   The name given as an argument must be unique across the entire
   repository user community.  Once the bboard mailbox has been created,
   other users may subscribe to it, using subscription objects to keep
   track of which messages they have read on which bboard mailboxes.

   "Delete-bboard-mailbox" allows a bboard's owner to delete a bboard
   mailbox.  Subscribers who attempt to read from a bboard mailbox after
   it has been deleted are told that the bboard no longer exists.
   Again, the operation's argument is the name of the bboard mailbox to
   delete.

   "Reset-mailbox" causes the repository to place all of the messages in
   a named mailbox onto the current client's update list.  When the
   client next requests a list of changed message descriptors for this
   mailbox, it will receive a list of all message descriptors in the
   mailbox.  This operation is merely a more specific version of the
   reset-client operation (which allows the client to pull over a
   complete copy of the user's global mail state).  Its primary use is
   for mailboxes whose contents have accidentally been destroyed
   locally.

   Finally, DMSP has an "expunge-mailbox" operation.  Any message can be



Lambert                                                        [Page 14]

RFC 1056                         PCMAIL                        June 1988


   deleted and "undeleted" at will, since this simply changes the value
   of a flag attached to the message.  Deletions are made permanent by
   performing an expunge-mailbox operation.  The expunge operation
   causes the repository to look through a named mailbox, removing from
   the system any messages marked "deleted".  Expunge-mailbox takes as
   an argument the name of the mailbox to expunge.

4.8. Address operations

   DMSP provides three operations that allow users to manipulate address
   objects.  First, the "list-address" operation returns a list of
   address objects associated with a particular mailbox.  Each address
   is transmitted on a separate line terminated by a CR-LF; the list is
   terminated with a period plus CR-LF.

   The "create-address" operation adds a new address object that
   associates a (user-name, mailbox-name) pair with a given RFC-822-
   style mailbox address.  It takes as arguments the mailbox name and
   the address name.

   Finally, the "delete-address" operation destroys the address object
   binding the given RFC-822-style mail address and the given (user-
   name, mailbox-name) pair.  Arguments are the address to delete and
   the mailbox it belongs to.

4.9. Subscription operations

   DMSP provides five subscription operations.  The first, "list-
   subscriptions", gives the user a list of the bboards he is currently
   subscribing to.  The list consists of one line of information per
   subscription.  Each entry contains the following information, in
   order:

      - The bulletin board's name

      - The UID of the first message the subscriber has not yet
        seen

      - The number of messages the subscriber has not yet seen

      - The highest message UID in the bulletin board

   "List-available-subscriptions" gives the user a list of all bboards
   he can subscribe to.  The list consists of bboard names, one per

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -