NAME¶
pop3d::dbox - Simple mailbox database for pop3d
SYNOPSIS¶
package require
Tcl 8.3
package require
pop3d::dbox ?1.0.2?
::pop3d::dbox::new ?
dbName?
dbName option ?
arg arg ...?
dbName destroy
dbName base base
dbName add mbox
dbName remove mbox
dbName move old new
dbName list
dbName exists mbox
dbName locked mbox
dbName lock mbox
dbName unlock mbox
dbName stat mbox
dbName size mbox ?
msgId?
dbName dele mbox msgList
storageCmd get mbox msgId
DESCRIPTION¶
The package
pop3d::dbox provides simple/basic mailbox management
facilities. Each mailbox object manages a single base directory whose
subdirectories represent the managed mailboxes. Mails in a mailbox are
represented by files in a mailbox directory, where each of these files
contains a single mail, both headers and body, in RFC 822 (
http://www.rfc-editor.org/rfc/rfc822.txt) conformant format.
Any mailbox object following the interface described below can be used in
conjunction with the pop3 server core provided by the package
pop3d. It
is especially possible to directly use the objects created by this package in
the storage callback of pop3 servers following the same interface as servers
created by the package
pop3d.
- ::pop3d::dbox::new ?dbName?
- This command creates a new database object with an
associated global Tcl command whose name is dbName.
The command
dbName may be used to invoke various operations on the
database. It has the following general form:
- dbName option ?arg arg ...?
- Option and the args determine the exact
behavior of the command.
The following commands are possible for database objects:
- dbName destroy
- Destroys the mailbox database and all transient data. The
directory associated with the object is not destroyed.
- dbName base base
- Defines the base directory containing the mailboxes to
manage. If this method is not called none of the following methods will
work.
- dbName add mbox
- Adds a mailbox of name mbox to the database. The
name must be a valid path component.
- dbName remove mbox
- Removes the mailbox specified through mbox, and the
mails contained therein, from the database. This method will fail if the
specified mailbox is locked.
- dbName move old new
- Changes the name of the mailbox old to
new.
- dbName list
- Returns a list containing the names of all mailboxes in the
directory associated with the database.
- dbName exists mbox
- Returns true if the mailbox with name mbox exists in
the database, or false if not.
- dbName locked mbox
- Checks if the mailbox specified through mbox is
currently locked.
- dbName lock mbox
- This method locks the specified mailbox for use by a single
connection to the server. This is necessary to prevent havoc if several
connections to the same mailbox are open. The complementary method is
unlock. The command will return true if the lock could be set
successfully or false if not.
- dbName unlock mbox
- This is the complementary method to lock, it revokes
the lock on the specified mailbox.
- dbName stat mbox
- Determines the number of messages in the specified mailbox
and returns this number. This method fails if the mailbox mbox is
not locked.
- dbName size mbox ?msgId?
- Determines the size of the message specified through its id
in msgId, in bytes, and returns this number. The command will
return the size of the whole maildrop if no message id was specified. If
specified the msgId has to be in the range "1 ...
[dbName stat]" or this call will fail. If stat
was not called before this call, size will assume that there are
zero messages in the mailbox.
- dbName dele mbox msgList
- Deletes the messages whose numeric ids are contained in the
msgList from the mailbox specified via mbox. The
msgList must not be empty or this call will fail. The numeric ids
in msgList have to be in the range "1 ... [ dbName
stat]" or this call will fail. If stat was not called
before this call, dele will assume that there are zero messages in
the mailbox.
- storageCmd get mbox msgId
- Returns a handle for the specified message. This handle is
a mime token following the interface described in the documentation of
package mime. The token is read-only. In other words, the
caller is allowed to do anything with the token except to modify it. The
msgId has to be in the range "1 ... [ dbName
stat]" or this call will fail. If stat was not called
before this call, get will assume that there are zero messages in
the mailbox.
BUGS, IDEAS, FEEDBACK¶
This document, and the package it describes, will undoubtedly contain bugs and
other problems. Please report such in the category
pop3d of the
Tcllib SF Trackers [
http://sourceforge.net/tracker/?group_id=12883].
Please also report any ideas for enhancements you may have for either package
and/or documentation.
KEYWORDS¶
internet, network, pop3, protocol, rfc 822
CATEGORY¶
Networking
COPYRIGHT¶
Copyright (c) 2002 Andreas Kupries <andreas_kupries@users.sourceforge.net>