mail server postfix dovecot sasl dovecot.conf PART II

## POP3 specific settings
##

protocol pop3 {
# Login executable location.
#login_executable = /usr/lib/dovecot/pop3-login

# POP3 executable location. See IMAP's mail_executable above for examples
# how this could be changed.
#mail_executable = /usr/lib/dovecot/pop3

# Don't try to set mails non-recent or seen with POP3 sessions. This is
# mostly intended to reduce disk I/O. With maildir it doesn't move files
# from new/ to cur/, with mbox it doesn't write Status-header.
#pop3_no_flag_updates = no

# Support LAST command which exists in old POP3 specs, but has been removed
# from new ones. Some clients still wish to use this though. Enabling this
# makes RSET command clear all \Seen flags from messages.
#pop3_enable_last = no

# If mail has X-UIDL header, use it as the mail's UIDL.
#pop3_reuse_xuidl = no

# Keep the mailbox locked for the entire POP3 session.
#pop3_lock_session = no

# POP3 UIDL (unique mail identifier) format to use. You can use following
# variables:
#
# %v - Mailbox's IMAP UIDVALIDITY
# %u - Mail's IMAP UID
# %m - MD5 sum of the mailbox headers in hex (mbox only)
# %f - filename (maildir only)
#
# If you want UIDL compatibility with other POP3 servers, use:
# UW's ipop3d : %08Xv%08Xu
# Courier version 0 : %f
# Courier version 1 : %u
# Courier version 2 : %v-%u
# Cyrus (<= 2.1.3) : %u
# Cyrus (>= 2.1.4) : %v.%u
# Older Dovecots : %v.%u
# tpop3d : %Mf
#
# Note that Outlook 2003 seems to have problems with %v.%u format which was
# Dovecot's default, so if you're building a new server it would be a good
# idea to change this. %08Xu%08Xv should be pretty fail-safe.
#
# NOTE: Nowadays this is required to be set explicitly, since the old
# default was bad but it couldn't be changed without breaking existing
# installations. %08Xu%08Xv will be the new default, so use it for new
# installations.
#
pop3_uidl_format = %08Xu%08Xv

# POP3 logout format string:
# %t - number of TOP commands
# %p - number of bytes sent to client as a result of TOP command
# %r - number of RETR commands
# %b - number of bytes sent to client as a result of RETR command
# %d - number of deleted messages
# %m - number of messages (before deletion)
# %s - mailbox size in bytes (before deletion)
#pop3_logout_format = top=%t/%p, retr=%r/%b, del=%d/%m, size=%s

# Support for dynamically loadable plugins. mail_plugins is a space separated
# list of plugins to load.
#mail_plugins =
#mail_plugin_dir = /usr/lib/dovecot/modules/pop3

# Workarounds for various client bugs:
# outlook-no-nuls:
# Outlook and Outlook Express hang if mails contain NUL characters.
# This setting replaces them with 0x80 character.
# oe-ns-eoh:
# Outlook Express and Netscape Mail breaks if end of headers-line is
# missing. This option simply sends it if it's missing.
# The list is space-separated.
#pop3_client_workarounds =
}

##
## MANAGESIEVE specific settings
##
protocol managesieve {
# Login executable location.
#login_executable = /usr/libexec/dovecot/managesieve-login

# MANAGESIEVE executable location. See IMAP's mail_executable above for
# examples how this could be changed.
#mail_executable = /usr/libexec/dovecot/managesieve

# Maximum MANAGESIEVE command line length in bytes. This setting is
# directly borrowed from IMAP. But, since long command lines are very
# unlikely with MANAGESIEVE, changing this will not be very useful.
#managesieve_max_line_length = 65536

# Specifies the location of the symlink pointing to the active script in
# the sieve storage directory. This must match the SIEVE setting used by
# deliver (refer to http://wiki.dovecot.org/LDA/Sieve#location for more
# info). Variable substitution with % is recognized.
#sieve=~/.dovecot.sieve

# This specifies the path to the directory where the uploaded scripts must
# be stored. In terms of '%' variable substitution it is identical to
# dovecot's mail_location setting used by the mail protocol daemons.
#sieve_storage=~/sieve

# If, for some inobvious reason, the sieve_storage remains unset, the
# managesieve daemon uses the specification of the mail_location to find out
# where to store the sieve files (see explaination in README.managesieve).
# The example below, when uncommented, overrides any global mail_location
# specification and stores all the scripts in '~/mail/sieve' if sieve_storage
# is unset. However, you should always use the sieve_storage setting.
# mail_location = mbox:~/mail

# To fool managesieve clients that are focused on timesieved you can
# specify the IMPLEMENTATION capability that the dovecot reports to clients
# (default: dovecot).
#managesieve_implementation_string = Cyrus timsieved v2.2.13
}

