**imapd**
*********

IMAP server process


Synopsis
========

   **imapd** [ **-C** *config-file* ] [ **-U** *uses* ] [ **-T** *timeout* ] [ **-D** ]
       [ **-H** ] [ **-s** ] [ **-N** ] [ **-p** *ssf* ]


Description
===========

**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, generating a separate
server ALERT for each connection.  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.


Options
=======

-C config-file

   Use the specified configuration file *config-file* rather than the
   default imapd.conf(5).

-U  uses

   The maximum number of times that the process should be used for new
   connections before shutting down.  The default is 250.

-T  timeout

   The number of seconds that the process will wait for a new
   connection before shutting down.  Note that a value of 0 (zero)
   will disable the timeout.  The default is 60.

-D

   Run external debugger specified in debug_command.

-H

   Tell **imapd** to expect a HAProxy protocol header from the sender.

-s

   Serve IMAP over SSL (imaps).  All data to and from **imapd** is
   encrypted using the Secure Sockets Layer.

-N

   Bypass password checking.  (Not recommended unless you know what
   you're doing.)

-p  ssf

   Tell **imapd** that an external layer exists.  An *SSF* (security
   strength factor) of 1 means an integrity protection layer exists.
   Any higher SSF implies some form of privacy protection.


Examples
========

**imapd** is commonly included in the SERVICES section of
cyrus.conf(5) like so:

   SERVICES {
       **imap        cmd="imapd -U 30" listen="imap" prefork=0**
       **imaps       cmd="imapd -s -U 30" listen="imaps" prefork=0 maxchild=100**
       lmtpunix    cmd="lmtpd" listen="/var/run/cyrus/socket/lmtp" prefork=0 maxchild=20
       sieve       cmd="timsieved" listen="sieve" prefork=0
       notify      cmd="notifyd" listen="/var/run/cyrus/socket/notify" proto="udp" prefork=1
       httpd       cmd="httpd" listen=8080 prefork=1 maxchild=20
   }


Files
=====

/etc/imapd.conf


See Also
========

imapd.conf(5), master(8)
