logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

pop3d::dbox - Simple mailbox database for pop3d

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 TcllibTrackers [http://core.tcl.tk/tcllib/reportlist].   Please
       also report any ideas for enhancements you may have for either package and/or documentation.

       When proposing code changes, please provide unifieddiffs, i.e the output of diff-u.

       Note  further  that  attachments  are strongly preferred over inlined patches. Attachments can be made by
       going to the Edit form of the ticket immediately after its creation, and then using the left-most  button
       in the secondary navigation bar.

Category

       Networking

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:

       dbNameoption ?argarg...?
              Option and the args determine the exact behavior of the command.

       The following commands are possible for database objects:

       dbNamedestroy
              Destroys  the mailbox database and all transient data. The directory associated with the object is
              not destroyed.

       dbNamebasebase
              Defines the base directory containing the mailboxes to manage. If this method is not  called  none
              of the following methods will work.

       dbNameaddmbox
              Adds a mailbox of name mbox to the database. The name must be a valid path component.

       dbNameremovembox
              Removes  the  mailbox  specified through mbox, and the mails contained therein, from the database.
              This method will fail if the specified mailbox is locked.

       dbNamemoveoldnew
              Changes the name of the mailbox old to new.

       dbNamelist
              Returns a list containing the names  of  all  mailboxes  in  the  directory  associated  with  the
              database.

       dbNameexistsmbox
              Returns true if the mailbox with name mbox exists in the database, or false if not.

       dbNamelockedmbox
              Checks if the mailbox specified through mbox is currently locked.

       dbNamelockmbox
              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.

       dbNameunlockmbox
              This is the complementary method to lock, it revokes the lock on the specified mailbox.

       dbNamestatmbox
              Determines the number of messages in the specified mailbox and returns this  number.  This  method
              fails if the mailbox mbox is not locked.

       dbNamesizembox ?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 ... [dbNamestat]" or this call will fail.  If  stat
              was not called before this call, size will assume that there are zero messages in the mailbox.

       dbNamedelemboxmsgList
              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 ...  [dbNamestat]" or this call will fail. If stat was not called before  this
              call, dele will assume that there are zero messages in the mailbox.

       storageCmdgetmboxmsgId
              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
              ...  [dbNamestat]" or this call will fail. If stat was not called  before  this  call,  get  will
              assume that there are zero messages in the mailbox.

Keywords

       internet, network, pop3, protocol, rfc 822

Name

       pop3d::dbox - Simple mailbox database for pop3d

Synopsis

       package require Tcl8.59

       package require pop3d::dbox?1.0.3?::pop3d::dbox::new ?dbName?

       dbNameoption ?argarg...?

       dbNamedestroydbNamebasebasedbNameaddmboxdbNameremovemboxdbNamemoveoldnewdbNamelistdbNameexistsmboxdbNamelockedmboxdbNamelockmboxdbNameunlockmboxdbNamestatmboxdbNamesizembox ?msgId?

       dbNamedelemboxmsgListstorageCmdgetmboxmsgId

________________________________________________________________________________________________________________

See Also