##
## LDA specific settings
##

# protocol lda {
# Address to use when sending rejection mails.
# postmaster_address = postmaster@example.com

# Hostname to use in various parts of sent mails, eg. in Message-Id.
# Default is the system's real hostname.
#hostname =

# Support for dynamically loadable plugins. mail_plugins is a space separated
# list of plugins to load.
#mail_plugins =
#mail_plugin_dir = /usr/lib/dovecot/modules/lda

# Binary to use for sending mails.
#sendmail_path = /usr/lib/sendmail

# UNIX socket path to master authentication server to find users.
#auth_socket_path = /var/run/dovecot/auth-master

# Enabling Sieve plugin for server-side mail filtering
# mail_plugins = cmusieve
# }

##
## Authentication processes
##

# Executable location
#auth_executable = /usr/lib/dovecot/dovecot-auth

# Set max. process size in megabytes.
#auth_process_size = 256

# Authentication cache size in kilobytes. 0 means it's disabled.
# Note that bsdauth, PAM and vpopmail require cache_key to be set for caching
# to be used.
#auth_cache_size = 0
# Time to live in seconds for cached data. After this many seconds the cached
# record is no longer used, *except* if the main database lookup returns
# internal failure. We also try to handle password changes automatically: If
# user's previous authentication was successful, but this one wasn't, the
# cache isn't used. For now this works only with plaintext authentication.
#auth_cache_ttl = 3600

# Space separated list of realms for SASL authentication mechanisms that need
# them. You can leave it empty if you don't want to support multiple realms.
# Many clients simply use the first one listed here, so keep the default realm
# first.
#auth_realms =

# Default realm/domain to use if none was specified. This is used for both
# SASL realms and appending @domain to username in plaintext logins.
#auth_default_realm =

# List of allowed characters in username. If the user-given username contains
# a character not listed in here, the login automatically fails. This is just
# an extra check to make sure user can't exploit any potential quote escaping
# vulnerabilities with SQL/LDAP databases. If you want to allow all characters,
# set this value to empty.
#auth_username_chars = abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890.-_@

# Username character translations before it's looked up from databases. The
# value contains series of from -> to characters. For example "#@/@" means
# that '#' and '/' characters are translated to '@'.
#auth_username_translation =

# Username formatting before it's looked up from databases. You can use
# the standard variables here, eg. %Lu would lowercase the username, %n would
# drop away the domain if it was given, or "%n-AT-%d" would change the '@' into
# "-AT-". This translation is done after auth_username_translation changes.
#auth_username_format =

# If you want to allow master users to log in by specifying the master
# username within the normal username string (ie. not using SASL mechanism's
# support for it), you can specify the separator character here. The format
# is then . UW-IMAP uses "*" as the
# separator, so that could be a good choice.
#auth_master_user_separator =

# Username to use for users logging in with ANONYMOUS SASL mechanism
#auth_anonymous_username = anonymous

# More verbose logging. Useful for figuring out why authentication isn't
# working.
#auth_verbose = no

# Even more verbose logging for debugging purposes. Shows for example SQL
# queries.
#auth_debug = no

# In case of password mismatches, log the passwords and used scheme so the
# problem can be debugged. Requires auth_debug=yes to be set.
#auth_debug_passwords = no

# Maximum number of dovecot-auth worker processes. They're used to execute
# blocking passdb and userdb queries (eg. MySQL and PAM). They're
# automatically created and destroyed as needed.
#auth_worker_max_count = 30

# Host name to use in GSSAPI principal names. The default is to use the
# name returned by gethostname().
#auth_gssapi_hostname =

# Kerberos keytab to use for the GSSAPI mechanism. Will use the system
# default (usually /etc/krb5.keytab) if not specified.
#auth_krb5_keytab =

