smmapd
Cyrus IMAP documentation Sendmail and Postfix socket map daemon
- Provided by: cyrus-common (Version: 3.12.1-3)
- Source: cyrus-imapd
- Report a bug
Cyrus IMAP documentation Sendmail and Postfix socket map daemon
smmapd [ -C config-file ] [ -U uses ] [ -T timeout ] [ -D ] [-p]
smmapd is a Sendmail and Postfix socket map daemon which is used to verify that a Cyrus mailbox exists, that it is postable, it is not blocked for the smmapd service in the userdeny database, and it is under quota. 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. The received queries contain map name followed by mailbox, smmapd ignores the map name. Queries with plus addressing, when -p is not passed, return OK when the user has a mailbox with the name after plus, otherwise the result is NOTFOUND. Match for the mailbox after plus is performed case-sensitive, for the address before the plus - depends on lmtp_downcase_rcpt.
The use case is to verify in Sendmail or Postfix if the destination exists, before accepting an email. Then, if autocreate_sieve_folders is set, but the folder does not exist yet, smmapd will return NOTFOUND, unless -p is passed. Another use case is to do something in a Sieve script with emails, based on plus addressing, without delivering them in the correspondent sub-folder. To accept such emails, when the folder with the same name does not exist, -p must be passed.
smmapd reads its configuration options out of the imapd.conf(5) file unless specified otherwise by -C.
smmapd 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
smmap cmd="smmapd" listen="/var/run/cyrus/socket/smmap" prefork=0
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
}
/etc/imapd.conf, /etc/cyrus.conf
The Cyrus Team, Nic Bernstein (Onlight)
1993–2025, The Cyrus Team