pop3d::udb(n) Tcl POP3 Server Package pop3d::udb(n)
NAME
pop3d::udb - Simple user database for pop3d
SYNOPSIS
package require Tcl 8.2
package require pop3d::udb ?1.0?
::pop3d::udb::new ?dbName?
dbName option ?arg arg ...?
dbName destroy
dbName add user pwd storage
dbName remove user
dbName rename user newName
dbName lookup user
dbName exists user
dbName who
dbName save ?file?
dbName read file
DESCRIPTION
The package pop3d::udb provides simple in memory databases which can be used in conjunction with the pop3 server core provided by the pack-
age pop3d. The databases will use the names of users as keys and associates passwords and storage references with them.
Objects created by this package can be directly used in the authentication callback of pop3 servers following the same interface as servers
created by the package pop3d.
::pop3d::udb::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 database object.
dbName add user pwd storage
Add a new user or changes the data of an existing user. Stores password and storage reference for the given user.
dbName remove user
Removes the specified user from the database.
dbName rename user newName
Changes the name of the specified user to newName.
dbName lookup user
Searches the database for the specified user and returns a two-element list containing the associated password and storage refer-
ence, in this order. Throws an error if the user could not be found. This is the interface as expected by the authentication call-
back of package pop3d.
dbName exists user
Returns true if the specified user is known to the database, else false.
dbName who
Returns a list of users known to the database.
dbName save ?file?
Saves the contents of the database into the given file. If the file is not specified the system will use the path last used in a
call to dbName read. The generated file can be read by the read method.
dbName read file
Reads the specified file and adds the contained user definitions to the database. As the file is actually source'd a safe inter-
preter is employed to safeguard against malicious code. This interpreter knows the add command for adding users and their associated
data to this database. This command has the same argument signature as the method add. The path of the file is remembered internally
so that it can be used in the next call of dbName save without an argument.
KEYWORDS
pop3, internet, network, protocol, rfc1939
pop3d 1.0 pop3d::udb(n)
Check Out this Related Man Page
pop3d::dbox(n) Tcl POP3 Server Package pop3d::dbox(n)
__________________________________________________________________________________________________________________________________________________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 sub-
directories 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 speci-
fied 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>
pop3d 1.0.2 pop3d::dbox(n)