auth default {
# Space separated list of wanted authentication mechanisms:
# plain login digest-md5 cram-md5 ntlm rpa apop anonymous gssapi
# NOTE: See also disable_plaintext_auth setting.
mechanisms = plain login

#
# Password database is used to verify user's password (and nothing more).
# You can have multiple passdbs and userdbs. This is useful if you want to
# allow both system users (/etc/passwd) and virtual users to login without
# duplicating the system users into virtual database.
#
#
#
# By adding master=yes setting inside a passdb you make the passdb a list
# of "master users", who can log in as anyone else. Unless you're using PAM,
# you probably still want the destination user to be looked up from passdb
# that it really exists. This can be done by adding pass=yes setting to the
# master passdb.

# Users can be temporarily disabled by adding a passdb with deny=yes.
# If the user is found from that database, authentication will fail.
# The deny passdb should always be specified before others, so it gets
# checked first. Here's an example:

#passdb passwd-file {
# File contains a list of usernames, one per line
#args = /etc/dovecot.deny
#deny = yes
#}

# PAM authentication. Preferred nowadays by most systems.
# Note that PAM can only be used to verify if user's password is correct,
# so it can't be used as userdb. If you don't want to use a separate user
# database (passwd usually), you can use static userdb.
# REMEMBER: You'll need /etc/pam.d/dovecot file created for PAM
# authentication to actually work.
passdb pam {
# [blocking=yes] [session=yes] [setcred=yes]
# [cache_key=] []
#
# By default a new process is forked from dovecot-auth for each PAM lookup.
# Setting blocking=yes uses the alternative way: dovecot-auth worker
# processes do the PAM lookups.
#
# session=yes makes Dovecot open and immediately close PAM session. Some
# PAM plugins need this to work, such as pam_mkhomedir.
#
# setcred=yes makes Dovecot establish PAM credentials if some PAM plugins
# need that. They aren't ever deleted though, so this isn't enabled by
# default.
#
# cache_key can be used to enable authentication caching for PAM
# (auth_cache_size also needs to be set). It isn't enabled by default
# because PAM modules can do all kinds of checks besides checking password,
# such as checking IP address. Dovecot can't know about these checks
# without some help. cache_key is simply a list of variables (see
# /usr/share/doc/dovecot-common/wiki/Variables.txt) which must match for
# the cached data to be used. Here are some examples:
# %u - Username must match. Probably sufficient for most uses.
# %u%r - Username and remote IP address must match.
# %u%s - Username and service (ie. IMAP, POP3) must match.
#
# If service name is "*", it means the authenticating service name
# is used, eg. pop3 or imap (/etc/pam.d/pop3, /etc/pam.d/imap).
#
# Some examples:
# args = session=yes *
# args = cache_key=%u dovecot
#args = dovecot
}

# System users (NSS, /etc/passwd, or similiar)
# In many systems nowadays this uses Name Service Switch, which is
# configured in /etc/nsswitch.conf.
#passdb passwd {
# [blocking=yes] - See userdb passwd for explanation
#args =
#}

# Shadow passwords for system users (NSS, /etc/shadow or similiar).
# Deprecated by PAM nowadays.
#
#passdb shadow {
# [blocking=yes] - See userdb passwd for explanation
#args =
#}

# PAM-like authentication for OpenBSD.
#
#passdb bsdauth {
# [cache_key=] - See cache_key in PAM for explanation.
#args =
#}

# passwd-like file with specified location
#
#passdb passwd-file {
# Path for passwd-file
#args =
#}

# checkpassword executable authentication
# NOTE: You will probably want to use "userdb prefetch" with this.
#
#passdb checkpassword {
# Path for checkpassword binary
#args =
#}

# SQL database
#passdb sql {
# Path for SQL configuration file
#args = /etc/dovecot/dovecot-sql.conf
#}

# LDAP database
#passdb ldap {
# Path for LDAP configuration file
#args = /etc/dovecot/dovecot-ldap.conf
#}

# vpopmail authentication
#passdb vpopmail {
# [cache_key=] - See cache_key in PAM for explanation.
#args =
#}

#
# User database specifies where mails are located and what user/group IDs
# own them. For single-UID configuration use "static".
#
#
#

# System users (NSS, /etc/passwd, or similiar). In many systems nowadays this
# uses Name Service Switch, which is configured in /etc/nsswitch.conf.
#
userdb passwd {
# [blocking=yes] - By default the lookups are done in the main dovecot-auth
# process. This setting causes the lookups to be done in auth worker
# proceses. Useful with remote NSS lookups that may block.
# NOTE: Be sure to use this setting with nss_ldap or users might get
# logged in as each others!
#args =
}

# passwd-like file with specified location
#
#userdb passwd-file {
# Path for passwd-file
#args =
#}

# static settings generated from template
#userdb static {
# Template for the fields. Can return anything a userdb could normally
# return. For example:
#
# args = uid=500 gid=500 home=/var/mail/%u
#
# If you use deliver, it needs to look up users only from the userdb. This
# of course doesn't work with static because there is no list of users.
# Normally static userdb handles this by doing a passdb lookup. This works
# with most passdbs, with PAM being the most notable exception. If you do
# the user verification another way, you can add allow_all_users=yes to
# the args in which case the passdb lookup is skipped.
#
#args =
#}

# SQL database
#userdb sql {
# Path for SQL configuration file
#args = /etc/dovecot/dovecot-sql.conf
#}

# LDAP database
#userdb ldap {
# Path for LDAP configuration file
#args = /etc/dovecot/dovecot-ldap.conf
#}

# vpopmail
#userdb vpopmail {
#}

# "prefetch" user database means that the passdb already provided the
# needed information and there's no need to do a separate userdb lookup.
# This can be made to work with SQL and LDAP databases, see their example
# configuration files for more information how to do it.
#
#userdb prefetch {
#}

# User to use for the process. This user needs access to only user and
# password databases, nothing else. Only shadow and pam authentication
# requires roots, so use something else if possible. Note that passwd
# authentication with BSDs internally accesses shadow files, which also
# requires roots. Note that this user is NOT used to access mails.
# That user is specified by userdb above.
#user = root

# Directory where to chroot the process. Most authentication backends don't
# work if this is set, and there's no point chrooting if auth_user is root.
# Note that valid_chroot_dirs isn't needed to use this setting.
#chroot =

# Number of authentication processes to create
#count = 1

# Require a valid SSL client certificate or the authentication fails.
#ssl_require_client_cert = no

# Take the username from client's SSL certificate, using
# X509_NAME_get_text_by_NID() which returns the subject's DN's
# CommonName.
#ssl_username_from_cert = no

# It's possible to export the authentication interface to other programs:
socket listen {
#master {
# Master socket provides access to userdb information. It's typically
# used to give Dovecot's local delivery agent access to userdb so it
# can find mailbox locations.
#path = /var/run/dovecot/auth-master
#mode = 0600
# Default user/group is the one who started dovecot-auth (root)
#user = postfix
#group = postfix
#}
client {
# The client socket is generally safe to export to everyone. Typical use
# is to export it to your SMTP server so it can do SMTP AUTH lookups
# using it.
#path = /var/run/dovecot/auth-client
path = /var/spool/postfix/private/auth
user = postfix
group = postfix
mode = 0660
}
}

## dovecot-lda specific settings
##
# socket listen {
# master {
# path = /var/run/dovecot/auth-master
# mode = 0600
# user = mail # User running Dovecot LDA
# #group = mail # Or alternatively mode 0660 + LDA user in this group
# }
# }

}

