diff -ruN cyrus-imapd/Makefile.in cyrus-imapd-2.0.15-HIERSEP-r2/Makefile.in --- cyrus-imapd/Makefile.in Sat Jul 7 20:54:14 2001 +++ cyrus-imapd-2.0.15-HIERSEP-r2/Makefile.in Sun Jul 8 16:59:57 2001 @@ -1,5 +1,5 @@ # Top-level Makefile for cyrus software -# $Id: Makefile.in,v 1.48 2001/07/07 19:54:14 leg Exp $ +# $Id: Makefile.in,v 1.45.2.4.2.3 2001/07/08 15:59:57 ken3 Exp $ # # @configure_input@ # @@ -58,7 +58,7 @@ exec_prefix = @exec_prefix@ cyrus_prefix = @cyrus_prefix@ -VERSION = 2.0.15 +VERSION = 2.0.15-HIERSEP-r2 all:: @for d in $(SUBDIRS); \ @@ -88,7 +88,7 @@ if [ \! -d dist ]; then mkdir dist ; fi @echo "checking out the distribution" @cd dist ; cvs -Q -d :pserver:anoncvs@cvs.andrew.cmu.edu:/cvs \ - co -d cyrus-imapd-$(VERSION) cyrus + co -d cyrus-imapd-$(VERSION) -r hier-sep cyrus touch distcvs install:: diff -ruN cyrus-imapd/contrib/notify_unix/README cyrus-imapd-2.0.15-HIERSEP-r2/contrib/notify_unix/README --- cyrus-imapd/contrib/notify_unix/README Sat Jun 23 02:01:48 2001 +++ cyrus-imapd-2.0.15-HIERSEP-r2/contrib/notify_unix/README Thu Jan 1 01:00:00 1970 @@ -1,17 +0,0 @@ -This directory contains two simple examples of UNIX notification daemons -written in Perl. Both daemons require installing the -Net::Server::Prefork module, located in this directory. - -The Perl script 'simple_notify.pl' simply logs mail notifications--it -shows the simplest possible handler. - -The Perl script 'mysql_notify.pl' also logs the notification, but in -addition it looks up the username in a DB table in order to get additional -information about the user. This could be used, for example, to get a -user's instant messaging address from a database in order to send a -notification message. 'mysql_notify.pl' requires a file /etc/notify -that contains three lines: the DSN, username, and password to connect -to the database. - -The shell script 'notify' is a sample init.d script for -starting/stopping the perl daemon. diff -ruN cyrus-imapd/doc/install-configure.html cyrus-imapd-2.0.15-HIERSEP-r2/doc/install-configure.html --- cyrus-imapd/doc/install-configure.html Thu Jul 5 16:47:39 2001 +++ cyrus-imapd-2.0.15-HIERSEP-r2/doc/install-configure.html Sun Jul 8 16:59:58 2001 @@ -1,4 +1,4 @@ - +
arbitron - arbitron mailboxes
+arbitron [ -C config-file ] [ -d days ] [ -p months ]
+mailbox...
Arbitron collects and reports readership statistics for mailboxes on the server. It also optionally prunes the mail- boxes of \Seen state for dormant users.
+Arbitron produces one line of output per mailbox, reporting the number of readers followed by a space and the name of the mailbox. IMPORTANT: This format is subject to change in future versions.
+Each "reader" is a distinct authentication identity which has "s" rights to the mailbox and which has SELECTed the mailbox within the past days days. Users are not counted as reading their own personal mailboxes. Personal mailboxes are not reported unless there is at least one reader other than the mailboxes owner.
+Arbitron reads its configuration options out of the imapd.conf(5) file unless specified otherwise by -C.
+|
+ -C config-file +-d days + |
++ | +
+ Read configuration options from config-file. +Count as a reader an authentication identity which has SELECTed the mailbox within days days. Default is 30. + |
+
|
+ -p months + |
++ | +
+ Prune \Seen state for users who have not SELECTed the mailbox within months months. |
+
| + | ++ | ++ | +
collectnews - add news articles to Cyrus header files
+collectnews [ -C config-file ]
+Collectnews reads article data from the standard input. It uses this information to update the files necessary for reading the articles through the Cyrus IMAP server. Collectnews is designed to be used by InterNetNews to update the IMAP database as the articles come in.
+The input is processed as an INN overview stream written as a ``WR'' entry in the newsfeeds(5) file. This data consists of lines of text of the format newsgroup/article number, seperated by commas.
+Collectnews reads its configuration options out of the imapd.conf(5) file unless specified otherwise by -C. The optional newsprefix option specifies a prefix to be prepended to newsgroup names to make the corresponding IMAP mailbox names. The required partition-news option specifies the pathname prefix to the IMAP news mail- boxes. The value of partition-news concatenated with the dots-to-slashes-converted value of newsprefix must be the pathname of the news spool directory.
+-C config-file Read configuration options from config-file.
+ctl_deliver - perform operations on the duplicate delivery database
+ctl_deliver [ -C config-file ] -r
+ctl_deliver [ -C config-file ] -E days
+ctl_deliver [ -C config-file ] -d -f filename
Ctl_deliver is used to perform various administrative operations on the duplicate delivery database.
+Ctl_deliver reads its configuration options out of the imapd.conf(5) file unless specified otherwise by -C.
+|
+ -C config-file +-r +-E days +-d +-f filename + |
++ | +
+ Read configuration options from config-file. +Recover the database after an application or system failure. +Prune the database of entries older than days. +Dump the contents of the database to standard output in a portable flat-text format. +Use the database specified by filename. + |
+
imapd.conf(5), master(8)
+
ctl_mboxlist - perform operations on the mailbox list database
+|
+ ctl_mboxlist [ -C config-file ] -r |
++ | +
Ctl_mboxlist is used to perform various administrative operations on the mailbox list database.
+Ctl_mboxlist reads its configuration options out of the imapd.conf(5) file unless specified otherwise by -C. The configdirectory option is used to determine the default location of the mailbox list database.
+|
+ -C config-file +-r +-c + |
++ | +
+ Read configuration options from config-file. +Recover the database after an application or system failure. +Checkpoint the database. Changes to the database which are part of committed transac- tions are written to disk. + |
+
|
+ -d +-u + |
++ | +
+ Dump the contents of the database to standard output in a portable flat-text format. +Load the contents of the database from standard input. The input MUST be in the format output using the -d option. + |
+
|
+ -f filename + |
++ | +
+ Use the database specified by filename instead of the default (configdirectory/mail- |
+
| + | ++ | ++ | +
imapd.conf(5), master(8)
+
+
+
| + | +
+ OPTIONS |
++ | +
+ + Execute commands from script. + |
++ | +
| + | +
+ -user user +-u user + |
++ | +
+ Log in to the server as user. +Short form of -user user. + |
++ | +
| + | +
+ -layers number -l number Short form of -layers prot. +-mech mechanism -m mechanism DESCRIPTION If invoked with host, cyradm runs in interactive mode, connecting to host on port port, authenticating, and then reading commands from the standard input and evaluating them. Port defaults to the standard IMAP port. Cyradm runs until the exit command is invoked or until it reaches end-of-file on its standard input. If the file .cyradmrc is in the home directory of the user, cyradm evaluates the file as a Tcl script just before reading the first command from standard input, after connecting and authenticating to server. +INTERACTIVE COMMANDS createmailbox mailbox [partition] deletemailbox mailbox Since administrators don't have implicit delete rights on all mailboxes, they may need to use setaclmailbox to renamemailbox mailbox newmailbox [partition] listmailbox [-subscribed] [pattern] [reference] Two wildcard characters are defined in pattern. The ``*'' wildcard matches zero or more characters. The In some cases, where ``%'' is used as the last character of a pattern, non-mailbox names are listed in paren- |
++ | +
setaclmailbox mailbox identifier rights [identifier rights]...
+The setaclmailbox (or sam) command modifies the access control list of the mailbox mailbox. One or more
+identifier-rights pairs may be given after mailbox, each sets the ACL for identifier to rights.
Rights may be a set of access right letters:
+ +| + | +
+ l +r + |
++ | +
+ lookup (mailbox is visible to LIST/LSUB/UNSEEN commands) +read (SELECT the mailbox, perform CHECK, FETCH, PARTIAL, SEARCH, COPY |
+
| + | +
+ s +w +i +p +c +d +a + |
++ | +
+ keep seen/unseen information across sessions (STORE \SEEN flag) +write (STORE flags other than \SEEN and \DELETED) +insert (perform APPEND, COPY into mailbox) +post (send mail to submission address for mailbox) +create (CREATE new sub-mailboxes in any implementation-defined hierarchy) +delete (STORE \DELETED flag, perform EXPUNGE) +administer (perform SETACL) + |
+
or one of the following words:
+ +| + | +
+ none +read +post +append +write +all + |
++ | +
+ "" +lrs +lrsp +lrsip +lrswipcd +lrswipcda + |
++ | +
deleteaclmailbox mailbox identifier [identifier]...
+The deleteaclmailbox (or dam) command modifies the access control list of mailbox. One or more identi-
+fiers may be specified, each identifier has its access control entry removed.
listaclmailbox mailbox
+The listaclmailbox (or lam) command returns a string containing the access control list of the mailbox mail-
+box.
setquota root quota...
+The setquota (or sq) command sets the limit on the quota root root to quota. The quota is one of the follow-
+ing:
| + | +
+ - +- + |
++ | +
+ A single numeric value, limiting the use of storage to that value +A list of one or more resource-value pairs, limiting the use of each given resource to the given numeric |
+
| + | +
+ - + |
++ | +
+ none, specifying no limits whatsoever + |
+
listquota root
+The listquota (or lq) command returns a string listing the quotas on the quota root root.
listquotaroot mailbox
+The listquotaroot (or lqr or lqm) command returns a string listing the quota roots and quotas on the mailbox
+mailbox.
quit Same as the Tcl command exit. Close the connection and exit cyradm.
+Cyradm adds one command to the standard Tcl command set.
+cyradm connect connection [host] [port]
+The cyradm connect command opens a connection to host and creates a new Tcl command connection that
+may be used to invoke various operations on the connection. Host defaults to connection and port defaults to
+the standard IMAP port.
The cyradm connect command returns its connection argument.
+
connection servername
+Returns the name of the host that connection is connected to.
connection authenticate [switches]
+Authenticates the connection. Switches are:
| + | +
+ -user user +-pwcommand script + |
++ | +
+ Log in to the server as user. +Attempt a plaintext password login. The argument is a Tcl script which is executed to obtain the login information--the script must return a list with two elements, the user- name and the password. Before executing the script, the authenticate command will replace %-sequences as follows: + |
+
| + | +
+ %% +%h +%u + |
++ | +
+ replaced with a single % +replaced with the hostname of the server +replaced with the value of the -user switch, or the empty string if the -user |
+
| + | +
+ -layers number +-mech mechanism + |
++ | +
+ Specify allowable protection mechanisms for the connection; see above. +Specify the SASL mechanism to use, if not plaintext login. + |
+
connection createmailbox mailbox [partition]
+Creates a mailbox on connection. Arguments are the same as for the interactive version of the command.
connection deletemailbox mailbox
+Delete a mailbox on connection. Arguments are the same as for the interactive version of the command.
connection renamemailbox mailbox newmailbox [partition]
+Renames a mailbox on connection. Arguments are the same as for the interactive version of the command.
connection listmailbox [-subscribed] pattern [reference]
+Returns a list describing mailboxes on connection matching pattern. The optional reference argument speci-
+fies the reference name relative to which pattern is then interpreted.
The -subscribed switch limits the returned mailboxes to those to which the user has subscribed.
+The returned value contains a list with one entry for each matching mailbox. Each entry is a list containing
+three elements, the name, a list of mailbox attributes, and the hierarchy delimiter. If there is no hierarchy
+delimiter, the third element is the empty string.
connection setaclmailbox mailbox identifier rights [...]
+Modifies an access control list on connection. Arguments are the same as for the interactive version of the
+command.
connection deleteaclmailbox mailbox identifier [...]
+Modifies an access control list on connection. Arguments are the same as for the interactive version of the
+command.
connection listaclmailbox mailbox
+Returns a list containing the access control list of the mailbox mailbox on connection. The returned list con-
+tains alternating identifier right pairs.
connection setquota root [resource limit]...
+Sets the limit on the quota root root on connection. Zero or more resource limit pairs may be specified, spec-
+ifying the limit for each resource.
connection listquota root
+Returns a list containing the quotas of the quota root root on connection. The returned list contains zero or
+more resource usage limit triplets.
connection listquotaroot mailbox
+Returns a list containing the quota roots and quotas on the mailbox mailbox on connection. The returned list
+contains zero or more sublists; each sublist contains the name of a quota root followed by zero or more
+resource usage limit triplets.
+
cyrus.conf - Cyrus configuration file
+/etc/cyrus.conf is the configuration file for the Cyrus master process. It defines the startup procedures, services and events to be spawned by master.
+The /etc/cyrus.conf file consists of a series of entries divided into sections of the form
+ +| + | +
+ section { + |
++ | ++ | ++ | +
| + | ++ | ++ | +
+ name arguments |
++ | +
| + | +
+ } + |
++ | ++ | ++ | +
where section is the name of the section, name is the name of the entry and arguments is the whitespace-sepa- rated list of arguments for the entry.
+Blank lines and lines beginning with ``#'' are ignored.
+The paragraphs below detail the three sections (START, SERVICES, EVENTS) that can be placed in the /etc/cyrus.conf file. The arguments that are available for each entry within the section are described, and each argument's default value is shown.
+Arguments can appear in any order. Some arguments have no default value, these are listed with ``<no default>''. For string arguments, the value MUST be enclosed in double quotes.
+ +|
+ START + |
++ | ++ | +
| + | ++ | +
+ This section lists the processes to run before any SERVICES are spawned. This section is |
+
|
+ cmd=<no default> + |
++ | ++ | +
The command (with options) to spawn as a child process. This string argument is required.
+ +|
+ SERVICES + |
++ | ++ | +
| + | ++ | +
+ This section is the heart of the /etc/cyrus.conf file. It lists the processes that should be |
+
|
+ cmd=<no default> + |
++ | ++ | +
The command (with options) to spawn as a child process. This string argument is required.
+listen=<no default>
+The UNIX or internet socket to listen on. This string field is required and takes one of the following forms:
path
+[ host : ] port
where path is the explicit path to a UNIX socket, host is either the hostname or bracket-enclosed IP address
+of a network interface, and port is either a port number or service name (as listed in /etc/services).
proto=tcp
+The protocol used for this service (tcp, udp). This string argument is optional.
prefork=0
+The number of instances of this service to always have running (for faster initial response time). This integer
+value is optional.
|
+ EVENTS + |
++ | ++ | +
| + | ++ | +
+ This section lists processes that should be run at specific intervals, similar to cron jobs. |
+
|
+ cmd=<no default> + |
++ | ++ | +
The command (with options) to spawn as a child process. This string argument is required.
+period=0
+The interval (in minutes) at which to run the command. This integer value is optional, but SHOULD be a pos-
+itive integer > 10.
+
# example cyrus.conf
+ +|
+ START { |
++ | +
+ + cmd="ctl_mboxlist -r" + |
++ | +
|
+ deliver SERVICES { |
++ | +
+ cmd="ctl_deliver -r" +cmd="imapd" listen="imap" prefork=1 + |
++ | +
|
+ imaps EVENTS { |
++ | +
+ cmd="imapd -s" listen="imaps" prefork=0 cmd="ctl_mboxlist -c" period=30 + |
++ | +
|
+ delprune |
++ | +
+ cmd="ctl_deliver -E 3" period=1440 + |
++ | +
When TCP Wrappers is used to control access to Cyrus services, the name of the service entry should be used as the process name in the hosts_access(5) table. For instance, in the example above, "imap", "imaps", "lmtpunix" and "lmtp" would be used as the process names. This allows a single daemon such as imapd to be run in different modes or configurations (i.e., SSL and non-SSL enabled) yet still have separate access control rules.
+master(8), imapd(8), pop3d(8), lmtpd(8), timsieved(8), idled(8), hosts_access(5)
+
deliver - deliver mail to an IMAP mailbox
+|
+ deliver [ -C config-file ] [ -d ] [ -r address ] |
++ | +
Deliver reads a message from the standard input and delivers it to one or more IMAP mailboxes.
+Deliver reads its configuration options out of the imapd.conf(5) file unless specified otherwise by -C.
+|
+ -C config-file +-d +-r address +-f address +-m mailbox + |
++ | +
+ Read configuration options from config-file. +Ignored for compatability with /bin/mail. +Insert a Return-Path: header containing +Insert a Return-Path: header containing +Deliver to mailbox. If any userids are specified, attempts to deliver to user.userid.mailbox for each userid. If the ACL on any such mailbox does not grant the sender the "p" right or if -m is not specified, then delivers to the INBOX for the userid, regardless of the ACL on the INBOX. +If no userids are specified, attempts to deliver to mailbox. If the ACL on mailbox does not grant the sender the "p" right, the delivery fails. + |
+
|
+ -a auth-id +-q +-l + |
++ | +
+ Specify the authorization id of the sender. Defaults to "anonymous". +Deliver message even when receiving mailbox is over quota. +Accept messages using the LMTP protocol. + |
+
Depending on the setting of reject8bit in imapd.conf(5), deliver either rejects messages with 8-bit-set characters in the headers or changes these characters to `X'. This is because such characters can't be interpreted since the character set is not known, although some communities not well-served by US-ASCII assume that those charac- ters can be used to represent characters not present in US-ASCII.
+A method for encoding 8-bit-set characters is provided by RFC 2047.
+fud - provide information about user mailboxes
+fud [ -C config-file ]
+Fud is a long lived datagram daemon started from inetd that provides information about when a user last read their mail, when mail last arrived in a user's mailbox, and how many messages are recent for that user.
+Fud reads its configuration options out of the imapd.conf(5) file unless specified otherwise by -C.
+-C config-file Read configuration options from config-file.
+Though not really a bug, FUD will silently ignore any requests that it does not consider valid.
+FUD is an experimental interface meant to provide information to build a finger-like service around. Eventually it should be superceded by LDAP or ACAP (using the mailbox dataset).
+
idled - provide near real-time updates for IMAP IDLE
+idled [ -C config-file ]
+Idled is a long lived datagram daemon which receives notifications of mailbox changes and signals the appropriate imapd to report the changes to the client. Idled is usually started from master.
+Idled reads its configuration options out of the imapd.conf(5) file unless specified otherwise by -C. The idlesocket option is used to specify the Unix domain socket to listen on for notifications.
+-C config-file Read configuration options from config-file.
+imapd.conf(5), master(8)
+
imapd - IMAP server process
+imapd [ -C config-file ] [ -s ] [ -p ssf ]
+Imapd is an IMAP4rev1 server. It accepts commands on its standard input and responds on its standard output. It MUST be invoked by master(8) with those descriptors attached to a remote client connection.
+Imapd reads its configuration options out of the imapd.conf(5) file unless specified otherwise by -C.
+If the file msg/shutdown is created under the directory specified in the configdirectory configuration option, then imapd will shut down the connection, sending the first line contained in the file to the client as the reason. New connections are denied.
+If the file msg/motd is created under the directory specified in the configdirectory configuration option, then imapd will send the first line contained in the file to clients upon connect as an ALERT message which IMAP-compliant clients are required to display. This option serves to annoy users mostly. Unfortunately clients tend to connect far more frequently than is apparent, causing each connection to generate a seperate server ALERT for each con- nection. Many clients do not display these properly, if they do anything with them at all.
+If the directory log/user exists under the directory specified in the configdirectory configuration option, then imapd will create protocol telemetry logs for sessions authenticating as user. The telemetry logs will be stored in the log/user directory with a filename of the imapd process-id.
+|
+ -C config-file +-s + |
++ | +
+ Read configuration options from config-file. +Serve IMAP over SSL (imaps). All data to and from imapd is encrypted using the Secure Sockets Layer. + |
+
|
+ -p ssf + |
++ | +
+ Tell imapd that an external layer exists. An SSF (security strength factor) of 1 means an |
+
| + | ++ | ++ | +
imapd.conf(5), master(8)
+
imapd.conf - IMAP configuration file
+/etc/imapd.conf is the configuration file for the Cyrus IMAP server. It defines local parameters for IMAP.
+Each line of the /etc/imapd.conf file has the form
+option: value
+where option is the name of the configuration option being set and value is the value that the configuration option is being set to.
+Blank lines and lines beginning with ``#'' are ignored.
+For boolean options, the values ``yes'', ``on'', ``t'', and ``1'' turn the option on, the values ``no'', ``off'', ``f'', and ``0'' turn the option off.
+The sections below detail options that can be placed in the /etc/imapd.conf file, and show each option's default value. Some options have no default value, these are listed with ``<no default>''. Some options default to the empty string, these are listed with ``<none>''.
+configdirectory: <no default>
+The pathname of the IMAP configuration directory. This field is required.
defaultpartition: default
+The partition name used by default for new mailboxes.
partition-name: <no default>
+The pathname of the partition name. At least one field, for the partition named in the defaultpartition option,
+is required. For example, if the value of the defaultpartion option is default, then the partition-default field
+is required.
unixhierarchysep: no
+Use the UNIX separator character '/' for delimiting levels of mailbox hierarchy. The default is to use the net-
+news separator character '.'.
altnamespace: no
+Use the alternate IMAP namespace, where personal folders reside at the same level in the hierarchy as
+INBOX.
This option ONLY applies where interaction takes place with the client/user. Currently this is limited to the
+IMAP protocol (imapd) and Sieve scripts (lmtpd). This option does NOT apply to admin tools such as
+cyradm (admins ONLY), reconstruct, quota, etc., NOR does it affect LMTP delivery of messages directly to
+mailboxes via plus-addressing.
userprefix: Other Users
+If using the alternate IMAP namespace, the prefix for the other users namespace. The hierarchy delimiter
+will be automatically appended.
sharedprefix: Shared Folders
+If using the alternate IMAP namespace, the prefix for the shared namespace. The hierarchy delimiter will
+be automatically appended.
umask: 077
+The umask value used by various Cyrus IMAP programs.
servername: <result returned by gethostname(2)>
+This is the hostname visible in the greeting messages of the POP, IMAP and LMTP daemons. If it is unset,
+then the result returned from gethostname(2) is used.
allowanonymouslogin: no
+Permit logins by the user "anonymous" using any password. Also allows use of the SASL ANONYMOUS
+mechanism.
allowplaintext: yes
+Allow the use of the SASL PLAIN mechanism.
quotawarn: 90
+The percent of quota utilization over which the server generates warnings.
+
|
+ timeout: 30 imapidlepoll: 60 + |
++ | +
+ + The minimum value is 30, the + |
+
The interval (in seconds) for polling the mailbox for changes while running the IDLE command. This option
+is used when idled can not be contacted or when polling is used exclusively. The minimum value is 1. A
+value of 0 will disable polling (and disable IDLE if polling is the only method available).
imapidresponse: yes
+If enabled, the server responds to an ID command with a parameter list containing: version, vendor, support-
+url, os, os-version, command, arguments, environment. Otherwise the server returns NIL.
poptimeout: 10
+Set the length of the POP server's inactivity autologout timer, in minutes. The minimum value is 10, the
+default.
popminpoll: 0
+Set the minimum amount of time the server forces users to wait between successive POP logins, in minutes.
+The default is 0.
popexpiretime: 0
+The number of days advertised as being the minimum a message may be left on the POP server before it is
+deleted (via the CAPA command, defined in the POP3 Extension Mechanism, which some clients may sup-
+port). "NEVER", the default, may be specified with a negative number. The Cyrus POP3 server never
+deletes mail, no matter what the value of this parameter is. However, if a site implements a less liberal pol-
+icy, it needs to change this parameter accordingly.
admins: <none>
+The list of userids with administrative rights. Separate each userid with a space. Sites using Kerberos
+authentication may use separate "admin" instances.
Note that accounts used by users should not be administrators. Administrative accounts should not receive mail. That is, if user "jbRo" is a user reading mail, he should not also be in the admins line. Some problems may occur otherwise, most notably the ability of administrators to create top-level mailboxes visible to users, but not writable by users.
+proxyservers: <none>
+A list of users and groups that are allowed to proxy for other users, seperated by spaces. Any user listed in
+this will be allowed to login for any other user: use with caution.
defaultacl: anyone lrs
+The Access Control List (ACL) placed on a newly-created (non-user) mailbox that does not have a parent
+mailbox.
newsspool: <no default>
+The pathname of the news spool directory. Only used if the partition-news configuration option is set.
newsprefix: <none>
+Prefix to be prepended to newsgroup names to make the corresponding IMAP mailbox names.
autocreatequota: 0
+If nonzero, normal users may create their own IMAP accounts by creating the mailbox INBOX. The user's
+quota is set to the value if it is positive, otherwise the user has unlimited quota.
logtimestamps: no
+Include notations in the protocol telemetry logs indicating the number of seconds since the last command or
+response.
plaintextloginpause: 0
+Number of seconds to pause after a successful plaintext login. For systems that support strong authentica-
+tion, this permits users to perceive a cost of using plaintext passwords. (This does not effect the use of
+PLAIN in SASL authentications.)
srvtab: /etc/srvtab
+The pathname of srvtab file containing the server's private key. This option is passed to the SASL library
+and overrides its default setting.
loginrealms: <none>
+The list of remote realms whose users may log in using cross-realm authentications. Seperate each realm
+name by a space. (A cross-realm identity is considered any identity returned by SASL with an "@" in it.)
+
loginuseacl: no
+If enabled, any authentication identity which has a rights on a user's INBOX may log in as that user.
singleinstancestore: yes
+If enabled, deliver running in LMTP mode attempts to only write one copy of a message per partition and
+create hard links, resulting in a potentially large disk savings.
reject8bit: no
+If enabled, deliver rejects messages with 8-bit characters in the headers. Otherwise, 8-bit characters are
+changed to `X'. (A proper soultion to non-ASCII characters in headers is offered by RFC 2047 and its prede-
+cessors.)
postuser: <none>
+ +|
+ Userid used to deliver messages to shared folders. For example, netscapeurl: http://andrew2.andrew.cmu.edu/cyrus/imapd/netscape-admin.html + |
++ | +
+ if set to |
++ | +
+ "bb", email sent an email address + |
++ | +
+ to |
+
If enabled at compile time, this specifies a URL to reply when Netscape asks the server where the mail
+administration HTTP server is. The default is a site at CMU with a hopefully informative message; adminis-
+trators should set this to a local resource with some information of greater use.
sieveusehomedir: false
+If enabled, deliver will look for Sieve scripts in user's home directories: ~user/.sieve.
sievedir: /usr/sieve
+If sieveusehomedir is false, this directory is searched for Sieve scripts.
sendmail: /usr/lib/sendmail
+The pathname of the sendmail executable. Sieve uses sendmail for sending rejections, redirects and vaca-
+tion responses.
postmaster: postmaster
+Username that is used as the 'From' address in rejection MDNs produced by sieve.
hashimapspool: false
+If enabled, the partitions will also be hashed, in addition to the hashing done on configuration directories. This
+is recommended if one partition has a very bushy mailbox tree.
sieve_maxscriptsize: 32
+Maximum size (in kilobytes) any sieve script can be, enforced at submission by timsieved(8).
sieve_maxscripts: 5
+Maximum number of sieve scripts any user may have, enforced at submission by timsieved(8).
sasl_maximum_layer: 256
+Maximum SSF (security strength factor) that the server will allow a client to negotiate.
sasl_minimum_layer: 0
+The minimum SSF that the server will allow a client to negotiate. A value of 1 requires integrity protection;
+any higher value requires some amount of encryption.
sasl_pwcheck_method: PAM
+The mechanism used by the server to verify plaintext passwords. Possible values also include "sasldb",
+"kerberos_v4", "passwd", and "shadow".
sasl_auto_transition: no
+If enabled, the SASL library will automatically create authentication secrets when given a plaintext pass-
+word. See the SASL documentation.
Any other SASL option can be set by preceeding it with "sasl_". This file overrides the SASL configuration
+file.
lmtpsocket: /var/imap/socket/lmtp
+Unix domain socket that lmtpd listens on.
idlesocket: /var/imap/socket/idle
+Unix domain socket that idled listens on.
notifysocket: /var/imap/socket/notify
+Unix domain socket that the new mail notification daemon listens on.
+
imapd(8), pop3d(8), lmtpd(8), timsieved(8), idled(8), deliver(8), master(8)
+
imclient library - authenticating callback interface to IMAP/IMSP servers
+|
+ int imclient_connect(struct imclient **imclient, const char *host, const char *port); +void imclient_close (struct imclient *imclient); +void imclient_setflags(struct imclient *imclient, intflags); +void imclient_clearflags (struct imclient *imclient, intflags); +char* imclient_servername (struct imclient *imclient); + |
++ | +
void imclient_addcallback (struct imclient * imclient ,...);
+ +|
+ void imclient_send (struct imclient *imclient, void (*finishproc)(), void *finishrock, const char *fmt, ...); +void imclient_getselectinfo (struct imclient *imclient, int *fd, int * wanttowrite); +void imclient_processoneevent (struct imclient *imclient); +int imclient_authenticate (struct imclient *imclient, struct sasl_client **availmech, const char *service, const |
++ | +
|
+ The imclient library functions are distributed with Cyrus IMAP and IMSP. These functions are used for building Users must link with the -lcyrus switch, and must supply a function called fatal to be called in case of any error All of the imclient functions begin with the prefix imclient and takes an argument of type struct imclient * as the See below for a description of each function. + |
++ | +
| + | +
+ Connects the client server to the host. If successful, it returns 0 and sets the imclient argument to a pointer to |
+
imclient_close()
+ +| + | +
+ Closes and frees the imclient connection. +imclient_setflags() |
++ | +
imclient_clearflags()
+Clears the flags specified by the flags argument on the imclient connection.
Returns a char * pointer to the name of the server connected to by imclient.
+| + | +
+ Adds an untagged data callback to the imclient connection. The function imclient_addcallback takes call- and struct imclient_reply * is defined to be: +struct imclient_reply { After the first argument imclient, there can be zero or more instances of the set of keyword, flags, proc, and + |
+
| + | +
+ rock, each adding or changing a single callback. Each instance adds or changes the callback for keyword. |
++ | +
imclient_send()
+ +| + | +
+ Sends a new command to the imclient connection. finishproc and finnishrock are the function and rock %% for % +%a for an IMAP atom +%s for an astring (which will be quoted or literalized as needed) +%d for a decimal +%u for an unsigned decimal +%v for #astring (argument is a null-terminated array of char * which are written as |
++ | +
imclient_getselectinfo()
+Gets the information for calling select(2). fd is filled in with the file descriptor to select(2) for read. want-
+towrite is filled in with a nonzero value if select should be used for write as well.
Processes one input or output event on the imclient connection.
+| + | +
+ Authenticates the imclient connection using one of the mechanisms in availmech. The argument, user, if not On success, 0 is returned. On failure (i.e., "BAD" keyboard, or no authentication mechanisms worked), 1 is |
+
|
+ The following code is a possible skeletion of imclient that relies on Kerberos to do authentication. This code pre- struct sasl_client; extern struct sasl_client krb_sasl_client; +struct sasl_client *login_sasl_client[] = { + |
++ | +
&krb_sasl_client,
+NULL
|
+ }; void fatal(char* message, int rc) { + |
++ | +
fprintf(stderr, "fatal error: %s\n", message);
+exit(rc);
+}
static void callback_capability(struct imclient *imclient,
+void *rock,
+
struct imclient_reply *reply) {
+ +|
+ } + |
++ | +
+ if (reply->text != NULL) { |
++ | +
|
+ static void end_command (struct imclient *connection, void* main() { + |
++ | +
| + | ++ | +
+ char* capability_string; if (imclient_connect(&imclient, server, port)) { if (imclient_authenticate(imclient, login_sasl_client, "imap" imclient_addcallback(imclient, "CAPABILITY", nc = 1; +imclient_send(imclient, end_command, while(nc > 0) { if (strstr("LITERAL+", capability_string)) { imclient_send(imclient, NULL, NULL, "LOGOUT"); printf("capability text is: %s\n", capability_string); +free(capability_string); + |
++ | +
|
+ } + |
++ | ++ | ++ | +
No known bugs.
+cyradm, imapd, imspd, RFC2033 (IMAP LITERAL+ extension), RFC2060 (IMAP4rev1 specification), and
+
IMAP, ACAP, IMSP, Kerberos, Authentication
+Copyright 1997, Carnegie Mellon University. All Rights Reserved.
+This software is made available for academic and research purposes only. No commercial license is hereby
+granted. Copying and other reproduction is authorized only for research, education, and other non-commercial
+purposes. No warranties, either expressed or implied, are made regarding the operation, use, or results of the
+software. Such a release does not permit use of the code for commercial purposes or benefits by anyone without specific, additional permission by the owner of the code.
+
imtest - interactive IMAP test program
+imtest [ -t keyfile ] [ -p port ] [ -m mechanism ]
+[ -u user ] [ -a user ] [ -k num ] [ -l num ]
+[ -r realm ] [ -f file ] [ -v ] [ -z ] hostname
imtest is a utility that allows you to authenticate to a IMAP or IMSP server and interactively issue commands to it. Once authenticated you may issue any IMAP or IMSP command by simply typing it in. It is capable of multiple SASL authentication mechanisms and handles encryption layers transparently. This utility is often used for testing the operation of a imsp or imap server. Also those developing IMAP clients find it useful.
+|
+ -t keyfile + |
++ | +
+ Enable TLS. keyfile contains the TLS public and private keys. Specify "" to negotiate a TLS encryption layer but not use TLS authentication. + |
+
|
+ -p port +-m mechanism + |
++ | +
+ Port to connect to. If left off this defaults to imap as defined in /etc/services. +Force imtest to use mechanism for authentication. If not specified the strongest authentica- tion mechanism supported by the server is chosen. Specify login to use the LOGIN com- mand instead of AUTHENTICATE. + |
+
|
+ -u user +-a user +-k num +-l num + |
++ | +
+ Username to use for authentication; defaults to the current user. +Authname to use for authentication; defaults to the current user. +Minimum protection layer required. +Maximum protection layer to use (0=none; 1=integrity; etc). For example if you are using the KERBEROS_V4 authentication mechanism specifying 0 will force imtest to not use any layer and specifying 1 will force it to use the integrity layer. By default the maximum sup- ported protection layer will be used. + |
+
|
+ -r realm + |
++ | +
+ Specify the realm to use. Certain authentication mechanisms (e.g. DIGEST-MD5) may |
+
|
+ -f file +-v +-z + |
++ | +
+ Pipe file into connection after authentication. +Verbose. Print out more information than usual. +Timing test. + |
+
installsieve - user utility for managing sieve scripts
+installsieve is a utility that allows users to manage their sieve scripts kept on the server.
+-v <name> View script with the given name. The script if retrieved sucessfully is output to standard output.
+-l List all of the scripts currently on the server. If one of the scripts is active a arrow is printed indicating that it is the active script.
+-p <port> Port to connect to. If left off this defaults to "sieve" as defined in /etc/services.
+-i <file> Install a file onto the server. If a script with the same name already exists on the server it is overwritten. Upon sucessfully putting the script on the server the script is set active. If <file> has the extension .script it is chopped when put on the server since sieve names may not contain a '.'.
+-a <name> Set <name> as the active script. The list of available names can be obtained from the '-l' option..
+-d <name> Delete the sieve script on the server with <name>.
+-m <mechanism> Force installsieve to use <mechanism> for authentication. If not specified the strongest authen- tication mechanism is chosen.
+-g <name> Get the sieve script with <name> and save it to disk with a ".script" extension. If a file with that name already exists it is overwritten.
+-u <user> Userid/Authname to use for authentication; by default, the current user.
+
ipurge - delete mail from IMAP mailbox or partition based on age or size
+ipurge [ -C config-file ] [ -x ]
+[ -d days | -b bytes | -k Kbytes | -m Mbytes ]
+[ mailbox-pattern... ]
Ipurge deletes messages from the mailbox(es) specified by mailbox-pattern that are older or larger than specified by the -d, -b, -k or -m options. If no mailbox-pattern is given, ipurge works on all mailboxes. If the -x option is given, the message age and size MUST match exactly those specified by -d, -b, -k or -m. The are no default val- ues, and at least one of -d, -b, -k or -m MUST be specified.
+Ipurge reads its configuration options out of the imapd.conf(5) file unless specified otherwise by -C.
+|
+ -C config-file +-d days +-b bytes +-k Kbytes + |
++ | +
+ Read configuration options from config-file. +Age of message in days. +Size of message in bytes. +Size of message in Kbytes (2^10 bytes). + |
++ | +
|
+ -m Mbytes + |
++ | +
+ Size of message in Mbytes (2^20 bytes). + |
++ | +
|
+ -x + |
++ | +
+ Perform an exact match on age or size (instead of older or larger). + |
++ | +
/etc/krb.equiv - Kerberos equivalences
+krb.equiv contains zero or more lines, each of which describes a mapping of a kerberos principal (userid@host) to a local user (userid or alias). Each line of the file consists of two fields, separated by at least one whitespace char- acter; other blanks are ignored. The first field is the kerberos principal name to remap, and the second is the name of the corresponding local user.
+|
+ tyq4@ANDY.CMU.EDU tyq4 |
++ | +
lmtpd - LMTP server process
+lmtpd [ -C config-file ] [ -a ]
+Lmtpd is an LMTP server used to deliver mail to the IMAP mailstore. It accepts commands on its standard input and responds on its standard output. It MUST be invoked by master(8) with those descriptors attached to a remote client connection.
+Lmtpd reads its configuration options out of the imapd.conf(5) file unless specified otherwise by -C.
+-C config-file Read configuration options from config-file.
+ +|
+ -a + |
++ | +
+ Preauthorize connections initiated on an internet socket, instead of requiring LMTP AUTH. |
+
| + | ++ | ++ | +
imapd.conf(5), master(8)
+
master - master Cyrus process
+master [ -l listen queue ] [ -D ]
+Master is the process that controls all of the Cyrus processes. This process is responsible for creating all imapd, pop3d, lmtpd and sieved child processes. This process also initializes the Berkeley DB code and performs sched- uled cleanup/maintenance.
+If this process dies, then no new sessions will be started.
+It kills itself and all child processes when it receives a SIGTERM.
+-l listen queue backlog
+Increase the listen queue backlog. By default, the listen queue is set to 32. On systems
+with a high connection rate, it may be desirable to increase this value. refer to listen(2) for
+details.
-D Don't close stdin/stdout/stderr. Primiarly useful for debugging.
+Upon execution, master reads its configuration information out of the cyrus.conf(5) file.
+Master rereads its configuration file when it receives a hangup signal, SIGHUP. Services and events may be added, deleted or modified when the configuration file is reread. Any active services removed from the configura- tion file will be allowed to run until completion.
+The environment variable CYRUS_VERBOSE can be set to log additional debugging information. Setting the value to 1 results in base level logging. Setting it higher results in more log messages being generated.
+cyrus.conf(5), imapd.conf(5), imapd(8), pop3d(8), lmtpd(8), timsieved(8), idled(8)
+