# If you wish to use another authentication server than dovecot-auth, you can
# use connect sockets. They are assumed to be already running, Dovecot's master
# process only tries to connect to them. They don't need any other settings
# than the path for the master socket, as the configuration is done elsewhere.
# Note that the client sockets must exist in the login_dir.
#auth external {
# socket connect {
# master {
# path = /var/run/dovecot/auth-master
# }
# }
#}

##
## Dictionary server settings
##

# Dictionary can be used by some plugins to store key=value lists.
# Currently this is only used by dict quota backend. The dictionary can be
# used either directly or though a dictionary server. The following dict block
# maps dictionary names to URIs when the server is used. These can then be
# referenced using URIs in format "proxy:".

dict {
#quota = mysql:/etc/dovecot-dict-quota.conf
}

##
## Plugin settings
##

plugin {
# Here you can give some extra environment variables to mail processes.
# This is mostly meant for passing parameters to plugins. %variable
# expansion is done for all values.

# Quota plugin. Multiple backends are supported:
# dirsize: Find and sum all the files found from mail directory.
# Extremely SLOW with Maildir. It'll eat your CPU and disk I/O.
# dict: Keep quota stored in dictionary (eg. SQL)
# maildir: Maildir++ quota
# fs: Read-only support for filesystem quota
#quota = maildir

# ACL plugin. vfile backend reads ACLs from "dovecot-acl" file from maildir
# directory. You can also optionally give a global ACL directory path where
# ACLs are applied to all users' mailboxes. The global ACL directory contains
# one file for each mailbox, eg. INBOX or sub.mailbox.
#acl = vfile:/etc/dovecot-acls

# Convert plugin. If set, specifies the source storage path which is
# converted to destination storage (mail_location) when the user logs in.
# The existing mail directory is renamed to -converted.
#convert_mail = mbox:%h/mail
# Skip mailboxes which we can't open successfully instead of aborting.
#convert_skip_broken_mailboxes = no

# Trash plugin. When saving a message would make user go over quota, this
# plugin automatically deletes the oldest mails from configured mailboxes
# until the message can be saved within quota limits. The configuration file
# is a text file where each line is in format:
# Mails are first deleted in lowest -> highest priority number order
#trash = /etc/dovecot-trash.conf

# Lazy expunge plugin. Currently works only with maildirs. When a user
# expunges mails, the mails are moved to a mailbox in another namespace
# (1st). When a mailbox is deleted, the mailbox is moved to another namespace
# (2nd) as well. Also if the deleted mailbox had any expunged messages,
# they're moved to a 3rd namespace. The mails won't be counted in quota,
# and they're not deleted automatically (use a cronjob or something).
#lazy_expunge = .EXPUNGED/ .DELETED/ .DELETED/.EXPUNGED/
}
#

Comments