Initial commit: mail server configuration
This commit is contained in:
127
dovecot/conf.d/10-auth.conf
Normal file
127
dovecot/conf.d/10-auth.conf
Normal file
@@ -0,0 +1,127 @@
|
|||||||
|
##
|
||||||
|
## Authentication processes
|
||||||
|
##
|
||||||
|
|
||||||
|
# Disable LOGIN command and all other plaintext authentications unless
|
||||||
|
# SSL/TLS is used (LOGINDISABLED capability). Note that if the remote IP
|
||||||
|
# matches the local IP (ie. you're connecting from the same computer), the
|
||||||
|
# connection is considered secure and plaintext authentication is allowed.
|
||||||
|
disable_plaintext_auth = no
|
||||||
|
|
||||||
|
# Authentication cache size (e.g. 10M). 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 for cached data. After TTL expires 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 = 1 hour
|
||||||
|
# TTL for negative hits (user not found, password mismatch).
|
||||||
|
# 0 disables caching them completely.
|
||||||
|
#auth_cache_negative_ttl = 1 hour
|
||||||
|
|
||||||
|
# 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 = %Lu
|
||||||
|
|
||||||
|
# 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 <username><separator><master username>. 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
|
||||||
|
|
||||||
|
# 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(). Use "$ALL" (with quotes) to allow all keytab
|
||||||
|
# entries.
|
||||||
|
#auth_gssapi_hostname =
|
||||||
|
|
||||||
|
# Kerberos keytab to use for the GSSAPI mechanism. Will use the system
|
||||||
|
# default (usually /etc/krb5.keytab) if not specified. You may need to change
|
||||||
|
# the auth service to run as root to be able to read this file.
|
||||||
|
#auth_krb5_keytab =
|
||||||
|
|
||||||
|
# Do NTLM and GSS-SPNEGO authentication using Samba's winbind daemon and
|
||||||
|
# ntlm_auth helper. <doc/wiki/Authentication/Mechanisms/Winbind.txt>
|
||||||
|
#auth_use_winbind = no
|
||||||
|
|
||||||
|
# Path for Samba's ntlm_auth helper binary.
|
||||||
|
#auth_winbind_helper_path = /usr/bin/ntlm_auth
|
||||||
|
|
||||||
|
# Time to delay before replying to failed authentications.
|
||||||
|
#auth_failure_delay = 2 secs
|
||||||
|
|
||||||
|
# Require a valid SSL client certificate or the authentication fails.
|
||||||
|
#auth_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.
|
||||||
|
#auth_ssl_username_from_cert = no
|
||||||
|
|
||||||
|
# Space separated list of wanted authentication mechanisms:
|
||||||
|
# plain login digest-md5 cram-md5 ntlm rpa apop anonymous gssapi otp skey
|
||||||
|
# gss-spnego
|
||||||
|
# NOTE: See also disable_plaintext_auth setting.
|
||||||
|
auth_mechanisms = plain login
|
||||||
|
|
||||||
|
##
|
||||||
|
## Password and user databases
|
||||||
|
##
|
||||||
|
|
||||||
|
#
|
||||||
|
# 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.
|
||||||
|
#
|
||||||
|
# <doc/wiki/PasswordDatabase.txt>
|
||||||
|
#
|
||||||
|
# User database specifies where mails are located and what user/group IDs
|
||||||
|
# own them. For single-UID configuration use "static" userdb.
|
||||||
|
#
|
||||||
|
# <doc/wiki/UserDatabase.txt>
|
||||||
|
|
||||||
|
#!include auth-deny.conf.ext
|
||||||
|
#!include auth-master.conf.ext
|
||||||
|
|
||||||
|
#!include auth-system.conf.ext
|
||||||
|
#!include auth-sql.conf.ext
|
||||||
|
#!include auth-ldap.conf.ext
|
||||||
|
!include auth-passwdfile.conf.ext
|
||||||
|
#!include auth-checkpassword.conf.ext
|
||||||
|
#!include auth-vpopmail.conf.ext
|
||||||
|
#!include auth-static.conf.ext
|
||||||
60
dovecot/conf.d/10-director.conf
Normal file
60
dovecot/conf.d/10-director.conf
Normal file
@@ -0,0 +1,60 @@
|
|||||||
|
##
|
||||||
|
## Director-specific settings.
|
||||||
|
##
|
||||||
|
|
||||||
|
# Director can be used by Dovecot proxy to keep a temporary user -> mail server
|
||||||
|
# mapping. As long as user has simultaneous connections, the user is always
|
||||||
|
# redirected to the same server. Each proxy server is running its own director
|
||||||
|
# process, and the directors are communicating the state to each others.
|
||||||
|
# Directors are mainly useful with NFS-like setups.
|
||||||
|
|
||||||
|
# List of IPs or hostnames to all director servers, including ourself.
|
||||||
|
# Ports can be specified as ip:port. The default port is the same as
|
||||||
|
# what director service's inet_listener is using.
|
||||||
|
#director_servers =
|
||||||
|
|
||||||
|
# List of IPs or hostnames to all backend mail servers. Ranges are allowed
|
||||||
|
# too, like 10.0.0.10-10.0.0.30.
|
||||||
|
#director_mail_servers =
|
||||||
|
|
||||||
|
# How long to redirect users to a specific server after it no longer has
|
||||||
|
# any connections.
|
||||||
|
#director_user_expire = 15 min
|
||||||
|
|
||||||
|
# How the username is translated before being hashed. Useful values include
|
||||||
|
# %Ln if user can log in with or without @domain, %Ld if mailboxes are shared
|
||||||
|
# within domain.
|
||||||
|
#director_username_hash = %Lu
|
||||||
|
|
||||||
|
# To enable director service, uncomment the modes and assign a port.
|
||||||
|
service director {
|
||||||
|
unix_listener login/director {
|
||||||
|
#mode = 0666
|
||||||
|
}
|
||||||
|
fifo_listener login/proxy-notify {
|
||||||
|
#mode = 0666
|
||||||
|
}
|
||||||
|
unix_listener director-userdb {
|
||||||
|
#mode = 0600
|
||||||
|
}
|
||||||
|
inet_listener {
|
||||||
|
#port =
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
# Enable director for the wanted login services by telling them to
|
||||||
|
# connect to director socket instead of the default login socket:
|
||||||
|
service imap-login {
|
||||||
|
#executable = imap-login director
|
||||||
|
}
|
||||||
|
service pop3-login {
|
||||||
|
#executable = pop3-login director
|
||||||
|
}
|
||||||
|
service submission-login {
|
||||||
|
#executable = submission-login director
|
||||||
|
}
|
||||||
|
|
||||||
|
# Enable director for LMTP proxying:
|
||||||
|
protocol lmtp {
|
||||||
|
#auth_socket_path = director-userdb
|
||||||
|
}
|
||||||
105
dovecot/conf.d/10-logging.conf
Normal file
105
dovecot/conf.d/10-logging.conf
Normal file
@@ -0,0 +1,105 @@
|
|||||||
|
##
|
||||||
|
## Log destination.
|
||||||
|
##
|
||||||
|
|
||||||
|
# Log file to use for error messages. "syslog" logs to syslog,
|
||||||
|
# /dev/stderr logs to stderr.
|
||||||
|
#log_path = syslog
|
||||||
|
|
||||||
|
# Log file to use for informational messages. Defaults to log_path.
|
||||||
|
#info_log_path =
|
||||||
|
# Log file to use for debug messages. Defaults to info_log_path.
|
||||||
|
#debug_log_path =
|
||||||
|
|
||||||
|
# Syslog facility to use if you're logging to syslog. Usually if you don't
|
||||||
|
# want to use "mail", you'll use local0..local7. Also other standard
|
||||||
|
# facilities are supported.
|
||||||
|
#syslog_facility = mail
|
||||||
|
|
||||||
|
##
|
||||||
|
## Logging verbosity and debugging.
|
||||||
|
##
|
||||||
|
|
||||||
|
# Log filter is a space-separated list conditions. If any of the conditions
|
||||||
|
# match, the log filter matches (i.e. they're ORed together). Parenthesis
|
||||||
|
# are supported if multiple conditions need to be matched together.
|
||||||
|
#
|
||||||
|
# See https://doc.dovecot.org/configuration_manual/event_filter/ for details.
|
||||||
|
#
|
||||||
|
# For example: event=http_request_* AND category=error AND category=storage
|
||||||
|
#
|
||||||
|
# Filter to specify what debug logging to enable. This will eventually replace
|
||||||
|
# mail_debug and auth_debug settings.
|
||||||
|
#log_debug =
|
||||||
|
|
||||||
|
# Crash after logging a matching event. For example category=error will crash
|
||||||
|
# any time an error is logged, which can be useful for debugging.
|
||||||
|
#log_core_filter =
|
||||||
|
|
||||||
|
# Log unsuccessful authentication attempts and the reasons why they failed.
|
||||||
|
#auth_verbose = no
|
||||||
|
|
||||||
|
# In case of password mismatches, log the attempted password. Valid values are
|
||||||
|
# no, plain and sha1. sha1 can be useful for detecting brute force password
|
||||||
|
# attempts vs. user simply trying the same password over and over again.
|
||||||
|
# You can also truncate the value to n chars by appending ":n" (e.g. sha1:6).
|
||||||
|
#auth_verbose_passwords = 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. Enabling this also enables auth_debug.
|
||||||
|
#auth_debug_passwords = no
|
||||||
|
|
||||||
|
# Enable mail process debugging. This can help you figure out why Dovecot
|
||||||
|
# isn't finding your mails.
|
||||||
|
#mail_debug = no
|
||||||
|
|
||||||
|
# Show protocol level SSL errors.
|
||||||
|
#verbose_ssl = no
|
||||||
|
|
||||||
|
# mail_log plugin provides more event logging for mail processes.
|
||||||
|
plugin {
|
||||||
|
# Events to log. Also available: flag_change append
|
||||||
|
#mail_log_events = delete undelete expunge copy mailbox_delete mailbox_rename
|
||||||
|
# Available fields: uid, box, msgid, from, subject, size, vsize, flags
|
||||||
|
# size and vsize are available only for expunge and copy events.
|
||||||
|
#mail_log_fields = uid box msgid size
|
||||||
|
}
|
||||||
|
|
||||||
|
##
|
||||||
|
## Log formatting.
|
||||||
|
##
|
||||||
|
|
||||||
|
# Prefix for each line written to log file. % codes are in strftime(3)
|
||||||
|
# format.
|
||||||
|
#log_timestamp = "%b %d %H:%M:%S "
|
||||||
|
|
||||||
|
# Space-separated list of elements we want to log. The elements which have
|
||||||
|
# a non-empty variable value are joined together to form a comma-separated
|
||||||
|
# string.
|
||||||
|
#login_log_format_elements = user=<%u> method=%m rip=%r lip=%l mpid=%e %c
|
||||||
|
|
||||||
|
# Login log format. %s contains login_log_format_elements string, %$ contains
|
||||||
|
# the data we want to log.
|
||||||
|
#login_log_format = %$: %s
|
||||||
|
|
||||||
|
# Log prefix for mail processes. See doc/wiki/Variables.txt for list of
|
||||||
|
# possible variables you can use.
|
||||||
|
#mail_log_prefix = "%s(%u)<%{pid}><%{session}>: "
|
||||||
|
|
||||||
|
# Format to use for logging mail deliveries:
|
||||||
|
# %$ - Delivery status message (e.g. "saved to INBOX")
|
||||||
|
# %m / %{msgid} - Message-ID
|
||||||
|
# %s / %{subject} - Subject
|
||||||
|
# %f / %{from} - From address
|
||||||
|
# %p / %{size} - Physical size
|
||||||
|
# %w / %{vsize} - Virtual size
|
||||||
|
# %e / %{from_envelope} - MAIL FROM envelope
|
||||||
|
# %{to_envelope} - RCPT TO envelope
|
||||||
|
# %{delivery_time} - How many milliseconds it took to deliver the mail
|
||||||
|
# %{session_time} - How long LMTP session took, not including delivery_time
|
||||||
|
# %{storage_id} - Backend-specific ID for mail, e.g. Maildir filename
|
||||||
|
#deliver_log_format = msgid=%m: %$
|
||||||
366
dovecot/conf.d/10-mail.conf
Normal file
366
dovecot/conf.d/10-mail.conf
Normal file
@@ -0,0 +1,366 @@
|
|||||||
|
##
|
||||||
|
## Mailbox locations and namespaces
|
||||||
|
##
|
||||||
|
|
||||||
|
# Location for users' mailboxes. The default is empty, which means that Dovecot
|
||||||
|
# tries to find the mailboxes automatically. This won't work if the user
|
||||||
|
# doesn't yet have any mail, so you should explicitly tell Dovecot the full
|
||||||
|
# location.
|
||||||
|
#
|
||||||
|
# If you're using mbox, giving a path to the INBOX file (eg. /var/mail/%u)
|
||||||
|
# isn't enough. You'll also need to tell Dovecot where the other mailboxes are
|
||||||
|
# kept. This is called the "root mail directory", and it must be the first
|
||||||
|
# path given in the mail_location setting.
|
||||||
|
#
|
||||||
|
# There are a few special variables you can use, eg.:
|
||||||
|
#
|
||||||
|
# %u - username
|
||||||
|
# %n - user part in user@domain, same as %u if there's no domain
|
||||||
|
# %d - domain part in user@domain, empty if there's no domain
|
||||||
|
# %h - home directory
|
||||||
|
#
|
||||||
|
# See doc/wiki/Variables.txt for full list. Some examples:
|
||||||
|
#
|
||||||
|
# mail_location = maildir:~/Maildir
|
||||||
|
# mail_location = mbox:~/mail:INBOX=/var/mail/%u
|
||||||
|
# mail_location = mbox:/var/mail/%d/%1n/%n:INDEX=/var/indexes/%d/%1n/%n
|
||||||
|
#
|
||||||
|
# <doc/wiki/MailLocation.txt>
|
||||||
|
#
|
||||||
|
mail_location = mbox:~/mail:INBOX=/var/mail/%u
|
||||||
|
|
||||||
|
# If you need to set multiple mailbox locations or want to change default
|
||||||
|
# namespace settings, you can do it by defining namespace sections.
|
||||||
|
#
|
||||||
|
# You can have private, shared and public namespaces. Private namespaces
|
||||||
|
# are for user's personal mails. Shared namespaces are for accessing other
|
||||||
|
# users' mailboxes that have been shared. Public namespaces are for shared
|
||||||
|
# mailboxes that are managed by sysadmin. If you create any shared or public
|
||||||
|
# namespaces you'll typically want to enable ACL plugin also, otherwise all
|
||||||
|
# users can access all the shared mailboxes, assuming they have permissions
|
||||||
|
# on filesystem level to do so.
|
||||||
|
namespace inbox {
|
||||||
|
# Namespace type: private, shared or public
|
||||||
|
#type = private
|
||||||
|
|
||||||
|
# Hierarchy separator to use. You should use the same separator for all
|
||||||
|
# namespaces or some clients get confused. '/' is usually a good one.
|
||||||
|
# The default however depends on the underlying mail storage format.
|
||||||
|
#separator =
|
||||||
|
|
||||||
|
# Prefix required to access this namespace. This needs to be different for
|
||||||
|
# all namespaces. For example "Public/".
|
||||||
|
#prefix =
|
||||||
|
|
||||||
|
# Physical location of the mailbox. This is in same format as
|
||||||
|
# mail_location, which is also the default for it.
|
||||||
|
#location =
|
||||||
|
|
||||||
|
# There can be only one INBOX, and this setting defines which namespace
|
||||||
|
# has it.
|
||||||
|
inbox = yes
|
||||||
|
|
||||||
|
# If namespace is hidden, it's not advertised to clients via NAMESPACE
|
||||||
|
# extension. You'll most likely also want to set list=no. This is mostly
|
||||||
|
# useful when converting from another server with different namespaces which
|
||||||
|
# you want to deprecate but still keep working. For example you can create
|
||||||
|
# hidden namespaces with prefixes "~/mail/", "~%u/mail/" and "mail/".
|
||||||
|
#hidden = no
|
||||||
|
|
||||||
|
# Show the mailboxes under this namespace with LIST command. This makes the
|
||||||
|
# namespace visible for clients that don't support NAMESPACE extension.
|
||||||
|
# "children" value lists child mailboxes, but hides the namespace prefix.
|
||||||
|
#list = yes
|
||||||
|
|
||||||
|
# Namespace handles its own subscriptions. If set to "no", the parent
|
||||||
|
# namespace handles them (empty prefix should always have this as "yes")
|
||||||
|
#subscriptions = yes
|
||||||
|
}
|
||||||
|
|
||||||
|
# Example shared namespace configuration
|
||||||
|
#namespace {
|
||||||
|
#type = shared
|
||||||
|
#separator = /
|
||||||
|
|
||||||
|
# Mailboxes are visible under "shared/user@domain/"
|
||||||
|
# %%n, %%d and %%u are expanded to the destination user.
|
||||||
|
#prefix = shared/%%u/
|
||||||
|
|
||||||
|
# Mail location for other users' mailboxes. Note that %variables and ~/
|
||||||
|
# expands to the logged in user's data. %%n, %%d, %%u and %%h expand to the
|
||||||
|
# destination user's data.
|
||||||
|
#location = maildir:%%h/Maildir:INDEX=~/Maildir/shared/%%u
|
||||||
|
|
||||||
|
# Use the default namespace for saving subscriptions.
|
||||||
|
#subscriptions = no
|
||||||
|
|
||||||
|
# List the shared/ namespace only if there are visible shared mailboxes.
|
||||||
|
#list = children
|
||||||
|
#}
|
||||||
|
# Should shared INBOX be visible as "shared/user" or "shared/user/INBOX"?
|
||||||
|
#mail_shared_explicit_inbox = no
|
||||||
|
|
||||||
|
# System user and group used to access mails. If you use multiple, userdb
|
||||||
|
# can override these by returning uid or gid fields. You can use either numbers
|
||||||
|
# or names. <doc/wiki/UserIds.txt>
|
||||||
|
#mail_uid =
|
||||||
|
#mail_gid =
|
||||||
|
|
||||||
|
# Group to enable temporarily for privileged operations. Currently this is
|
||||||
|
# used only with INBOX when either its initial creation or dotlocking fails.
|
||||||
|
# Typically this is set to "mail" to give access to /var/mail.
|
||||||
|
#mail_privileged_group =
|
||||||
|
|
||||||
|
# Grant access to these supplementary groups for mail processes. Typically
|
||||||
|
# these are used to set up access to shared mailboxes. Note that it may be
|
||||||
|
# dangerous to set these if users can create symlinks (e.g. if "mail" group is
|
||||||
|
# set here, ln -s /var/mail ~/mail/var could allow a user to delete others'
|
||||||
|
# mailboxes, or ln -s /secret/shared/box ~/mail/mybox would allow reading it).
|
||||||
|
#mail_access_groups =
|
||||||
|
|
||||||
|
# Allow full filesystem access to clients. There's no access checks other than
|
||||||
|
# what the operating system does for the active UID/GID. It works with both
|
||||||
|
# maildir and mboxes, allowing you to prefix mailboxes names with eg. /path/
|
||||||
|
# or ~user/.
|
||||||
|
#mail_full_filesystem_access = no
|
||||||
|
|
||||||
|
# Dictionary for key=value mailbox attributes. Currently used by URLAUTH, but
|
||||||
|
# soon intended to be used by METADATA as well.
|
||||||
|
#mail_attribute_dict =
|
||||||
|
|
||||||
|
##
|
||||||
|
## Mail processes
|
||||||
|
##
|
||||||
|
|
||||||
|
# Don't use mmap() at all. This is required if you store indexes to shared
|
||||||
|
# filesystems (NFS or clustered filesystem).
|
||||||
|
#mmap_disable = no
|
||||||
|
|
||||||
|
# Rely on O_EXCL to work when creating dotlock files. NFS supports O_EXCL
|
||||||
|
# since version 3, so this should be safe to use nowadays by default.
|
||||||
|
#dotlock_use_excl = yes
|
||||||
|
|
||||||
|
# When to use fsync() or fdatasync() calls:
|
||||||
|
# optimized (default): Whenever necessary to avoid losing important data
|
||||||
|
# always: Useful with e.g. NFS when write()s are delayed
|
||||||
|
# never: Never use it (best performance, but crashes can lose data)
|
||||||
|
#mail_fsync = optimized
|
||||||
|
|
||||||
|
# Locking method for index files. Alternatives are fcntl, flock and dotlock.
|
||||||
|
# Dotlocking uses some tricks which may create more disk I/O than other locking
|
||||||
|
# methods. NFS users: flock doesn't work, remember to change mmap_disable.
|
||||||
|
#lock_method = fcntl
|
||||||
|
|
||||||
|
# Directory in which LDA/LMTP temporarily stores incoming mails >128 kB.
|
||||||
|
#mail_temp_dir = /tmp
|
||||||
|
|
||||||
|
# Valid UID range for users, defaults to 500 and above. This is mostly
|
||||||
|
# to make sure that users can't log in as daemons or other system users.
|
||||||
|
# Note that denying root logins is hardcoded to dovecot binary and can't
|
||||||
|
# be done even if first_valid_uid is set to 0.
|
||||||
|
#first_valid_uid = 500
|
||||||
|
#last_valid_uid = 0
|
||||||
|
|
||||||
|
# Valid GID range for users, defaults to non-root/wheel. Users having
|
||||||
|
# non-valid GID as primary group ID aren't allowed to log in. If user
|
||||||
|
# belongs to supplementary groups with non-valid GIDs, those groups are
|
||||||
|
# not set.
|
||||||
|
#first_valid_gid = 1
|
||||||
|
#last_valid_gid = 0
|
||||||
|
|
||||||
|
# Maximum allowed length for mail keyword name. It's only forced when trying
|
||||||
|
# to create new keywords.
|
||||||
|
#mail_max_keyword_length = 50
|
||||||
|
|
||||||
|
# ':' separated list of directories under which chrooting is allowed for mail
|
||||||
|
# processes (ie. /var/mail will allow chrooting to /var/mail/foo/bar too).
|
||||||
|
# This setting doesn't affect login_chroot, mail_chroot or auth chroot
|
||||||
|
# settings. If this setting is empty, "/./" in home dirs are ignored.
|
||||||
|
# WARNING: Never add directories here which local users can modify, that
|
||||||
|
# may lead to root exploit. Usually this should be done only if you don't
|
||||||
|
# allow shell access for users. <doc/wiki/Chrooting.txt>
|
||||||
|
#valid_chroot_dirs =
|
||||||
|
|
||||||
|
# Default chroot directory for mail processes. This can be overridden for
|
||||||
|
# specific users in user database by giving /./ in user's home directory
|
||||||
|
# (eg. /home/./user chroots into /home). Note that usually there is no real
|
||||||
|
# need to do chrooting, Dovecot doesn't allow users to access files outside
|
||||||
|
# their mail directory anyway. If your home directories are prefixed with
|
||||||
|
# the chroot directory, append "/." to mail_chroot. <doc/wiki/Chrooting.txt>
|
||||||
|
#mail_chroot =
|
||||||
|
|
||||||
|
# UNIX socket path to master authentication server to find users.
|
||||||
|
# This is used by imap (for shared users) and lda.
|
||||||
|
#auth_socket_path = /var/run/dovecot/auth-userdb
|
||||||
|
|
||||||
|
# Directory where to look up mail plugins.
|
||||||
|
#mail_plugin_dir = /usr/lib/dovecot/modules
|
||||||
|
|
||||||
|
# Space separated list of plugins to load for all services. Plugins specific to
|
||||||
|
# IMAP, LDA, etc. are added to this list in their own .conf files.
|
||||||
|
mail_plugins = $mail_plugins quota zlib
|
||||||
|
|
||||||
|
##
|
||||||
|
## Mailbox handling optimizations
|
||||||
|
##
|
||||||
|
|
||||||
|
# Mailbox list indexes can be used to optimize IMAP STATUS commands. They are
|
||||||
|
# also required for IMAP NOTIFY extension to be enabled.
|
||||||
|
#mailbox_list_index = no
|
||||||
|
|
||||||
|
# The minimum number of mails in a mailbox before updates are done to cache
|
||||||
|
# file. This allows optimizing Dovecot's behavior to do less disk writes at
|
||||||
|
# the cost of more disk reads.
|
||||||
|
#mail_cache_min_mail_count = 0
|
||||||
|
|
||||||
|
# When IDLE command is running, mailbox is checked once in a while to see if
|
||||||
|
# there are any new mails or other changes. This setting defines the minimum
|
||||||
|
# time to wait between those checks. Dovecot can also use dnotify, inotify and
|
||||||
|
# kqueue to find out immediately when changes occur.
|
||||||
|
#mailbox_idle_check_interval = 30 secs
|
||||||
|
|
||||||
|
# Save mails with CR+LF instead of plain LF. This makes sending those mails
|
||||||
|
# take less CPU, especially with sendfile() syscall with Linux and FreeBSD.
|
||||||
|
# But it also creates a bit more disk I/O which may just make it slower.
|
||||||
|
# Also note that if other software reads the mboxes/maildirs, they may handle
|
||||||
|
# the extra CRs wrong and cause problems.
|
||||||
|
#mail_save_crlf = no
|
||||||
|
|
||||||
|
# Max number of mails to keep open and prefetch to memory. This only works with
|
||||||
|
# some mailbox formats and/or operating systems.
|
||||||
|
#mail_prefetch_count = 0
|
||||||
|
|
||||||
|
# How often to scan for stale temporary files and delete them (0 = never).
|
||||||
|
# These should exist only after Dovecot dies in the middle of saving mails.
|
||||||
|
#mail_temp_scan_interval = 1w
|
||||||
|
|
||||||
|
##
|
||||||
|
## Maildir-specific settings
|
||||||
|
##
|
||||||
|
|
||||||
|
# By default LIST command returns all entries in maildir beginning with a dot.
|
||||||
|
# Enabling this option makes Dovecot return only entries which are directories.
|
||||||
|
# This is done by stat()ing each entry, so it causes more disk I/O.
|
||||||
|
# (For systems setting struct dirent->d_type, this check is free and it's
|
||||||
|
# done always regardless of this setting)
|
||||||
|
#maildir_stat_dirs = no
|
||||||
|
|
||||||
|
# When copying a message, do it with hard links whenever possible. This makes
|
||||||
|
# the performance much better, and it's unlikely to have any side effects.
|
||||||
|
#maildir_copy_with_hardlinks = yes
|
||||||
|
|
||||||
|
# Assume Dovecot is the only MUA accessing Maildir: Scan cur/ directory only
|
||||||
|
# when its mtime changes unexpectedly or when we can't find the mail otherwise.
|
||||||
|
#maildir_very_dirty_syncs = no
|
||||||
|
|
||||||
|
# If enabled, Dovecot doesn't use the S=<size> in the Maildir filenames for
|
||||||
|
# getting the mail's physical size, except when recalculating Maildir++ quota.
|
||||||
|
# This can be useful in systems where a lot of the Maildir filenames have a
|
||||||
|
# broken size. The performance hit for enabling this is very small.
|
||||||
|
#maildir_broken_filename_sizes = no
|
||||||
|
|
||||||
|
# Always move mails from new/ directory to cur/, even when the \Recent flags
|
||||||
|
# aren't being reset.
|
||||||
|
#maildir_empty_new = no
|
||||||
|
|
||||||
|
##
|
||||||
|
## mbox-specific settings
|
||||||
|
##
|
||||||
|
|
||||||
|
# Which locking methods to use for locking mbox. There are four available:
|
||||||
|
# dotlock: Create <mailbox>.lock file. This is the oldest and most NFS-safe
|
||||||
|
# solution. If you want to use /var/mail/ like directory, the users
|
||||||
|
# will need write access to that directory.
|
||||||
|
# dotlock_try: Same as dotlock, but if it fails because of permissions or
|
||||||
|
# because there isn't enough disk space, just skip it.
|
||||||
|
# fcntl : Use this if possible. Works with NFS too if lockd is used.
|
||||||
|
# flock : May not exist in all systems. Doesn't work with NFS.
|
||||||
|
# lockf : May not exist in all systems. Doesn't work with NFS.
|
||||||
|
#
|
||||||
|
# You can use multiple locking methods; if you do the order they're declared
|
||||||
|
# in is important to avoid deadlocks if other MTAs/MUAs are using multiple
|
||||||
|
# locking methods as well. Some operating systems don't allow using some of
|
||||||
|
# them simultaneously.
|
||||||
|
#
|
||||||
|
#mbox_read_locks = fcntl
|
||||||
|
#mbox_write_locks = fcntl dotlock
|
||||||
|
|
||||||
|
# Maximum time to wait for lock (all of them) before aborting.
|
||||||
|
#mbox_lock_timeout = 5 mins
|
||||||
|
|
||||||
|
# If dotlock exists but the mailbox isn't modified in any way, override the
|
||||||
|
# lock file after this much time.
|
||||||
|
#mbox_dotlock_change_timeout = 2 mins
|
||||||
|
|
||||||
|
# When mbox changes unexpectedly we have to fully read it to find out what
|
||||||
|
# changed. If the mbox is large this can take a long time. Since the change
|
||||||
|
# is usually just a newly appended mail, it'd be faster to simply read the
|
||||||
|
# new mails. If this setting is enabled, Dovecot does this but still safely
|
||||||
|
# fallbacks to re-reading the whole mbox file whenever something in mbox isn't
|
||||||
|
# how it's expected to be. The only real downside to this setting is that if
|
||||||
|
# some other MUA changes message flags, Dovecot doesn't notice it immediately.
|
||||||
|
# Note that a full sync is done with SELECT, EXAMINE, EXPUNGE and CHECK
|
||||||
|
# commands.
|
||||||
|
#mbox_dirty_syncs = yes
|
||||||
|
|
||||||
|
# Like mbox_dirty_syncs, but don't do full syncs even with SELECT, EXAMINE,
|
||||||
|
# EXPUNGE or CHECK commands. If this is set, mbox_dirty_syncs is ignored.
|
||||||
|
#mbox_very_dirty_syncs = no
|
||||||
|
|
||||||
|
# Delay writing mbox headers until doing a full write sync (EXPUNGE and CHECK
|
||||||
|
# commands and when closing the mailbox). This is especially useful for POP3
|
||||||
|
# where clients often delete all mails. The downside is that our changes
|
||||||
|
# aren't immediately visible to other MUAs.
|
||||||
|
#mbox_lazy_writes = yes
|
||||||
|
|
||||||
|
# If mbox size is smaller than this (e.g. 100k), don't write index files.
|
||||||
|
# If an index file already exists it's still read, just not updated.
|
||||||
|
#mbox_min_index_size = 0
|
||||||
|
|
||||||
|
# Mail header selection algorithm to use for MD5 POP3 UIDLs when
|
||||||
|
# pop3_uidl_format=%m. For backwards compatibility we use apop3d inspired
|
||||||
|
# algorithm, but it fails if the first Received: header isn't unique in all
|
||||||
|
# mails. An alternative algorithm is "all" that selects all headers.
|
||||||
|
#mbox_md5 = apop3d
|
||||||
|
|
||||||
|
##
|
||||||
|
## mdbox-specific settings
|
||||||
|
##
|
||||||
|
|
||||||
|
# Maximum dbox file size until it's rotated.
|
||||||
|
#mdbox_rotate_size = 2M
|
||||||
|
|
||||||
|
# Maximum dbox file age until it's rotated. Typically in days. Day begins
|
||||||
|
# from midnight, so 1d = today, 2d = yesterday, etc. 0 = check disabled.
|
||||||
|
#mdbox_rotate_interval = 0
|
||||||
|
|
||||||
|
# When creating new mdbox files, immediately preallocate their size to
|
||||||
|
# mdbox_rotate_size. This setting currently works only in Linux with some
|
||||||
|
# filesystems (ext4, xfs).
|
||||||
|
#mdbox_preallocate_space = no
|
||||||
|
|
||||||
|
##
|
||||||
|
## Mail attachments
|
||||||
|
##
|
||||||
|
|
||||||
|
# sdbox and mdbox support saving mail attachments to external files, which
|
||||||
|
# also allows single instance storage for them. Other backends don't support
|
||||||
|
# this for now.
|
||||||
|
|
||||||
|
# Directory root where to store mail attachments. Disabled, if empty.
|
||||||
|
#mail_attachment_dir =
|
||||||
|
|
||||||
|
# Attachments smaller than this aren't saved externally. It's also possible to
|
||||||
|
# write a plugin to disable saving specific attachments externally.
|
||||||
|
#mail_attachment_min_size = 128k
|
||||||
|
|
||||||
|
# Filesystem backend to use for saving attachments:
|
||||||
|
# posix : No SiS done by Dovecot (but this might help FS's own deduplication)
|
||||||
|
# sis posix : SiS with immediate byte-by-byte comparison during saving
|
||||||
|
# sis-queue posix : SiS with delayed comparison and deduplication
|
||||||
|
#mail_attachment_fs = sis posix
|
||||||
|
|
||||||
|
# Hash format to use in attachment filenames. You can add any text and
|
||||||
|
# variables: %{md4}, %{md5}, %{sha1}, %{sha256}, %{sha512}, %{size}.
|
||||||
|
# Variables can be truncated, e.g. %{sha256:80} returns only first 80 bits
|
||||||
|
#mail_attachment_hash = %{sha1}
|
||||||
121
dovecot/conf.d/10-master.conf
Normal file
121
dovecot/conf.d/10-master.conf
Normal file
@@ -0,0 +1,121 @@
|
|||||||
|
#default_process_limit = 100
|
||||||
|
#default_client_limit = 1000
|
||||||
|
|
||||||
|
# Default VSZ (virtual memory size) limit for service processes. This is mainly
|
||||||
|
# intended to catch and kill processes that leak memory before they eat up
|
||||||
|
# everything.
|
||||||
|
#default_vsz_limit = 256M
|
||||||
|
|
||||||
|
# Login user is internally used by login processes. This is the most untrusted
|
||||||
|
# user in Dovecot system. It shouldn't have access to anything at all.
|
||||||
|
#default_login_user = dovenull
|
||||||
|
|
||||||
|
# Internal user is used by unprivileged processes. It should be separate from
|
||||||
|
# login user, so that login processes can't disturb other processes.
|
||||||
|
#default_internal_user = dovecot
|
||||||
|
|
||||||
|
service imap-login {
|
||||||
|
inet_listener imap {
|
||||||
|
#port = 143
|
||||||
|
}
|
||||||
|
inet_listener imaps {
|
||||||
|
#port = 993
|
||||||
|
#ssl = yes
|
||||||
|
}
|
||||||
|
|
||||||
|
# Number of connections to handle before starting a new process. Typically
|
||||||
|
# the only useful values are 0 (unlimited) or 1. 1 is more secure, but 0
|
||||||
|
# is faster. <doc/wiki/LoginProcess.txt>
|
||||||
|
#service_count = 1
|
||||||
|
|
||||||
|
# Number of processes to always keep waiting for more connections.
|
||||||
|
#process_min_avail = 0
|
||||||
|
|
||||||
|
# If you set service_count=0, you probably need to grow this.
|
||||||
|
#vsz_limit = $default_vsz_limit
|
||||||
|
}
|
||||||
|
|
||||||
|
service pop3-login {
|
||||||
|
inet_listener pop3 {
|
||||||
|
#port = 110
|
||||||
|
}
|
||||||
|
inet_listener pop3s {
|
||||||
|
#port = 995
|
||||||
|
#ssl = yes
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
service lmtp {
|
||||||
|
unix_listener lmtp {
|
||||||
|
#mode = 0666
|
||||||
|
}
|
||||||
|
|
||||||
|
# Create inet listener only if you can't use the above UNIX socket
|
||||||
|
#inet_listener lmtp {
|
||||||
|
# Avoid making LMTP visible for the entire internet
|
||||||
|
#address =
|
||||||
|
#port =
|
||||||
|
#}
|
||||||
|
}
|
||||||
|
|
||||||
|
service imap {
|
||||||
|
# Most of the memory goes to mmap()ing files. You may need to increase this
|
||||||
|
# limit if you have huge mailboxes.
|
||||||
|
#vsz_limit = $default_vsz_limit
|
||||||
|
|
||||||
|
# Max. number of IMAP processes (connections)
|
||||||
|
#process_limit = 1024
|
||||||
|
}
|
||||||
|
|
||||||
|
service pop3 {
|
||||||
|
# Max. number of POP3 processes (connections)
|
||||||
|
#process_limit = 1024
|
||||||
|
}
|
||||||
|
|
||||||
|
service auth {
|
||||||
|
# auth_socket_path points to this userdb socket by default. It's typically
|
||||||
|
# used by dovecot-lda, doveadm, possibly imap process, etc. Users that have
|
||||||
|
# full permissions to this socket are able to get a list of all usernames and
|
||||||
|
# get the results of everyone's userdb lookups.
|
||||||
|
#
|
||||||
|
# The default 0666 mode allows anyone to connect to the socket, but the
|
||||||
|
# userdb lookups will succeed only if the userdb returns an "uid" field that
|
||||||
|
# matches the caller process's UID. Also if caller's uid or gid matches the
|
||||||
|
# socket's uid or gid the lookup succeeds. Anything else causes a failure.
|
||||||
|
#
|
||||||
|
# To give the caller full permissions to lookup all users, set the mode to
|
||||||
|
# something else than 0666 and Dovecot lets the kernel enforce the
|
||||||
|
# permissions (e.g. 0777 allows everyone full permissions).
|
||||||
|
unix_listener auth-userdb {
|
||||||
|
#mode = 0666
|
||||||
|
#user =
|
||||||
|
#group =
|
||||||
|
}
|
||||||
|
|
||||||
|
# Postfix smtp-auth
|
||||||
|
#unix_listener /var/spool/postfix/private/auth {
|
||||||
|
# mode = 0666
|
||||||
|
#}
|
||||||
|
|
||||||
|
unix_listener auth-client {
|
||||||
|
mode = 0660
|
||||||
|
user = Debian-exim
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
service auth-worker {
|
||||||
|
# Auth worker process is run as root by default, so that it can access
|
||||||
|
# /etc/shadow. If this isn't necessary, the user should be changed to
|
||||||
|
# $default_internal_user.
|
||||||
|
#user = root
|
||||||
|
}
|
||||||
|
|
||||||
|
service dict {
|
||||||
|
# If dict proxy is used, mail processes should have access to its socket.
|
||||||
|
# For example: mode=0660, group=vmail and global mail_access_groups=vmail
|
||||||
|
unix_listener dict {
|
||||||
|
#mode = 0600
|
||||||
|
#user =
|
||||||
|
#group =
|
||||||
|
}
|
||||||
|
}
|
||||||
51
dovecot/conf.d/10-ssl.conf
Normal file
51
dovecot/conf.d/10-ssl.conf
Normal file
@@ -0,0 +1,51 @@
|
|||||||
|
##
|
||||||
|
## SSL settings
|
||||||
|
##
|
||||||
|
|
||||||
|
# SSL/TLS support: yes, no, required. <doc/wiki/SSL.txt>
|
||||||
|
ssl = yes
|
||||||
|
|
||||||
|
# PEM encoded X.509 SSL/TLS certificate and private key. They're opened before
|
||||||
|
# dropping root privileges, so keep the key file unreadable by anyone but
|
||||||
|
# root. Included doc/mkcert.sh can be used to easily generate self-signed
|
||||||
|
# certificate, just make sure to update the domains in dovecot-openssl.cnf
|
||||||
|
ssl_cert = </etc/dovecot/private/dovecot.pem
|
||||||
|
ssl_key = </etc/dovecot/private/dovecot.key
|
||||||
|
|
||||||
|
# If key file is password protected, give the password here. Alternatively
|
||||||
|
# give it when starting dovecot with -p parameter. Since this file is often
|
||||||
|
# world-readable, you may want to place this setting instead to a different
|
||||||
|
# root owned 0600 file by using ssl_key_password = <path.
|
||||||
|
#ssl_key_password =
|
||||||
|
|
||||||
|
# PEM encoded trusted certificate authority. Set this only if you intend to use
|
||||||
|
# ssl_verify_client_cert=yes. The file should contain the CA certificate(s)
|
||||||
|
# followed by the matching CRL(s). (e.g. ssl_ca = </etc/ssl/certs/ca.pem)
|
||||||
|
#ssl_ca =
|
||||||
|
|
||||||
|
# Require that CRL check succeeds for client certificates.
|
||||||
|
#ssl_require_crl = yes
|
||||||
|
|
||||||
|
# Request client to send a certificate. If you also want to require it, set
|
||||||
|
# auth_ssl_require_client_cert=yes in auth section.
|
||||||
|
#ssl_verify_client_cert = no
|
||||||
|
|
||||||
|
# Which field from certificate to use for username. commonName and
|
||||||
|
# x500UniqueIdentifier are the usual choices. You'll also need to set
|
||||||
|
# auth_ssl_username_from_cert=yes.
|
||||||
|
#ssl_cert_username_field = commonName
|
||||||
|
|
||||||
|
# How often to regenerate the SSL parameters file. Generation is quite CPU
|
||||||
|
# intensive operation. The value is in hours, 0 disables regeneration
|
||||||
|
# entirely.
|
||||||
|
#ssl_parameters_regenerate = 168
|
||||||
|
|
||||||
|
# SSL protocols to use
|
||||||
|
#ssl_protocols = !SSLv2
|
||||||
|
|
||||||
|
# SSL ciphers to use
|
||||||
|
#ssl_cipher_list = ALL:!LOW:!SSLv2:!EXP:!aNULL
|
||||||
|
|
||||||
|
# SSL crypto device to use, for valid values run "openssl engine"
|
||||||
|
#ssl_crypto_device =
|
||||||
|
|
||||||
14
dovecot/conf.d/10-tcpwrapper.conf
Normal file
14
dovecot/conf.d/10-tcpwrapper.conf
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
# 10-tcpwrapper.conf
|
||||||
|
#
|
||||||
|
# service name for hosts.{allow|deny} are those defined as
|
||||||
|
# inet_listener in master.conf
|
||||||
|
#
|
||||||
|
#login_access_sockets = tcpwrap
|
||||||
|
#
|
||||||
|
#service tcpwrap {
|
||||||
|
# unix_listener login/tcpwrap {
|
||||||
|
# group = $default_login_user
|
||||||
|
# mode = 0600
|
||||||
|
# user = $default_login_user
|
||||||
|
# }
|
||||||
|
#}
|
||||||
48
dovecot/conf.d/15-lda.conf
Normal file
48
dovecot/conf.d/15-lda.conf
Normal file
@@ -0,0 +1,48 @@
|
|||||||
|
##
|
||||||
|
## LDA specific settings (also used by LMTP)
|
||||||
|
##
|
||||||
|
|
||||||
|
# Address to use when sending rejection mails.
|
||||||
|
# Default is postmaster@<your domain>.
|
||||||
|
postmaster_address = postmaster@%{if;%d;ne;;%d;%{hostname}}
|
||||||
|
|
||||||
|
# Hostname to use in various parts of sent mails, eg. in Message-Id.
|
||||||
|
# Default is the system's real hostname.
|
||||||
|
#hostname =
|
||||||
|
|
||||||
|
# If user is over quota, return with temporary failure instead of
|
||||||
|
# bouncing the mail.
|
||||||
|
#quota_full_tempfail = no
|
||||||
|
|
||||||
|
# Binary to use for sending mails.
|
||||||
|
#sendmail_path = /usr/sbin/sendmail
|
||||||
|
|
||||||
|
# If non-empty, send mails via this SMTP host[:port] instead of sendmail.
|
||||||
|
#submission_host =
|
||||||
|
|
||||||
|
# Subject: header to use for rejection mails. You can use the same variables
|
||||||
|
# as for rejection_reason below.
|
||||||
|
#rejection_subject = Rejected: %s
|
||||||
|
|
||||||
|
# Human readable error message for rejection mails. You can use variables:
|
||||||
|
# %n = CRLF, %r = reason, %s = original subject, %t = recipient
|
||||||
|
#rejection_reason = Your message to <%t> was automatically rejected:%n%r
|
||||||
|
|
||||||
|
# Delimiter character between local-part and detail in email address.
|
||||||
|
#recipient_delimiter = +
|
||||||
|
|
||||||
|
# Header where the original recipient address (SMTP's RCPT TO: address) is taken
|
||||||
|
# from if not available elsewhere. With dovecot-lda -a parameter overrides this.
|
||||||
|
# A commonly used header for this is X-Original-To.
|
||||||
|
#lda_original_recipient_header =
|
||||||
|
|
||||||
|
# Should saving a mail to a nonexistent mailbox automatically create it?
|
||||||
|
#lda_mailbox_autocreate = no
|
||||||
|
|
||||||
|
# Should automatically created mailboxes be also automatically subscribed?
|
||||||
|
#lda_mailbox_autosubscribe = no
|
||||||
|
|
||||||
|
protocol lda {
|
||||||
|
# Space separated list of plugins to load (default is global mail_plugins).
|
||||||
|
mail_plugins = $mail_plugins sieve
|
||||||
|
}
|
||||||
86
dovecot/conf.d/15-mailboxes.conf
Normal file
86
dovecot/conf.d/15-mailboxes.conf
Normal file
@@ -0,0 +1,86 @@
|
|||||||
|
##
|
||||||
|
## Mailbox definitions
|
||||||
|
##
|
||||||
|
|
||||||
|
# Each mailbox is specified in a separate mailbox section. The section name
|
||||||
|
# specifies the mailbox name. If it has spaces, you can put the name
|
||||||
|
# "in quotes". These sections can contain the following mailbox settings:
|
||||||
|
#
|
||||||
|
# auto:
|
||||||
|
# Indicates whether the mailbox with this name is automatically created
|
||||||
|
# implicitly when it is first accessed. The user can also be automatically
|
||||||
|
# subscribed to the mailbox after creation. The following values are
|
||||||
|
# defined for this setting:
|
||||||
|
#
|
||||||
|
# no - Never created automatically.
|
||||||
|
# create - Automatically created, but no automatic subscription.
|
||||||
|
# subscribe - Automatically created and subscribed.
|
||||||
|
#
|
||||||
|
# special_use:
|
||||||
|
# A space-separated list of SPECIAL-USE flags (RFC 6154) to use for the
|
||||||
|
# mailbox. There are no validity checks, so you could specify anything
|
||||||
|
# you want in here, but it's not a good idea to use flags other than the
|
||||||
|
# standard ones specified in the RFC:
|
||||||
|
#
|
||||||
|
# \All - This (virtual) mailbox presents all messages in the
|
||||||
|
# user's message store.
|
||||||
|
# \Archive - This mailbox is used to archive messages.
|
||||||
|
# \Drafts - This mailbox is used to hold draft messages.
|
||||||
|
# \Flagged - This (virtual) mailbox presents all messages in the
|
||||||
|
# user's message store marked with the IMAP \Flagged flag.
|
||||||
|
# \Important - This (virtual) mailbox presents all messages in the
|
||||||
|
# user's message store deemed important to user.
|
||||||
|
# \Junk - This mailbox is where messages deemed to be junk mail
|
||||||
|
# are held.
|
||||||
|
# \Sent - This mailbox is used to hold copies of messages that
|
||||||
|
# have been sent.
|
||||||
|
# \Trash - This mailbox is used to hold messages that have been
|
||||||
|
# deleted.
|
||||||
|
#
|
||||||
|
# comment:
|
||||||
|
# Defines a default comment or note associated with the mailbox. This
|
||||||
|
# value is accessible through the IMAP METADATA mailbox entries
|
||||||
|
# "/shared/comment" and "/private/comment". Users with sufficient
|
||||||
|
# privileges can override the default value for entries with a custom
|
||||||
|
# value.
|
||||||
|
|
||||||
|
# NOTE: Assumes "namespace inbox" has been defined in 10-mail.conf.
|
||||||
|
namespace inbox {
|
||||||
|
# These mailboxes are widely used and could perhaps be created automatically:
|
||||||
|
mailbox Drafts {
|
||||||
|
special_use = \Drafts
|
||||||
|
}
|
||||||
|
mailbox Junk {
|
||||||
|
special_use = \Junk
|
||||||
|
}
|
||||||
|
mailbox Trash {
|
||||||
|
special_use = \Trash
|
||||||
|
}
|
||||||
|
|
||||||
|
# For \Sent mailboxes there are two widely used names. We'll mark both of
|
||||||
|
# them as \Sent. User typically deletes one of them if duplicates are created.
|
||||||
|
mailbox Sent {
|
||||||
|
special_use = \Sent
|
||||||
|
}
|
||||||
|
mailbox "Sent Messages" {
|
||||||
|
special_use = \Sent
|
||||||
|
}
|
||||||
|
|
||||||
|
# If you have a virtual "All messages" mailbox:
|
||||||
|
#mailbox virtual/All {
|
||||||
|
# special_use = \All
|
||||||
|
# comment = All my messages
|
||||||
|
#}
|
||||||
|
|
||||||
|
# If you have a virtual "Flagged" mailbox:
|
||||||
|
#mailbox virtual/Flagged {
|
||||||
|
# special_use = \Flagged
|
||||||
|
# comment = All my flagged messages
|
||||||
|
#}
|
||||||
|
|
||||||
|
# If you have a virtual "Important" mailbox:
|
||||||
|
#mailbox virtual/Important {
|
||||||
|
# special_use = \Important
|
||||||
|
# comment = All my important messages
|
||||||
|
#}
|
||||||
|
}
|
||||||
99
dovecot/conf.d/20-imap.conf
Normal file
99
dovecot/conf.d/20-imap.conf
Normal file
@@ -0,0 +1,99 @@
|
|||||||
|
##
|
||||||
|
## IMAP specific settings
|
||||||
|
##
|
||||||
|
|
||||||
|
# If nothing happens for this long while client is IDLEing, move the connection
|
||||||
|
# to imap-hibernate process and close the old imap process. This saves memory,
|
||||||
|
# because connections use very little memory in imap-hibernate process. The
|
||||||
|
# downside is that recreating the imap process back uses some resources.
|
||||||
|
#imap_hibernate_timeout = 0
|
||||||
|
|
||||||
|
# Maximum IMAP command line length. Some clients generate very long command
|
||||||
|
# lines with huge mailboxes, so you may need to raise this if you get
|
||||||
|
# "Too long argument" or "IMAP command line too large" errors often.
|
||||||
|
#imap_max_line_length = 64k
|
||||||
|
|
||||||
|
# IMAP logout format string:
|
||||||
|
# %i - total number of bytes read from client
|
||||||
|
# %o - total number of bytes sent to client
|
||||||
|
# %{fetch_hdr_count} - Number of mails with mail header data sent to client
|
||||||
|
# %{fetch_hdr_bytes} - Number of bytes with mail header data sent to client
|
||||||
|
# %{fetch_body_count} - Number of mails with mail body data sent to client
|
||||||
|
# %{fetch_body_bytes} - Number of bytes with mail body data sent to client
|
||||||
|
# %{deleted} - Number of mails where client added \Deleted flag
|
||||||
|
# %{expunged} - Number of mails that client expunged, which does not
|
||||||
|
# include automatically expunged mails
|
||||||
|
# %{autoexpunged} - Number of mails that were automatically expunged after
|
||||||
|
# client disconnected
|
||||||
|
# %{trashed} - Number of mails that client copied/moved to the
|
||||||
|
# special_use=\Trash mailbox.
|
||||||
|
# %{appended} - Number of mails saved during the session
|
||||||
|
#imap_logout_format = in=%i out=%o deleted=%{deleted} expunged=%{expunged} \
|
||||||
|
# trashed=%{trashed} hdr_count=%{fetch_hdr_count} \
|
||||||
|
# hdr_bytes=%{fetch_hdr_bytes} body_count=%{fetch_body_count} \
|
||||||
|
# body_bytes=%{fetch_body_bytes}
|
||||||
|
|
||||||
|
# Override the IMAP CAPABILITY response. If the value begins with '+',
|
||||||
|
# add the given capabilities on top of the defaults (e.g. +XFOO XBAR).
|
||||||
|
#imap_capability =
|
||||||
|
|
||||||
|
# How long to wait between "OK Still here" notifications when client is
|
||||||
|
# IDLEing.
|
||||||
|
#imap_idle_notify_interval = 2 mins
|
||||||
|
|
||||||
|
# ID field names and values to send to clients. Using * as the value makes
|
||||||
|
# Dovecot use the default value. The following fields have default values
|
||||||
|
# currently: name, version, os, os-version, support-url, support-email,
|
||||||
|
# revision.
|
||||||
|
#imap_id_send =
|
||||||
|
|
||||||
|
# ID fields sent by client to log. * means everything.
|
||||||
|
#imap_id_log =
|
||||||
|
|
||||||
|
# Workarounds for various client bugs:
|
||||||
|
# delay-newmail:
|
||||||
|
# Send EXISTS/RECENT new mail notifications only when replying to NOOP
|
||||||
|
# and CHECK commands. Some clients ignore them otherwise, for example OSX
|
||||||
|
# Mail (<v2.1). Outlook Express breaks more badly though, without this it
|
||||||
|
# may show user "Message no longer in server" errors. Note that OE6 still
|
||||||
|
# breaks even with this workaround if synchronization is set to
|
||||||
|
# "Headers Only".
|
||||||
|
# tb-extra-mailbox-sep:
|
||||||
|
# Thunderbird gets somehow confused with LAYOUT=fs (mbox and dbox) and
|
||||||
|
# adds extra '/' suffixes to mailbox names. This option causes Dovecot to
|
||||||
|
# ignore the extra '/' instead of treating it as invalid mailbox name.
|
||||||
|
# tb-lsub-flags:
|
||||||
|
# Show \Noselect flags for LSUB replies with LAYOUT=fs (e.g. mbox).
|
||||||
|
# This makes Thunderbird realize they aren't selectable and show them
|
||||||
|
# greyed out, instead of only later giving "not selectable" popup error.
|
||||||
|
#
|
||||||
|
# The list is space-separated.
|
||||||
|
#imap_client_workarounds =
|
||||||
|
|
||||||
|
# Host allowed in URLAUTH URLs sent by client. "*" allows all.
|
||||||
|
#imap_urlauth_host =
|
||||||
|
|
||||||
|
# Enable IMAP LITERAL- extension (replaces LITERAL+)
|
||||||
|
#imap_literal_minus = no
|
||||||
|
|
||||||
|
# What happens when FETCH fails due to some internal error:
|
||||||
|
# disconnect-immediately:
|
||||||
|
# The FETCH is aborted immediately and the IMAP client is disconnected.
|
||||||
|
# disconnect-after:
|
||||||
|
# The FETCH runs for all the requested mails returning as much data as
|
||||||
|
# possible. The client is finally disconnected without a tagged reply.
|
||||||
|
# no-after:
|
||||||
|
# Same as disconnect-after, but tagged NO reply is sent instead of
|
||||||
|
# disconnecting the client. If the client attempts to FETCH the same failed
|
||||||
|
# mail more than once, the client is disconnected. This is to avoid clients
|
||||||
|
# from going into infinite loops trying to FETCH a broken mail.
|
||||||
|
#imap_fetch_failure = disconnect-immediately
|
||||||
|
|
||||||
|
protocol imap {
|
||||||
|
# Space separated list of plugins to load (default is global mail_plugins).
|
||||||
|
#mail_plugins = $mail_plugins
|
||||||
|
|
||||||
|
# Maximum number of IMAP connections allowed for a user from each IP address.
|
||||||
|
# NOTE: The username is compared case-sensitively.
|
||||||
|
#mail_max_userip_connections = 10
|
||||||
|
}
|
||||||
26
dovecot/conf.d/20-lmtp.conf
Normal file
26
dovecot/conf.d/20-lmtp.conf
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
##
|
||||||
|
## LMTP specific settings
|
||||||
|
##
|
||||||
|
|
||||||
|
# Support proxying to other LMTP/SMTP servers by performing passdb lookups.
|
||||||
|
#lmtp_proxy = no
|
||||||
|
|
||||||
|
# When recipient address includes the detail (e.g. user+detail), try to save
|
||||||
|
# the mail to the detail mailbox. See also recipient_delimiter and
|
||||||
|
# lda_mailbox_autocreate settings.
|
||||||
|
#lmtp_save_to_detail_mailbox = no
|
||||||
|
|
||||||
|
# Verify quota before replying to RCPT TO. This adds a small overhead.
|
||||||
|
#lmtp_rcpt_check_quota = no
|
||||||
|
|
||||||
|
# Which recipient address to use for Delivered-To: header and Received:
|
||||||
|
# header. The default is "final", which is the same as the one given to
|
||||||
|
# RCPT TO command. "original" uses the address given in RCPT TO's ORCPT
|
||||||
|
# parameter, "none" uses nothing. Note that "none" is currently always used
|
||||||
|
# when a mail has multiple recipients.
|
||||||
|
#lmtp_hdr_delivery_address = final
|
||||||
|
|
||||||
|
protocol lmtp {
|
||||||
|
# Space separated list of plugins to load (default is global mail_plugins).
|
||||||
|
mail_plugins = $mail_plugins sieve
|
||||||
|
}
|
||||||
99
dovecot/conf.d/20-pop3.conf
Normal file
99
dovecot/conf.d/20-pop3.conf
Normal file
@@ -0,0 +1,99 @@
|
|||||||
|
##
|
||||||
|
## POP3 specific settings
|
||||||
|
##
|
||||||
|
|
||||||
|
# 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
|
||||||
|
|
||||||
|
# Allow only one POP3 session to run simultaneously for the same user.
|
||||||
|
#pop3_lock_session = no
|
||||||
|
|
||||||
|
# POP3 requires message sizes to be listed as if they had CR+LF linefeeds.
|
||||||
|
# Many POP3 servers violate this by returning the sizes with LF linefeeds,
|
||||||
|
# because it's faster to get. When this setting is enabled, Dovecot still
|
||||||
|
# tries to do the right thing first, but if that requires opening the
|
||||||
|
# message, it fallbacks to the easier (but incorrect) size.
|
||||||
|
#pop3_fast_size_lookups = no
|
||||||
|
|
||||||
|
# POP3 UIDL (unique mail identifier) format to use. You can use following
|
||||||
|
# variables, along with the variable modifiers described in
|
||||||
|
# doc/wiki/Variables.txt (e.g. %Uf for the filename in uppercase)
|
||||||
|
#
|
||||||
|
# %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)
|
||||||
|
# %g - Mail's GUID
|
||||||
|
#
|
||||||
|
# If you want UIDL compatibility with other POP3 servers, use:
|
||||||
|
# UW's ipop3d : %08Xv%08Xu
|
||||||
|
# Courier : %f or %v-%u (both might be used simultaneously)
|
||||||
|
# Cyrus (<= 2.1.3) : %u
|
||||||
|
# Cyrus (>= 2.1.4) : %v.%u
|
||||||
|
# Dovecot v0.99.x : %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.
|
||||||
|
#
|
||||||
|
#pop3_uidl_format = %08Xu%08Xv
|
||||||
|
|
||||||
|
# Permanently save UIDLs sent to POP3 clients, so pop3_uidl_format changes
|
||||||
|
# won't change those UIDLs. Currently this works only with Maildir.
|
||||||
|
#pop3_save_uidl = no
|
||||||
|
|
||||||
|
# What to do about duplicate UIDLs if they exist?
|
||||||
|
# allow: Show duplicates to clients.
|
||||||
|
# rename: Append a temporary -2, -3, etc. counter after the UIDL.
|
||||||
|
#pop3_uidl_duplicates = allow
|
||||||
|
|
||||||
|
# This option changes POP3 behavior so that it's not possible to actually
|
||||||
|
# delete mails via POP3, only hide them from future POP3 sessions. The mails
|
||||||
|
# will still be counted towards user's quota until actually deleted via IMAP.
|
||||||
|
# Use e.g. "$POP3Deleted" as the value (it will be visible as IMAP keyword).
|
||||||
|
# Make sure you can legally archive mails before enabling this setting.
|
||||||
|
#pop3_deleted_flag =
|
||||||
|
|
||||||
|
# POP3 logout format string:
|
||||||
|
# %i - total number of bytes read from client
|
||||||
|
# %o - total number of bytes sent to client
|
||||||
|
# %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
|
||||||
|
# %{deleted_bytes} - number of bytes in deleted messages
|
||||||
|
# %m - number of messages (before deletion)
|
||||||
|
# %s - mailbox size in bytes (before deletion)
|
||||||
|
# %u - old/new UIDL hash. may help finding out if UIDLs changed unexpectedly
|
||||||
|
#pop3_logout_format = top=%t/%p, retr=%r/%b, del=%d/%m, size=%s
|
||||||
|
|
||||||
|
# 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 =
|
||||||
|
|
||||||
|
protocol pop3 {
|
||||||
|
# Space separated list of plugins to load (default is global mail_plugins).
|
||||||
|
#mail_plugins = $mail_plugins
|
||||||
|
|
||||||
|
# Maximum number of POP3 connections allowed for a user from each IP address.
|
||||||
|
# NOTE: The username is compared case-sensitively.
|
||||||
|
#mail_max_userip_connections = 10
|
||||||
|
}
|
||||||
19
dovecot/conf.d/90-acl.conf
Normal file
19
dovecot/conf.d/90-acl.conf
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
##
|
||||||
|
## Mailbox access control lists.
|
||||||
|
##
|
||||||
|
|
||||||
|
# vfile backend reads ACLs from "dovecot-acl" file from mail 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. cache_secs parameter
|
||||||
|
# specifies how many seconds to wait between stat()ing dovecot-acl file
|
||||||
|
# to see if it changed.
|
||||||
|
plugin {
|
||||||
|
#acl = vfile:/etc/dovecot/global-acls:cache_secs=300
|
||||||
|
}
|
||||||
|
|
||||||
|
# To let users LIST mailboxes shared by other users, Dovecot needs a
|
||||||
|
# shared mailbox dictionary. For example:
|
||||||
|
plugin {
|
||||||
|
#acl_shared_dict = file:/var/lib/dovecot/shared-mailboxes
|
||||||
|
}
|
||||||
11
dovecot/conf.d/90-plugin.conf
Normal file
11
dovecot/conf.d/90-plugin.conf
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
##
|
||||||
|
## Plugin settings
|
||||||
|
##
|
||||||
|
|
||||||
|
# All wanted plugins must be listed in mail_plugins setting before any of the
|
||||||
|
# settings take effect. See <doc/wiki/Plugins.txt> for list of plugins and
|
||||||
|
# their configuration. Note that %variable expansion is done for all values.
|
||||||
|
|
||||||
|
plugin {
|
||||||
|
#setting_name = value
|
||||||
|
}
|
||||||
80
dovecot/conf.d/90-quota.conf
Normal file
80
dovecot/conf.d/90-quota.conf
Normal file
@@ -0,0 +1,80 @@
|
|||||||
|
##
|
||||||
|
## Quota configuration.
|
||||||
|
##
|
||||||
|
|
||||||
|
# Note that you also have to enable quota plugin in mail_plugins setting.
|
||||||
|
# <doc/wiki/Quota.txt>
|
||||||
|
|
||||||
|
##
|
||||||
|
## Quota limits
|
||||||
|
##
|
||||||
|
|
||||||
|
# Quota limits are set using "quota_rule" parameters. To get per-user quota
|
||||||
|
# limits, you can set/override them by returning "quota_rule" extra field
|
||||||
|
# from userdb. It's also possible to give mailbox-specific limits, for example
|
||||||
|
# to give additional 100 MB when saving to Trash:
|
||||||
|
|
||||||
|
plugin {
|
||||||
|
#quota_rule = *:storage=1G
|
||||||
|
#quota_rule2 = Trash:storage=+100M
|
||||||
|
|
||||||
|
# LDA/LMTP allows saving the last mail to bring user from under quota to
|
||||||
|
# over quota, if the quota doesn't grow too high. Default is to allow as
|
||||||
|
# long as quota will stay under 10% above the limit. Also allowed e.g. 10M.
|
||||||
|
#quota_grace = 10%%
|
||||||
|
}
|
||||||
|
|
||||||
|
##
|
||||||
|
## Quota warnings
|
||||||
|
##
|
||||||
|
|
||||||
|
# You can execute a given command when user exceeds a specified quota limit.
|
||||||
|
# Each quota root has separate limits. Only the command for the first
|
||||||
|
# exceeded limit is excecuted, so put the highest limit first.
|
||||||
|
# The commands are executed via script service by connecting to the named
|
||||||
|
# UNIX socket (quota-warning below).
|
||||||
|
# Note that % needs to be escaped as %%, otherwise "% " expands to empty.
|
||||||
|
|
||||||
|
plugin {
|
||||||
|
#quota_warning = storage=95%% quota-warning 95 %u
|
||||||
|
#quota_warning2 = storage=80%% quota-warning 80 %u
|
||||||
|
}
|
||||||
|
|
||||||
|
# Example quota-warning service. The unix listener's permissions should be
|
||||||
|
# set in a way that mail processes can connect to it. Below example assumes
|
||||||
|
# that mail processes run as vmail user. If you use mode=0666, all system users
|
||||||
|
# can generate quota warnings to anyone.
|
||||||
|
#service quota-warning {
|
||||||
|
# executable = script /usr/local/bin/quota-warning.sh
|
||||||
|
# user = dovecot
|
||||||
|
# unix_listener quota-warning {
|
||||||
|
# user = vmail
|
||||||
|
# }
|
||||||
|
#}
|
||||||
|
|
||||||
|
##
|
||||||
|
## Quota backends
|
||||||
|
##
|
||||||
|
|
||||||
|
# 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
|
||||||
|
|
||||||
|
plugin {
|
||||||
|
#quota = dirsize:User quota
|
||||||
|
quota = maildir:User quota
|
||||||
|
#quota = dict:User quota::proxy::quota
|
||||||
|
#quota = fs:User quota
|
||||||
|
}
|
||||||
|
|
||||||
|
# Multiple quota roots are also possible, for example this gives each user
|
||||||
|
# their own 100MB quota and one shared 1GB quota within the domain:
|
||||||
|
plugin {
|
||||||
|
#quota = dict:user::proxy::quota
|
||||||
|
#quota2 = dict:domain:%d:proxy::quota_domain
|
||||||
|
#quota_rule = *:storage=102400
|
||||||
|
#quota2_rule = *:storage=1048576
|
||||||
|
}
|
||||||
44
dovecot/conf.d/90-sieve-extprograms.conf
Normal file
44
dovecot/conf.d/90-sieve-extprograms.conf
Normal file
@@ -0,0 +1,44 @@
|
|||||||
|
# Sieve Extprograms plugin configuration
|
||||||
|
|
||||||
|
# Don't forget to add the sieve_extprograms plugin to the sieve_plugins setting.
|
||||||
|
# Also enable the extensions you need (one or more of vnd.dovecot.pipe,
|
||||||
|
# vnd.dovecot.filter and vnd.dovecot.execute) by adding these to the
|
||||||
|
# sieve_extensions or sieve_global_extensions settings. Restricting these
|
||||||
|
# extensions to a global context using sieve_global_extensions is recommended.
|
||||||
|
|
||||||
|
plugin {
|
||||||
|
|
||||||
|
# The directory where the program sockets are located for the
|
||||||
|
# vnd.dovecot.pipe, vnd.dovecot.filter and vnd.dovecot.execute extension
|
||||||
|
# respectively. The name of each unix socket contained in that directory
|
||||||
|
# directly maps to a program-name referenced from the Sieve script.
|
||||||
|
#sieve_pipe_socket_dir = sieve-pipe
|
||||||
|
#sieve_filter_socket_dir = sieve-filter
|
||||||
|
#sieve_execute_socket_dir = sieve-execute
|
||||||
|
|
||||||
|
# The directory where the scripts are located for direct execution by the
|
||||||
|
# vnd.dovecot.pipe, vnd.dovecot.filter and vnd.dovecot.execute extension
|
||||||
|
# respectively. The name of each script contained in that directory
|
||||||
|
# directly maps to a program-name referenced from the Sieve script.
|
||||||
|
#sieve_pipe_bin_dir = /usr/lib/dovecot/sieve-pipe
|
||||||
|
#sieve_filter_bin_dir = /usr/lib/dovecot/sieve-filter
|
||||||
|
#sieve_execute_bin_dir = /usr/lib/dovecot/sieve-execute
|
||||||
|
}
|
||||||
|
|
||||||
|
# An example program service called 'do-something' to pipe messages to
|
||||||
|
#service do-something {
|
||||||
|
# Define the executed script as parameter to the sieve service
|
||||||
|
#executable = script /usr/lib/dovecot/sieve-pipe/do-something.sh
|
||||||
|
|
||||||
|
# Use some unprivileged user for executing the program
|
||||||
|
#user = dovenull
|
||||||
|
|
||||||
|
# The unix socket located in the sieve_pipe_socket_dir (as defined in the
|
||||||
|
# plugin {} section above)
|
||||||
|
#unix_listener sieve-pipe/do-something {
|
||||||
|
# LDA/LMTP must have access
|
||||||
|
# user = vmail
|
||||||
|
# mode = 0600
|
||||||
|
#}
|
||||||
|
#}
|
||||||
|
|
||||||
205
dovecot/conf.d/90-sieve.conf
Normal file
205
dovecot/conf.d/90-sieve.conf
Normal file
@@ -0,0 +1,205 @@
|
|||||||
|
##
|
||||||
|
## Settings for the Sieve interpreter
|
||||||
|
##
|
||||||
|
|
||||||
|
# Do not forget to enable the Sieve plugin in 15-lda.conf and 20-lmtp.conf
|
||||||
|
# by adding it to the respective mail_plugins= settings.
|
||||||
|
|
||||||
|
# The Sieve interpreter can retrieve Sieve scripts from several types of
|
||||||
|
# locations. The default `file' location type is a local filesystem path
|
||||||
|
# pointing to a Sieve script file or a directory containing multiple Sieve
|
||||||
|
# script files. More complex setups can use other location types such as
|
||||||
|
# `ldap' or `dict' to fetch Sieve scripts from remote databases.
|
||||||
|
#
|
||||||
|
# All settings that specify the location of one ore more Sieve scripts accept
|
||||||
|
# the following syntax:
|
||||||
|
#
|
||||||
|
# location = [<type>:]path[;<option>[=<value>][;...]]
|
||||||
|
#
|
||||||
|
# If the type prefix is omitted, the script location type is 'file' and the
|
||||||
|
# location is interpreted as a local filesystem path pointing to a Sieve script
|
||||||
|
# file or directory. Refer to Pigeonhole wiki or INSTALL file for more
|
||||||
|
# information.
|
||||||
|
|
||||||
|
plugin {
|
||||||
|
# The location of the user's main Sieve script or script storage. The LDA
|
||||||
|
# Sieve plugin uses this to find the active script for Sieve filtering at
|
||||||
|
# delivery. The "include" extension uses this location for retrieving
|
||||||
|
# :personal" scripts. This is also where the ManageSieve service will store
|
||||||
|
# the user's scripts, if supported.
|
||||||
|
#
|
||||||
|
# Currently only the 'file:' location type supports ManageSieve operation.
|
||||||
|
# Other location types like 'dict:' and 'ldap:' can currently only
|
||||||
|
# be used as a read-only script source ().
|
||||||
|
#
|
||||||
|
# For the 'file:' type: use the ';active=' parameter to specify where the
|
||||||
|
# active script symlink is located.
|
||||||
|
# For other types: use the ';name=' parameter to specify the name of the
|
||||||
|
# default/active script.
|
||||||
|
sieve = file:~/sieve;active=~/.dovecot.sieve
|
||||||
|
|
||||||
|
# The default Sieve script when the user has none. This is the location of a
|
||||||
|
# global sieve script file, which gets executed ONLY if user's personal Sieve
|
||||||
|
# script doesn't exist. Be sure to pre-compile this script manually using the
|
||||||
|
# sievec command line tool if the binary is not stored in a global location.
|
||||||
|
# --> See sieve_before for executing scripts before the user's personal
|
||||||
|
# script.
|
||||||
|
#sieve_default = /var/lib/dovecot/sieve/default.sieve
|
||||||
|
|
||||||
|
# The name by which the default Sieve script (as configured by the
|
||||||
|
# sieve_default setting) is visible to the user through ManageSieve.
|
||||||
|
#sieve_default_name =
|
||||||
|
|
||||||
|
# Location for ":global" include scripts as used by the "include" extension.
|
||||||
|
#sieve_global =
|
||||||
|
|
||||||
|
# The location of a Sieve script that is run for any message that is about to
|
||||||
|
# be discarded; i.e., it is not delivered anywhere by the normal Sieve
|
||||||
|
# execution. This only happens when the "implicit keep" is canceled, by e.g.
|
||||||
|
# the "discard" action, and no actions that deliver the message are executed.
|
||||||
|
# This "discard script" can prevent discarding the message, by executing
|
||||||
|
# alternative actions. If the discard script does nothing, the message is
|
||||||
|
# still discarded as it would be when no discard script is configured.
|
||||||
|
#sieve_discard =
|
||||||
|
|
||||||
|
# Location Sieve of scripts that need to be executed before the user's
|
||||||
|
# personal script. If a 'file' location path points to a directory, all the
|
||||||
|
# Sieve scripts contained therein (with the proper `.sieve' extension) are
|
||||||
|
# executed. The order of execution within that directory is determined by the
|
||||||
|
# file names, using a normal 8bit per-character comparison.
|
||||||
|
#
|
||||||
|
# Multiple script locations can be specified by appending an increasing number
|
||||||
|
# to the setting name. The Sieve scripts found from these locations are added
|
||||||
|
# to the script execution sequence in the specified order. Reading the
|
||||||
|
# numbered sieve_before settings stops at the first missing setting, so no
|
||||||
|
# numbers may be skipped.
|
||||||
|
#sieve_before = /var/lib/dovecot/sieve.d/
|
||||||
|
#sieve_before2 = ldap:/etc/sieve-ldap.conf;name=ldap-domain
|
||||||
|
#sieve_before3 = (etc...)
|
||||||
|
|
||||||
|
# Identical to sieve_before, only the specified scripts are executed after the
|
||||||
|
# user's script (only when keep is still in effect!). Multiple script
|
||||||
|
# locations can be specified by appending an increasing number.
|
||||||
|
#sieve_after =
|
||||||
|
#sieve_after2 =
|
||||||
|
#sieve_after2 = (etc...)
|
||||||
|
|
||||||
|
# Which Sieve language extensions are available to users. By default, all
|
||||||
|
# supported extensions are available, except for deprecated extensions or
|
||||||
|
# those that are still under development. Some system administrators may want
|
||||||
|
# to disable certain Sieve extensions or enable those that are not available
|
||||||
|
# by default. This setting can use '+' and '-' to specify differences relative
|
||||||
|
# to the default. For example `sieve_extensions = +imapflags' will enable the
|
||||||
|
# deprecated imapflags extension in addition to all extensions were already
|
||||||
|
# enabled by default.
|
||||||
|
#sieve_extensions = +notify +imapflags
|
||||||
|
|
||||||
|
# Which Sieve language extensions are ONLY available in global scripts. This
|
||||||
|
# can be used to restrict the use of certain Sieve extensions to administrator
|
||||||
|
# control, for instance when these extensions can cause security concerns.
|
||||||
|
# This setting has higher precedence than the `sieve_extensions' setting
|
||||||
|
# (above), meaning that the extensions enabled with this setting are never
|
||||||
|
# available to the user's personal script no matter what is specified for the
|
||||||
|
# `sieve_extensions' setting. The syntax of this setting is similar to the
|
||||||
|
# `sieve_extensions' setting, with the difference that extensions are
|
||||||
|
# enabled or disabled for exclusive use in global scripts. Currently, no
|
||||||
|
# extensions are marked as such by default.
|
||||||
|
#sieve_global_extensions =
|
||||||
|
|
||||||
|
# The Pigeonhole Sieve interpreter can have plugins of its own. Using this
|
||||||
|
# setting, the used plugins can be specified. Check the Dovecot wiki
|
||||||
|
# (wiki2.dovecot.org) or the pigeonhole website
|
||||||
|
# (http://pigeonhole.dovecot.org) for available plugins.
|
||||||
|
# The sieve_extprograms plugin is included in this release.
|
||||||
|
#sieve_plugins =
|
||||||
|
|
||||||
|
# The maximum size of a Sieve script. The compiler will refuse to compile any
|
||||||
|
# script larger than this limit. If set to 0, no limit on the script size is
|
||||||
|
# enforced.
|
||||||
|
#sieve_max_script_size = 1M
|
||||||
|
|
||||||
|
# The maximum number of actions that can be performed during a single script
|
||||||
|
# execution. If set to 0, no limit on the total number of actions is enforced.
|
||||||
|
#sieve_max_actions = 32
|
||||||
|
|
||||||
|
# The maximum number of redirect actions that can be performed during a single
|
||||||
|
# script execution. If set to 0, no redirect actions are allowed.
|
||||||
|
#sieve_max_redirects = 4
|
||||||
|
|
||||||
|
# The maximum number of personal Sieve scripts a single user can have. If set
|
||||||
|
# to 0, no limit on the number of scripts is enforced.
|
||||||
|
# (Currently only relevant for ManageSieve)
|
||||||
|
#sieve_quota_max_scripts = 0
|
||||||
|
|
||||||
|
# The maximum amount of disk storage a single user's scripts may occupy. If
|
||||||
|
# set to 0, no limit on the used amount of disk storage is enforced.
|
||||||
|
# (Currently only relevant for ManageSieve)
|
||||||
|
#sieve_quota_max_storage = 0
|
||||||
|
|
||||||
|
# The primary e-mail address for the user. This is used as a default when no
|
||||||
|
# other appropriate address is available for sending messages. If this setting
|
||||||
|
# is not configured, either the postmaster or null "<>" address is used as a
|
||||||
|
# sender, depending on the action involved. This setting is important when
|
||||||
|
# there is no message envelope to extract addresses from, such as when the
|
||||||
|
# script is executed in IMAP.
|
||||||
|
#sieve_user_email =
|
||||||
|
|
||||||
|
# The path to the file where the user log is written. If not configured, a
|
||||||
|
# default location is used. If the main user's personal Sieve (as configured
|
||||||
|
# with sieve=) is a file, the logfile is set to <filename>.log by default. If
|
||||||
|
# it is not a file, the default user log file is ~/.dovecot.sieve.log.
|
||||||
|
#sieve_user_log =
|
||||||
|
|
||||||
|
# Specifies what envelope sender address is used for redirected messages.
|
||||||
|
# The following values are supported for this setting:
|
||||||
|
#
|
||||||
|
# "sender" - The sender address is used (default).
|
||||||
|
# "recipient" - The final recipient address is used.
|
||||||
|
# "orig_recipient" - The original recipient is used.
|
||||||
|
# "user_email" - The user's primary address is used. This is
|
||||||
|
# configured with the "sieve_user_email" setting. If
|
||||||
|
# that setting is unconfigured, "user_mail" is equal to
|
||||||
|
# "recipient".
|
||||||
|
# "postmaster" - The postmaster_address configured for the LDA.
|
||||||
|
# "<user@domain>" - Redirected messages are always sent from user@domain.
|
||||||
|
# The angle brackets are mandatory. The null "<>" address
|
||||||
|
# is also supported.
|
||||||
|
#
|
||||||
|
# This setting is ignored when the envelope sender is "<>". In that case the
|
||||||
|
# sender of the redirected message is also always "<>".
|
||||||
|
#sieve_redirect_envelope_from = sender
|
||||||
|
|
||||||
|
## TRACE DEBUGGING
|
||||||
|
# Trace debugging provides detailed insight in the operations performed by
|
||||||
|
# the Sieve script. These settings apply to both the LDA Sieve plugin and the
|
||||||
|
# IMAPSIEVE plugin.
|
||||||
|
#
|
||||||
|
# WARNING: On a busy server, this functionality can quickly fill up the trace
|
||||||
|
# directory with a lot of trace files. Enable this only temporarily and as
|
||||||
|
# selective as possible.
|
||||||
|
|
||||||
|
# The directory where trace files are written. Trace debugging is disabled if
|
||||||
|
# this setting is not configured or if the directory does not exist. If the
|
||||||
|
# path is relative or it starts with "~/" it is interpreted relative to the
|
||||||
|
# current user's home directory.
|
||||||
|
#sieve_trace_dir =
|
||||||
|
|
||||||
|
# The verbosity level of the trace messages. Trace debugging is disabled if
|
||||||
|
# this setting is not configured. Possible values are:
|
||||||
|
#
|
||||||
|
# "actions" - Only print executed action commands, like keep,
|
||||||
|
# fileinto, reject and redirect.
|
||||||
|
# "commands" - Print any executed command, excluding test commands.
|
||||||
|
# "tests" - Print all executed commands and performed tests.
|
||||||
|
# "matching" - Print all executed commands, performed tests and the
|
||||||
|
# values matched in those tests.
|
||||||
|
#sieve_trace_level =
|
||||||
|
|
||||||
|
# Enables highly verbose debugging messages that are usually only useful for
|
||||||
|
# developers.
|
||||||
|
#sieve_trace_debug = no
|
||||||
|
|
||||||
|
# Enables showing byte code addresses in the trace output, rather than only
|
||||||
|
# the source line numbers.
|
||||||
|
#sieve_trace_addresses = no
|
||||||
|
}
|
||||||
21
dovecot/conf.d/auth-checkpassword.conf.ext
Normal file
21
dovecot/conf.d/auth-checkpassword.conf.ext
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
# Authentication for checkpassword users. Included from 10-auth.conf.
|
||||||
|
#
|
||||||
|
# <doc/wiki/AuthDatabase.CheckPassword.txt>
|
||||||
|
|
||||||
|
passdb {
|
||||||
|
driver = checkpassword
|
||||||
|
args = /usr/bin/checkpassword
|
||||||
|
}
|
||||||
|
|
||||||
|
# passdb lookup should return also userdb info
|
||||||
|
userdb {
|
||||||
|
driver = prefetch
|
||||||
|
}
|
||||||
|
|
||||||
|
# Standard checkpassword doesn't support direct userdb lookups.
|
||||||
|
# If you need checkpassword userdb, the checkpassword must support
|
||||||
|
# Dovecot-specific extensions.
|
||||||
|
#userdb {
|
||||||
|
# driver = checkpassword
|
||||||
|
# args = /usr/bin/checkpassword
|
||||||
|
#}
|
||||||
15
dovecot/conf.d/auth-deny.conf.ext
Normal file
15
dovecot/conf.d/auth-deny.conf.ext
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
# Deny access for users. Included from 10-auth.conf.
|
||||||
|
|
||||||
|
# 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.
|
||||||
|
|
||||||
|
# Example deny passdb using passwd-file. You can use any passdb though.
|
||||||
|
passdb {
|
||||||
|
driver = passwd-file
|
||||||
|
deny = yes
|
||||||
|
|
||||||
|
# File contains a list of usernames, one per line
|
||||||
|
args = /etc/dovecot/deny-users
|
||||||
|
}
|
||||||
16
dovecot/conf.d/auth-dict.conf.ext
Normal file
16
dovecot/conf.d/auth-dict.conf.ext
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
# Authentication via dict backend. Included from 10-auth.conf.
|
||||||
|
#
|
||||||
|
# <doc/wiki/AuthDatabase.Dict.txt>
|
||||||
|
|
||||||
|
passdb {
|
||||||
|
driver = dict
|
||||||
|
|
||||||
|
# Path for dict configuration file, see
|
||||||
|
# example-config/dovecot-dict-auth.conf.ext
|
||||||
|
args = /etc/dovecot/dovecot-dict-auth.conf.ext
|
||||||
|
}
|
||||||
|
|
||||||
|
userdb {
|
||||||
|
driver = dict
|
||||||
|
args = /etc/dovecot/dovecot-dict-auth.conf.ext
|
||||||
|
}
|
||||||
16
dovecot/conf.d/auth-master.conf.ext
Normal file
16
dovecot/conf.d/auth-master.conf.ext
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
# Authentication for master users. Included from 10-auth.conf.
|
||||||
|
|
||||||
|
# By adding master=yes setting inside a passdb you make the passdb a list
|
||||||
|
# of "master users", who can log in as anyone else.
|
||||||
|
# <doc/wiki/Authentication.MasterUsers.txt>
|
||||||
|
|
||||||
|
# Example master user passdb using passwd-file. You can use any passdb though.
|
||||||
|
passdb {
|
||||||
|
driver = passwd-file
|
||||||
|
master = yes
|
||||||
|
args = /etc/dovecot/master-users
|
||||||
|
|
||||||
|
# Unless you're using PAM, you probably still want the destination user to
|
||||||
|
# be looked up from passdb that it really exists. pass=yes does that.
|
||||||
|
pass = yes
|
||||||
|
}
|
||||||
20
dovecot/conf.d/auth-passwdfile.conf.ext
Normal file
20
dovecot/conf.d/auth-passwdfile.conf.ext
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
# Authentication for passwd-file users. Included from auth.conf.
|
||||||
|
#
|
||||||
|
# passwd-like file with specified location.
|
||||||
|
# <doc/wiki/AuthDatabase.PasswdFile.txt>
|
||||||
|
|
||||||
|
passdb {
|
||||||
|
driver = passwd-file
|
||||||
|
args = scheme=CRYPT username_format=%Lu /etc/dovecot/dovecot.passwd
|
||||||
|
}
|
||||||
|
|
||||||
|
userdb {
|
||||||
|
driver = passwd-file
|
||||||
|
args = username_format=%Lu /etc/dovecot/dovecot.passwd
|
||||||
|
|
||||||
|
# Default fields that can be overridden by passwd-file
|
||||||
|
#default_fields = quota_rule=*:storage=1G
|
||||||
|
|
||||||
|
# Override fields from passwd-file
|
||||||
|
#override_fields = home=/home/virtual/%u
|
||||||
|
}
|
||||||
30
dovecot/conf.d/auth-sql.conf.ext
Normal file
30
dovecot/conf.d/auth-sql.conf.ext
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
# Authentication for SQL users. Included from 10-auth.conf.
|
||||||
|
#
|
||||||
|
# <doc/wiki/AuthDatabase.SQL.txt>
|
||||||
|
|
||||||
|
passdb {
|
||||||
|
driver = sql
|
||||||
|
|
||||||
|
# Path for SQL configuration file, see example-config/dovecot-sql.conf.ext
|
||||||
|
args = /etc/dovecot/dovecot-sql.conf.ext
|
||||||
|
}
|
||||||
|
|
||||||
|
# "prefetch" user database means that the passdb already provided the
|
||||||
|
# needed information and there's no need to do a separate userdb lookup.
|
||||||
|
# <doc/wiki/UserDatabase.Prefetch.txt>
|
||||||
|
#userdb {
|
||||||
|
# driver = prefetch
|
||||||
|
#}
|
||||||
|
|
||||||
|
userdb {
|
||||||
|
driver = sql
|
||||||
|
args = /etc/dovecot/dovecot-sql.conf.ext
|
||||||
|
}
|
||||||
|
|
||||||
|
# If you don't have any user-specific settings, you can avoid the user_query
|
||||||
|
# by using userdb static instead of userdb sql, for example:
|
||||||
|
# <doc/wiki/UserDatabase.Static.txt>
|
||||||
|
#userdb {
|
||||||
|
#driver = static
|
||||||
|
#args = uid=vmail gid=vmail home=/var/vmail/%u
|
||||||
|
#}
|
||||||
24
dovecot/conf.d/auth-static.conf.ext
Normal file
24
dovecot/conf.d/auth-static.conf.ext
Normal file
@@ -0,0 +1,24 @@
|
|||||||
|
# Static passdb. Included from 10-auth.conf.
|
||||||
|
|
||||||
|
# This can be used for situations where Dovecot doesn't need to verify the
|
||||||
|
# username or the password, or if there is a single password for all users:
|
||||||
|
#
|
||||||
|
# - proxy frontend, where the backend verifies the password
|
||||||
|
# - proxy backend, where the frontend already verified the password
|
||||||
|
# - authentication with SSL certificates
|
||||||
|
# - simple testing
|
||||||
|
|
||||||
|
#passdb {
|
||||||
|
# driver = static
|
||||||
|
# args = proxy=y host=%1Mu.example.com nopassword=y
|
||||||
|
#}
|
||||||
|
|
||||||
|
#passdb {
|
||||||
|
# driver = static
|
||||||
|
# args = password=test
|
||||||
|
#}
|
||||||
|
|
||||||
|
#userdb {
|
||||||
|
# driver = static
|
||||||
|
# args = uid=vmail gid=vmail home=/home/%u
|
||||||
|
#}
|
||||||
74
dovecot/conf.d/auth-system.conf.ext
Normal file
74
dovecot/conf.d/auth-system.conf.ext
Normal file
@@ -0,0 +1,74 @@
|
|||||||
|
# Authentication for system users. Included from 10-auth.conf.
|
||||||
|
#
|
||||||
|
# <doc/wiki/PasswordDatabase.txt>
|
||||||
|
# <doc/wiki/UserDatabase.txt>
|
||||||
|
|
||||||
|
# PAM authentication. Preferred nowadays by most systems.
|
||||||
|
# PAM is typically used with either userdb passwd or userdb static.
|
||||||
|
# REMEMBER: You'll need /etc/pam.d/dovecot file created for PAM
|
||||||
|
# authentication to actually work. <doc/wiki/PasswordDatabase.PAM.txt>
|
||||||
|
passdb {
|
||||||
|
driver = pam
|
||||||
|
# [session=yes] [setcred=yes] [failure_show_msg=yes] [max_requests=<n>]
|
||||||
|
# [cache_key=<key>] [<service name>]
|
||||||
|
#args = dovecot
|
||||||
|
}
|
||||||
|
|
||||||
|
# System users (NSS, /etc/passwd, or similar).
|
||||||
|
# In many systems nowadays this uses Name Service Switch, which is
|
||||||
|
# configured in /etc/nsswitch.conf. <doc/wiki/AuthDatabase.Passwd.txt>
|
||||||
|
#passdb {
|
||||||
|
#driver = passwd
|
||||||
|
# [blocking=no]
|
||||||
|
#args =
|
||||||
|
#}
|
||||||
|
|
||||||
|
# Shadow passwords for system users (NSS, /etc/shadow or similar).
|
||||||
|
# Deprecated by PAM nowadays.
|
||||||
|
# <doc/wiki/PasswordDatabase.Shadow.txt>
|
||||||
|
#passdb {
|
||||||
|
#driver = shadow
|
||||||
|
# [blocking=no]
|
||||||
|
#args =
|
||||||
|
#}
|
||||||
|
|
||||||
|
# PAM-like authentication for OpenBSD.
|
||||||
|
# <doc/wiki/PasswordDatabase.BSDAuth.txt>
|
||||||
|
#passdb {
|
||||||
|
#driver = bsdauth
|
||||||
|
# [blocking=no] [cache_key=<key>]
|
||||||
|
#args =
|
||||||
|
#}
|
||||||
|
|
||||||
|
##
|
||||||
|
## User databases
|
||||||
|
##
|
||||||
|
|
||||||
|
# System users (NSS, /etc/passwd, or similar). In many systems nowadays this
|
||||||
|
# uses Name Service Switch, which is configured in /etc/nsswitch.conf.
|
||||||
|
userdb {
|
||||||
|
# <doc/wiki/AuthDatabase.Passwd.txt>
|
||||||
|
driver = passwd
|
||||||
|
# [blocking=no]
|
||||||
|
#args =
|
||||||
|
|
||||||
|
# Override fields from passwd
|
||||||
|
#override_fields = home=/home/virtual/%u
|
||||||
|
}
|
||||||
|
|
||||||
|
# Static settings generated from template <doc/wiki/UserDatabase.Static.txt>
|
||||||
|
#userdb {
|
||||||
|
#driver = static
|
||||||
|
# Can return anything a userdb could normally return. For example:
|
||||||
|
#
|
||||||
|
# args = uid=500 gid=500 home=/var/mail/%u
|
||||||
|
#
|
||||||
|
# LDA and LMTP needs to look up users only from the userdb. This of course
|
||||||
|
# doesn't work with static userdb 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 =
|
||||||
|
#}
|
||||||
54
dovecot/dovecot-dict-auth.conf.ext
Normal file
54
dovecot/dovecot-dict-auth.conf.ext
Normal file
@@ -0,0 +1,54 @@
|
|||||||
|
# This file is commonly accessed via passdb {} or userdb {} section in
|
||||||
|
# conf.d/auth-dict.conf.ext
|
||||||
|
|
||||||
|
# Dictionary URI
|
||||||
|
#uri =
|
||||||
|
|
||||||
|
# Default password scheme
|
||||||
|
default_pass_scheme = MD5
|
||||||
|
|
||||||
|
# Username iteration prefix. Keys under this are assumed to contain usernames.
|
||||||
|
iterate_prefix = userdb/
|
||||||
|
|
||||||
|
# Should iteration be disabled for this userdb? If this userdb acts only as a
|
||||||
|
# cache there's no reason to try to iterate the (partial & duplicate) users.
|
||||||
|
#iterate_disable = no
|
||||||
|
|
||||||
|
# The example here shows how to do multiple dict lookups and merge the replies.
|
||||||
|
# The "passdb" and "userdb" keys are JSON objects containing key/value pairs,
|
||||||
|
# for example: { "uid": 1000, "gid": 1000, "home": "/home/user" }
|
||||||
|
|
||||||
|
key passdb {
|
||||||
|
key = passdb/%u
|
||||||
|
format = json
|
||||||
|
}
|
||||||
|
key userdb {
|
||||||
|
key = userdb/%u
|
||||||
|
format = json
|
||||||
|
}
|
||||||
|
key quota {
|
||||||
|
key = userdb/%u/quota
|
||||||
|
#format = value
|
||||||
|
# The default_value is used if the key isn't found. If default_value setting
|
||||||
|
# isn't specified at all (even as empty), the passdb/userdb lookup fails with
|
||||||
|
# "user doesn't exist".
|
||||||
|
default_value = 100M
|
||||||
|
}
|
||||||
|
|
||||||
|
# Space separated list of keys whose values contain key/value paired objects.
|
||||||
|
# All the key/value pairs inside the object are added as passdb fields.
|
||||||
|
passdb_objects = passdb
|
||||||
|
|
||||||
|
#passdb_fields {
|
||||||
|
#}
|
||||||
|
|
||||||
|
# Userdb key/value object list.
|
||||||
|
userdb_objects = userdb
|
||||||
|
|
||||||
|
userdb_fields {
|
||||||
|
# dict:<key> refers to key names
|
||||||
|
quota_rule = *:storage=%{dict:quota}
|
||||||
|
|
||||||
|
# dict:<key>.<objkey> refers to the objkey inside (JSON) object
|
||||||
|
mail = maildir:%{dict:userdb.home}/Maildir
|
||||||
|
}
|
||||||
23
dovecot/dovecot-dict-sql.conf.ext
Normal file
23
dovecot/dovecot-dict-sql.conf.ext
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
# This file is commonly accessed via dict {} section in dovecot.conf
|
||||||
|
|
||||||
|
#connect = host=localhost dbname=mails user=testuser password=pass
|
||||||
|
|
||||||
|
# CREATE TABLE quota (
|
||||||
|
# username varchar(100) not null,
|
||||||
|
# bytes bigint not null default 0,
|
||||||
|
# messages integer not null default 0,
|
||||||
|
# primary key (username)
|
||||||
|
# );
|
||||||
|
|
||||||
|
map {
|
||||||
|
pattern = priv/quota/storage
|
||||||
|
table = quota
|
||||||
|
username_field = username
|
||||||
|
value_field = bytes
|
||||||
|
}
|
||||||
|
map {
|
||||||
|
pattern = priv/quota/messages
|
||||||
|
table = quota
|
||||||
|
username_field = username
|
||||||
|
value_field = messages
|
||||||
|
}
|
||||||
144
dovecot/dovecot-sql.conf.ext
Normal file
144
dovecot/dovecot-sql.conf.ext
Normal file
@@ -0,0 +1,144 @@
|
|||||||
|
# This file is commonly accessed via passdb {} or userdb {} section in
|
||||||
|
# conf.d/auth-sql.conf.ext
|
||||||
|
|
||||||
|
# This file is opened as root, so it should be owned by root and mode 0600.
|
||||||
|
#
|
||||||
|
# http://wiki2.dovecot.org/AuthDatabase/SQL
|
||||||
|
#
|
||||||
|
# For the sql passdb module, you'll need a database with a table that
|
||||||
|
# contains fields for at least the username and password. If you want to
|
||||||
|
# use the user@domain syntax, you might want to have a separate domain
|
||||||
|
# field as well.
|
||||||
|
#
|
||||||
|
# If your users all have the same uig/gid, and have predictable home
|
||||||
|
# directories, you can use the static userdb module to generate the home
|
||||||
|
# dir based on the username and domain. In this case, you won't need fields
|
||||||
|
# for home, uid, or gid in the database.
|
||||||
|
#
|
||||||
|
# If you prefer to use the sql userdb module, you'll want to add fields
|
||||||
|
# for home, uid, and gid. Here is an example table:
|
||||||
|
#
|
||||||
|
# CREATE TABLE users (
|
||||||
|
# username VARCHAR(128) NOT NULL,
|
||||||
|
# domain VARCHAR(128) NOT NULL,
|
||||||
|
# password VARCHAR(64) NOT NULL,
|
||||||
|
# home VARCHAR(255) NOT NULL,
|
||||||
|
# uid INTEGER NOT NULL,
|
||||||
|
# gid INTEGER NOT NULL,
|
||||||
|
# active CHAR(1) DEFAULT 'Y' NOT NULL
|
||||||
|
# );
|
||||||
|
|
||||||
|
# Database driver: mysql, pgsql, sqlite
|
||||||
|
#driver =
|
||||||
|
|
||||||
|
# Database connection string. This is driver-specific setting.
|
||||||
|
#
|
||||||
|
# HA / round-robin load-balancing is supported by giving multiple host
|
||||||
|
# settings, like: host=sql1.host.org host=sql2.host.org
|
||||||
|
#
|
||||||
|
# pgsql:
|
||||||
|
# For available options, see the PostgreSQL documentation for the
|
||||||
|
# PQconnectdb function of libpq.
|
||||||
|
# Use maxconns=n (default 5) to change how many connections Dovecot can
|
||||||
|
# create to pgsql.
|
||||||
|
#
|
||||||
|
# mysql:
|
||||||
|
# Basic options emulate PostgreSQL option names:
|
||||||
|
# host, port, user, password, dbname
|
||||||
|
#
|
||||||
|
# But also adds some new settings:
|
||||||
|
# client_flags - See MySQL manual
|
||||||
|
# connect_timeout - Connect timeout in seconds (default: 5)
|
||||||
|
# read_timeout - Read timeout in seconds (default: 30)
|
||||||
|
# write_timeout - Write timeout in seconds (default: 30)
|
||||||
|
# ssl_ca, ssl_ca_path - Set either one or both to enable SSL
|
||||||
|
# ssl_cert, ssl_key - For sending client-side certificates to server
|
||||||
|
# ssl_cipher - Set minimum allowed cipher security (default: HIGH)
|
||||||
|
# ssl_verify_server_cert - Verify that the name in the server SSL certificate
|
||||||
|
# matches the host (default: no)
|
||||||
|
# option_file - Read options from the given file instead of
|
||||||
|
# the default my.cnf location
|
||||||
|
# option_group - Read options from the given group (default: client)
|
||||||
|
#
|
||||||
|
# You can connect to UNIX sockets by using host: host=/var/run/mysql.sock
|
||||||
|
# Note that currently you can't use spaces in parameters.
|
||||||
|
#
|
||||||
|
# sqlite:
|
||||||
|
# The path to the database file.
|
||||||
|
#
|
||||||
|
# Examples:
|
||||||
|
# connect = host=192.168.1.1 dbname=users
|
||||||
|
# connect = host=sql.example.com dbname=virtual user=virtual password=blarg
|
||||||
|
# connect = /etc/dovecot/authdb.sqlite
|
||||||
|
#
|
||||||
|
#connect =
|
||||||
|
|
||||||
|
# Default password scheme.
|
||||||
|
#
|
||||||
|
# List of supported schemes is in
|
||||||
|
# http://wiki2.dovecot.org/Authentication/PasswordSchemes
|
||||||
|
#
|
||||||
|
#default_pass_scheme = MD5
|
||||||
|
|
||||||
|
# passdb query to retrieve the password. It can return fields:
|
||||||
|
# password - The user's password. This field must be returned.
|
||||||
|
# user - user@domain from the database. Needed with case-insensitive lookups.
|
||||||
|
# username and domain - An alternative way to represent the "user" field.
|
||||||
|
#
|
||||||
|
# The "user" field is often necessary with case-insensitive lookups to avoid
|
||||||
|
# e.g. "name" and "nAme" logins creating two different mail directories. If
|
||||||
|
# your user and domain names are in separate fields, you can return "username"
|
||||||
|
# and "domain" fields instead of "user".
|
||||||
|
#
|
||||||
|
# The query can also return other fields which have a special meaning, see
|
||||||
|
# http://wiki2.dovecot.org/PasswordDatabase/ExtraFields
|
||||||
|
#
|
||||||
|
# Commonly used available substitutions (see http://wiki2.dovecot.org/Variables
|
||||||
|
# for full list):
|
||||||
|
# %u = entire user@domain
|
||||||
|
# %n = user part of user@domain
|
||||||
|
# %d = domain part of user@domain
|
||||||
|
#
|
||||||
|
# Note that these can be used only as input to SQL query. If the query outputs
|
||||||
|
# any of these substitutions, they're not touched. Otherwise it would be
|
||||||
|
# difficult to have eg. usernames containing '%' characters.
|
||||||
|
#
|
||||||
|
# Example:
|
||||||
|
# password_query = SELECT userid AS user, pw AS password \
|
||||||
|
# FROM users WHERE userid = '%u' AND active = 'Y'
|
||||||
|
#
|
||||||
|
#password_query = \
|
||||||
|
# SELECT username, domain, password \
|
||||||
|
# FROM users WHERE username = '%n' AND domain = '%d'
|
||||||
|
|
||||||
|
# userdb query to retrieve the user information. It can return fields:
|
||||||
|
# uid - System UID (overrides mail_uid setting)
|
||||||
|
# gid - System GID (overrides mail_gid setting)
|
||||||
|
# home - Home directory
|
||||||
|
# mail - Mail location (overrides mail_location setting)
|
||||||
|
#
|
||||||
|
# None of these are strictly required. If you use a single UID and GID, and
|
||||||
|
# home or mail directory fits to a template string, you could use userdb static
|
||||||
|
# instead. For a list of all fields that can be returned, see
|
||||||
|
# http://wiki2.dovecot.org/UserDatabase/ExtraFields
|
||||||
|
#
|
||||||
|
# Examples:
|
||||||
|
# user_query = SELECT home, uid, gid FROM users WHERE userid = '%u'
|
||||||
|
# user_query = SELECT dir AS home, user AS uid, group AS gid FROM users where userid = '%u'
|
||||||
|
# user_query = SELECT home, 501 AS uid, 501 AS gid FROM users WHERE userid = '%u'
|
||||||
|
#
|
||||||
|
#user_query = \
|
||||||
|
# SELECT home, uid, gid \
|
||||||
|
# FROM users WHERE username = '%n' AND domain = '%d'
|
||||||
|
|
||||||
|
# If you wish to avoid two SQL lookups (passdb + userdb), you can use
|
||||||
|
# userdb prefetch instead of userdb sql in dovecot.conf. In that case you'll
|
||||||
|
# also have to return userdb fields in password_query prefixed with "userdb_"
|
||||||
|
# string. For example:
|
||||||
|
#password_query = \
|
||||||
|
# SELECT userid AS user, password, \
|
||||||
|
# home AS userdb_home, uid AS userdb_uid, gid AS userdb_gid \
|
||||||
|
# FROM users WHERE userid = '%u'
|
||||||
|
|
||||||
|
# Query to get a list of all usernames.
|
||||||
|
#iterate_query = SELECT username AS user FROM users
|
||||||
101
dovecot/dovecot.conf
Normal file
101
dovecot/dovecot.conf
Normal file
@@ -0,0 +1,101 @@
|
|||||||
|
# this file was autogenerated, please do not edit
|
||||||
|
## Dovecot configuration file
|
||||||
|
|
||||||
|
# If you're in a hurry, see http://wiki2.dovecot.org/QuickConfiguration
|
||||||
|
|
||||||
|
# "doveconf -n" command gives a clean output of the changed settings. Use it
|
||||||
|
# instead of copy&pasting files when posting to the Dovecot mailing list.
|
||||||
|
|
||||||
|
# '#' character and everything after it is treated as comments. Extra spaces
|
||||||
|
# and tabs are ignored. If you want to use either of these explicitly, put the
|
||||||
|
# value inside quotes, eg.: key = "# char and trailing whitespace "
|
||||||
|
|
||||||
|
# Default values are shown for each setting, it's not required to uncomment
|
||||||
|
# those. These are exceptions to this though: No sections (e.g. namespace {})
|
||||||
|
# or plugin settings are added by default, they're listed only as examples.
|
||||||
|
# Paths are also just examples with the real defaults being based on configure
|
||||||
|
# options. The paths listed here are for configure --prefix=/usr
|
||||||
|
# --sysconfdir=/etc --localstatedir=/var
|
||||||
|
|
||||||
|
# Enable installed protocols
|
||||||
|
!include_try /usr/share/dovecot/protocols.d/*.protocol
|
||||||
|
|
||||||
|
# A comma separated list of IPs or hosts where to listen in for connections.
|
||||||
|
# "*" listens in all IPv4 interfaces, "::" listens in all IPv6 interfaces.
|
||||||
|
# If you want to specify non-default ports or anything more complex,
|
||||||
|
# edit conf.d/master.conf.
|
||||||
|
listen = *,::
|
||||||
|
|
||||||
|
|
||||||
|
# Base directory where to store runtime data.
|
||||||
|
#base_dir = /var/run/dovecot/
|
||||||
|
|
||||||
|
# Name of this instance. In multi-instance setup doveadm and other commands
|
||||||
|
# can use -i <instance_name> to select which instance is used (an alternative
|
||||||
|
# to -c <config_path>). The instance name is also added to Dovecot processes
|
||||||
|
# in ps output.
|
||||||
|
#instance_name = dovecot
|
||||||
|
|
||||||
|
# Greeting message for clients.
|
||||||
|
#login_greeting = Dovecot ready.
|
||||||
|
|
||||||
|
# Space separated list of trusted network ranges. Connections from these
|
||||||
|
# IPs are allowed to override their IP addresses and ports (for logging and
|
||||||
|
# for authentication checks). disable_plaintext_auth is also ignored for
|
||||||
|
# these networks. Typically you'd specify your IMAP proxy servers here.
|
||||||
|
#login_trusted_networks =
|
||||||
|
|
||||||
|
# Sepace separated list of login access check sockets (e.g. tcpwrap)
|
||||||
|
#login_access_sockets =
|
||||||
|
|
||||||
|
# With proxy_maybe=yes if proxy destination matches any of these IPs, don't do
|
||||||
|
# proxying. This isn't necessary normally, but may be useful if the destination
|
||||||
|
# IP is e.g. a load balancer's IP.
|
||||||
|
#auth_proxy_self =
|
||||||
|
|
||||||
|
# Show more verbose process titles (in ps). Currently shows user name and
|
||||||
|
# IP address. Useful for seeing who are actually using the IMAP processes
|
||||||
|
# (eg. shared mailboxes or if same uid is used for multiple accounts).
|
||||||
|
#verbose_proctitle = no
|
||||||
|
|
||||||
|
# Should all processes be killed when Dovecot master process shuts down.
|
||||||
|
# Setting this to "no" means that Dovecot can be upgraded without
|
||||||
|
# forcing existing client connections to close (although that could also be
|
||||||
|
# a problem if the upgrade is e.g. because of a security fix).
|
||||||
|
#shutdown_clients = yes
|
||||||
|
|
||||||
|
# If non-zero, run mail commands via this many connections to doveadm server,
|
||||||
|
# instead of running them directly in the same process.
|
||||||
|
#doveadm_worker_count = 0
|
||||||
|
# UNIX socket or host:port used for connecting to doveadm server
|
||||||
|
#doveadm_socket_path = doveadm-server
|
||||||
|
|
||||||
|
# Space separated list of environment variables that are preserved on Dovecot
|
||||||
|
# startup and passed down to all of its child processes. You can also give
|
||||||
|
# key=value pairs to always set specific settings.
|
||||||
|
#import_environment = TZ
|
||||||
|
|
||||||
|
##
|
||||||
|
## Dictionary server settings
|
||||||
|
##
|
||||||
|
|
||||||
|
# Dictionary can be used to store key=value lists. This is used by several
|
||||||
|
# plugins. The dictionary can be accessed 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::<name>".
|
||||||
|
|
||||||
|
dict {
|
||||||
|
#quota = mysql:/etc/dovecot/dovecot-dict-sql.conf.ext
|
||||||
|
#expire = sqlite:/etc/dovecot/dovecot-dict-sql.conf.ext
|
||||||
|
}
|
||||||
|
|
||||||
|
# Most of the actual configuration gets included below. The filenames are
|
||||||
|
# first sorted by their ASCII value and parsed in that order. The 00-prefixes
|
||||||
|
# in filenames are intended to make it easier to understand the ordering.
|
||||||
|
!include conf.d/*.conf
|
||||||
|
|
||||||
|
# A config file can also tried to be included without giving an error if
|
||||||
|
# it's not found:
|
||||||
|
!include_try local.conf
|
||||||
|
!include_try /etc/dovecot/certs/*.conf
|
||||||
4
dovecot/dovecot.passwd
Normal file
4
dovecot/dovecot.passwd
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
admin@panman-translog.de:{CRAM-MD5}2c87cd2da663c45793987573147c4f6ecf8d549877168e86db5b04463db018f9:1001:1004::/var/www/panman_trans_usr/data/email/panman-translog.de/admin:::maildir:/var/www/panman_trans_usr/data/email/panman-translog.de/admin/.maildir userdb_quota_rule=*:bytes=0M
|
||||||
|
info@panman-translog.de:{CRAM-MD5}ad9e94ca0d6609a19b2b8f73cc6cfe0e4d5aad1ad58d0daeca9b98ea055861ec:1001:1004::/var/www/panman_trans_usr/data/email/panman-translog.de/info:::maildir:/var/www/panman_trans_usr/data/email/panman-translog.de/info/.maildir userdb_quota_rule=*:bytes=0M
|
||||||
|
service@panman-translog.de:{CRAM-MD5}814269fe60ccfede01e566e53334106b75bc3d25af6c30d5e31eb34e369b29b1:1001:1004::/var/www/panman_trans_usr/data/email/panman-translog.de/service:::maildir:/var/www/panman_trans_usr/data/email/panman-translog.de/service/.maildir userdb_quota_rule=*:bytes=0M
|
||||||
|
rechnung@panman-translog.de:{CRAM-MD5}5df290131dde026c3fe7ec7d24470bbb10496f8b38776f4551959dc3d21e86d7:1001:1004::/var/www/panman_trans_usr/data/email/panman-translog.de/rechnung:::maildir:/var/www/panman_trans_usr/data/email/panman-translog.de/rechnung/.maildir userdb_quota_rule=*:bytes=0M
|
||||||
1
dovecot/private/dovecot.key
Symbolic link
1
dovecot/private/dovecot.key
Symbolic link
@@ -0,0 +1 @@
|
|||||||
|
/etc/ssl/private/ssl-cert-snakeoil.key
|
||||||
1
dovecot/private/dovecot.pem
Symbolic link
1
dovecot/private/dovecot.pem
Symbolic link
@@ -0,0 +1 @@
|
|||||||
|
/etc/ssl/certs/ssl-cert-snakeoil.pem
|
||||||
60
httpd-cert/mail.panman-translog.de_panel.crt
Normal file
60
httpd-cert/mail.panman-translog.de_panel.crt
Normal file
@@ -0,0 +1,60 @@
|
|||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
MIIFCzCCA/OgAwIBAgISBXehFf5CrUhoqvWowwMqcIhAMA0GCSqGSIb3DQEBCwUA
|
||||||
|
MDMxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MQwwCgYDVQQD
|
||||||
|
EwNSMTEwHhcNMjUwODAxMTAwMTM5WhcNMjUxMDMwMTAwMTM4WjAiMSAwHgYDVQQD
|
||||||
|
ExdtYWlsLnBhbm1hbi10cmFuc2xvZy5kZTCCASIwDQYJKoZIhvcNAQEBBQADggEP
|
||||||
|
ADCCAQoCggEBAL9QBDo7rESYZoJYxjfCafFjoiswUwTqemsJGc7iSr237520UOCy
|
||||||
|
ou9CdlLM4qAJ38TcmHzvayzCwmqYn473g3WZ72/3iLSjYAknRWvpjgU3RZ5qKj1x
|
||||||
|
TIze+UtN99s0MHWvFQ8A/D8lKF/AMzwdneDwbJabUup6CPVU7J2QUKMvxxghKAig
|
||||||
|
6k4CBUoMGu4vAe9JcohewBVD/X3Ta2W1ha9wLQ95/HgCYuNdZ5SfubxO6Xuk+ax7
|
||||||
|
HlFKdG9CVxlWncXVEiSFYEXGDkJeHjohsEkG3HnybAuJXxWcNnVqxH1Kb8wocAw0
|
||||||
|
cKX+IlujFyfWq/zlZUVB4f3qrmvfRMwdtcsCAwEAAaOCAigwggIkMA4GA1UdDwEB
|
||||||
|
/wQEAwIFoDAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDAYDVR0TAQH/
|
||||||
|
BAIwADAdBgNVHQ4EFgQU9vNp8kp742+7jXSXrn6QXavjFbAwHwYDVR0jBBgwFoAU
|
||||||
|
xc9GpOr0w8B6bJXELbBeki8m47kwMwYIKwYBBQUHAQEEJzAlMCMGCCsGAQUFBzAC
|
||||||
|
hhdodHRwOi8vcjExLmkubGVuY3Iub3JnLzAiBgNVHREEGzAZghdtYWlsLnBhbm1h
|
||||||
|
bi10cmFuc2xvZy5kZTATBgNVHSAEDDAKMAgGBmeBDAECATAuBgNVHR8EJzAlMCOg
|
||||||
|
IaAfhh1odHRwOi8vcjExLmMubGVuY3Iub3JnLzY1LmNybDCCAQUGCisGAQQB1nkC
|
||||||
|
BAIEgfYEgfMA8QB3AA3h8jAr0w3BQGISCepVLvxHdHyx1+kw7w5CHrR+Tqo0AAAB
|
||||||
|
mGVKE1UAAAQDAEgwRgIhAJfEDpBoDPj9WvDW0nxc5YfzjOd7XL1QgeFPq0+mPraC
|
||||||
|
AiEAvnyOHK892jSl6zIwSYBbLBkn9+m5Vj4/f3WVStVmt2MAdgDd3Mo0ldfhFgXn
|
||||||
|
lTL6x5/4PRxQ39sAOhQSdgosrLvIKgAAAZhlShRfAAAEAwBHMEUCIE7eduFYnlgn
|
||||||
|
p6fDlKrPYrpRsmQAaLWjIh8Wa+GLhPVlAiEA05r2sgZFcY1lEqNydyNKeZ34Wc2b
|
||||||
|
tOzyKr6acaXNwYQwDQYJKoZIhvcNAQELBQADggEBAGZNW4NxV4/EDWPf0qeViD2u
|
||||||
|
k0mDaNwhMe8Zl8jy6UwYucK2XGpRabuFhXtOXvWqebCVfBS1rGXmFMrDCVH46LYN
|
||||||
|
atJ6eGiZUUv3Xi9o6ovhmPGo6GRSF6eGjgbWaCVFUYkyRZ170fAQoYfy822aG+rf
|
||||||
|
37MgcOL54F9AwkziIBJ/uokYiNuC1TUHF/+X4Cu1Ve9peyzEmKvpK9QuFF+xwF8u
|
||||||
|
3TMU2XC04IAwzd90dvgFviYQ1qlUtZB8cLHo+Nvh51rz72gIIMeK/LEKphHujWMU
|
||||||
|
cyYsNwiDzeunU+mzenIJitqUpyp6OU7u7wiykLHHmU6XY/8z53nzWz+fzxu0p9A=
|
||||||
|
-----END CERTIFICATE-----
|
||||||
|
|
||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
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
|
||||||
|
-----END CERTIFICATE-----
|
||||||
|
|
||||||
27
httpd-cert/mail.panman-translog.de_panel.key
Normal file
27
httpd-cert/mail.panman-translog.de_panel.key
Normal file
@@ -0,0 +1,27 @@
|
|||||||
|
-----BEGIN RSA PRIVATE KEY-----
|
||||||
|
MIIEogIBAAKCAQEAv1AEOjusRJhmgljGN8Jp8WOiKzBTBOp6awkZzuJKvbfvnbRQ
|
||||||
|
4LKi70J2UszioAnfxNyYfO9rLMLCapifjveDdZnvb/eItKNgCSdFa+mOBTdFnmoq
|
||||||
|
PXFMjN75S0332zQwda8VDwD8PyUoX8AzPB2d4PBslptS6noI9VTsnZBQoy/HGCEo
|
||||||
|
CKDqTgIFSgwa7i8B70lyiF7AFUP9fdNrZbWFr3AtD3n8eAJi411nlJ+5vE7pe6T5
|
||||||
|
rHseUUp0b0JXGVadxdUSJIVgRcYOQl4eOiGwSQbcefJsC4lfFZw2dWrEfUpvzChw
|
||||||
|
DDRwpf4iW6MXJ9ar/OVlRUHh/equa99EzB21ywIDAQABAoIBAFZOxPl4fkkb7/MS
|
||||||
|
FaqGHMF3z2toi6uGFOBA5NG+qTVZy9H7zRjxvivuce7826iTi84GLwz9/f3dh1QL
|
||||||
|
ssAOzdG6NpjutU+4/NRkUR9T6GxV+SR0hMXfXUeYOCNO82iC7PHKoNd5/FKIcuRv
|
||||||
|
ky2lttoJ3RM803VQxMXZID4dIyPa3E8WCwWNHoBmv+Gg00JzsSwjj2RFl8djtCKA
|
||||||
|
bt1Flp9UGLFDaZN7FD7nyjznxrpTM/k3uLnF2dji3Gx2IGCV5MgFhhuBNziW38q0
|
||||||
|
ekpYMiBimBRySbNH0wDv4Nknx449ll1eIoHYhZKieKNecG/5sH2eahTmvmyLbcKx
|
||||||
|
wvD5ksECgYEA5Lqjaqhv03GXKsQzZ9xRhIq9p38nGXOydC8F6N4XTBBE+lrQb8lZ
|
||||||
|
y/BPoV67IYeRMzDtxUcDk3gronrGPwSo+J0UNDO9f4+Y94TXO49ulaPugl6uqyU1
|
||||||
|
P4iJELpgvRUm9tGcAoOHVeF91M5LqPjfpRGiTNOoofDrBOLUZ+7xXJECgYEA1h9W
|
||||||
|
NCP6iim6UdoxQHz7KEwsqBL1XDpcz0R6EFe/2yGYeCc27+bqmupKfujdsCwQ1P3Y
|
||||||
|
54eciQGRNMXT1T9hUQQFX2UbLzq9BqgEQNSezePdGxj5wYJyelI5LYOwIRaHswAV
|
||||||
|
8drNfiQTCauM+hFwI7BXV4TUtLkL1WYQ248NCpsCgYB6XZMRe30f3JQn0AFEXizK
|
||||||
|
QMNHuZG8XxYobAO4WiCSk92jJjR+qXS90xl21kw8mt9GSLXbpas3GMIXUaF/k0mm
|
||||||
|
f7qQVuHZPYRzXwEanxhlO+dcnbTKYMSE8dGKPnuEjK1kvCy/d4hOnK0JzTfS9RoI
|
||||||
|
oE941H9R66Z/3a4O0FkV0QKBgDeUDLkd+aMxL5adbxlRF5QfKZw6x4s37u0x1gk1
|
||||||
|
7avAbaYKb70XkB/D3rBQW3KmDXxro4h9b8k0Ke+rxc9dUzJHO+nGAadhtLzskaYO
|
||||||
|
SmYg1jx5YCK1bGeJviOtQeNkyLZSuF99rscmL/bbm40xR41L8W/bH6cFPSgYBRoo
|
||||||
|
aHcvAoGAJPsgIyzyf6sq4op0C5A778YhKiCxUsRmAd9OZUUStfp4QBe8mN8WpcT+
|
||||||
|
v8wmO6xsV15L8YiEOeUy6wqYvz+GtGh2KqATjR7D5zmmPTSiAAJ8dHA21K5P+y5b
|
||||||
|
Gq8+0X1bmKa55NIjynKA7xOdPGDBQeulr8KiAvhgZeyZgQ/U83g=
|
||||||
|
-----END RSA PRIVATE KEY-----
|
||||||
61
httpd-cert/panman-translog.de_2025-03-28-14-45_40.crt
Normal file
61
httpd-cert/panman-translog.de_2025-03-28-14-45_40.crt
Normal file
@@ -0,0 +1,61 @@
|
|||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
MIIFGDCCBACgAwIBAgISBWAQrQ5CpP5IxWcAMn2JcvKQMA0GCSqGSIb3DQEBCwUA
|
||||||
|
MDMxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MQwwCgYDVQQD
|
||||||
|
EwNSMTAwHhcNMjUwNTI3MTI1MTQzWhcNMjUwODI1MTI1MTQyWjAdMRswGQYDVQQD
|
||||||
|
ExJwYW5tYW4tdHJhbnNsb2cuZGUwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK
|
||||||
|
AoIBAQDPUtJWU8GfYPbVTtNCAvH3iB49H4MjkwnPMNTSl0susy0x8GVHmDRIkf5I
|
||||||
|
+sNsr0FypxwQgZhv3Dnu4F4RQf+2h6sAflpAxtwUfiBm6GDhrM7yLuLs1sWNWEy/
|
||||||
|
EUXepUHs/X872Zs51aFrXTwr6NvUIiKIBvSnhvRughHRSwvjpStbFYLPKkfR/FVq
|
||||||
|
vCq3jmrzKoyc7iD1JzrDFWGWEYBu3hbQvzOwEbDMUoJvnl5q3Oc+9u3YNAFlIu4p
|
||||||
|
A4mLzBWihaoGl969ZvNXlk6DPzb2YnTwSU3y++0LCJzC9Sxg6MilOMy/8AMjEY0Z
|
||||||
|
Ww58sJ4DhoMDjN5zLYKNVaqOtHLjAgMBAAGjggI6MIICNjAOBgNVHQ8BAf8EBAMC
|
||||||
|
BaAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMAwGA1UdEwEB/wQCMAAw
|
||||||
|
HQYDVR0OBBYEFBOP9s5ZIRA1+DGJGEivFBYqZMGcMB8GA1UdIwQYMBaAFLu8w0el
|
||||||
|
5LypxsOkcgwQjaI14cjoMDMGCCsGAQUFBwEBBCcwJTAjBggrBgEFBQcwAoYXaHR0
|
||||||
|
cDovL3IxMC5pLmxlbmNyLm9yZy8wNQYDVR0RBC4wLIIScGFubWFuLXRyYW5zbG9n
|
||||||
|
LmRlghZ3d3cucGFubWFuLXRyYW5zbG9nLmRlMBMGA1UdIAQMMAowCAYGZ4EMAQIB
|
||||||
|
MC4GA1UdHwQnMCUwI6AhoB+GHWh0dHA6Ly9yMTAuYy5sZW5jci5vcmcvMTcuY3Js
|
||||||
|
MIIBBAYKKwYBBAHWeQIEAgSB9QSB8gDwAHYApELFBklgYVSPD9TqnPt6LSZFTYep
|
||||||
|
fy/fRVn2J086hFQAAAGXEgILyAAABAMARzBFAiEAik/Zmkx6yL/8snxiG6M9G6KN
|
||||||
|
9Evzb0MYdtnE7BXPX8YCIEAFxsjvLa3vFBqrpqe2NO2oAdXwpcQtw99F0nBPQAhC
|
||||||
|
AHYADeHyMCvTDcFAYhIJ6lUu/Ed0fLHX6TDvDkIetH5OqjQAAAGXEgITmQAABAMA
|
||||||
|
RzBFAiBviPacA9UiZjKeCbMyb4S6F1OPr3sSPYwLUnxZMMUuZgIhAPiZ0KW+CAwj
|
||||||
|
4/SBNy3ENRYBZquCnOzjWQMIkmx5QMQcMA0GCSqGSIb3DQEBCwUAA4IBAQA/fz3V
|
||||||
|
RUxuDAJziKoLCQpN7j5uFikYLxbekaYqStjcRKlHKO7s16L/9uQZu58R5rOzwBBz
|
||||||
|
xy3TWTsD3z/fW+ydRfc1f+juQYoywA32EcnBY8ErCMFkFg8D7qu+uP97tUYkzJ0T
|
||||||
|
mJOQabPu126pxdpJ2CvKceNc4OxABCdZJOin0xqnIUheJT7mFdlLzrLP7MBociHZ
|
||||||
|
hx2vtjaL3x7P9zbNO85gk4k4Aez3OyiJ7t5oAFpeyU5BG1rBT/T5WUEowiI5Mnrj
|
||||||
|
mWSvzp8dIzvU8FTMerGnqA2Jhh2EalYednokOpiP2yqM4en9W+USLFdcoWCVHBTP
|
||||||
|
TYZcPry/AbKitJT4
|
||||||
|
-----END CERTIFICATE-----
|
||||||
|
|
||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
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
|
||||||
|
-----END CERTIFICATE-----
|
||||||
|
|
||||||
27
httpd-cert/panman-translog.de_2025-03-28-14-45_40.key
Normal file
27
httpd-cert/panman-translog.de_2025-03-28-14-45_40.key
Normal file
@@ -0,0 +1,27 @@
|
|||||||
|
-----BEGIN RSA PRIVATE KEY-----
|
||||||
|
MIIEpAIBAAKCAQEAz1LSVlPBn2D21U7TQgLx94gePR+DI5MJzzDU0pdLLrMtMfBl
|
||||||
|
R5g0SJH+SPrDbK9BcqccEIGYb9w57uBeEUH/toerAH5aQMbcFH4gZuhg4azO8i7i
|
||||||
|
7NbFjVhMvxFF3qVB7P1/O9mbOdWha108K+jb1CIiiAb0p4b0boIR0UsL46UrWxWC
|
||||||
|
zypH0fxVarwqt45q8yqMnO4g9Sc6wxVhlhGAbt4W0L8zsBGwzFKCb55eatznPvbt
|
||||||
|
2DQBZSLuKQOJi8wVooWqBpfevWbzV5ZOgz829mJ08ElN8vvtCwicwvUsYOjIpTjM
|
||||||
|
v/ADIxGNGVsOfLCeA4aDA4zecy2CjVWqjrRy4wIDAQABAoIBABVadGuLyN9/fyzN
|
||||||
|
J5ke8IkMLgEho8IgPNxoLSNbjdTLg5YnKmdLV+c5kjU2Dra8/kKuz4crseWjixv9
|
||||||
|
Y/LnF01Xf9dXLDiLwtMhgnjW6lOUFuR+y8SVAlfihlUPlGCwKLAeE+K4MPKt/Cgw
|
||||||
|
vCfRngKlWWUlQkGW9soC/47M6faSNwYDu6qs1JSC4+KJNIrEaBRP14GvliauH7eh
|
||||||
|
+gad57HN3Pyb2A1y0C9g07lUS//eNZt5rilJCh+EIbdPqmm4kjtc5Ta3g6WDS5DG
|
||||||
|
izNovyTEj+VeHLJCudSpL1pte6zt8sQzPFX2M4SxqEOLjNbhLRXv88qNnwrKKzWj
|
||||||
|
vScQZrECgYEA5quXDkDRRX0FWYncTd+TLJgTrCL7mB4HCJ/W5w4rzCjxQ4L7kYLk
|
||||||
|
D7cB6LuV52oFgCBHAo0vUV3exEnl+474AFHMb4VDMMTQJ278eIEmX7KJ84IY7Xl+
|
||||||
|
yTMDwTsOG/YsX14c5JHzaGKiA76uCQyKZikaHCFKAfLIX00LL+qvcK8CgYEA5hbt
|
||||||
|
XN/yB9F1L7T9oa4mrLFpaRp7+/ksPcCSiRJnxz9EVBUSREx4417aTjmIEriL8zru
|
||||||
|
W+V7pU/sNFw39ifMk2Iz2+7B5Hg2RaXsSa8d+lO1vYH8ankOPbuJN+7gsEwHvmC/
|
||||||
|
Mhb7tshucDOehNpXXxos7Jdq7SxhkpviTe76Zg0CgYEAkMEnl0s3yLqvK8Rm2vut
|
||||||
|
2TNKTSDa8FgPo+riqrbq50DePrao9mTEh9QZv5pQdRvEfeZDiadeBVq6HEYfrCDJ
|
||||||
|
IzIx794aDzXDRqvQhjLOCQn6pjSDPiubU9nOxmkv7n4q1GI0EYBB1sTm1SDJCGa1
|
||||||
|
R20NtI9zaQuZkKzBk31cQYMCgYEAvddi5wNbVfoLP16M+i6PeGM0/uQ8Mg1H5HeU
|
||||||
|
MAaAm9Pmk52DIdka0Tb81hf/3rpntjsEWcxBNYd480a3YaE62Mvoz+jyD4jj9plN
|
||||||
|
GQqkqFsTE5ZBZrQU/PhT4lN1DeDdbsWyWyi9bPV4sZjVjPX9qtkVAex469F3fBik
|
||||||
|
IvsvnK0CgYBSM/W+A6x/PEYDad+IFbD1Zg0Tp0maUeGRXAtC3WhJeHmbEA8ww5+m
|
||||||
|
ESaUqjsclyKCeCX/QC3buNf23oJ1xrA/uV/StKbejMaO7FrNuOxJvmHIY6sL2vp5
|
||||||
|
GOCejZxWjNxowTfwC6z5s63in8Iwwo6W8ieDOEhyVkfzpSn3bBZ4Rw==
|
||||||
|
-----END RSA PRIVATE KEY-----
|
||||||
60
httpd-cert/panman-translog.de_panel.crt
Normal file
60
httpd-cert/panman-translog.de_panel.crt
Normal file
@@ -0,0 +1,60 @@
|
|||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
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
|
||||||
|
-----END CERTIFICATE-----
|
||||||
|
|
||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
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
|
||||||
|
-----END CERTIFICATE-----
|
||||||
|
|
||||||
27
httpd-cert/panman-translog.de_panel.key
Normal file
27
httpd-cert/panman-translog.de_panel.key
Normal file
@@ -0,0 +1,27 @@
|
|||||||
|
-----BEGIN RSA PRIVATE KEY-----
|
||||||
|
MIIEowIBAAKCAQEAtW08EKRzBQ3u1KkpIzo0FD8JidZPuGyPwqMNYyZ5m3Y4JewE
|
||||||
|
pHxrgWUvkCOgJ8SBlm3YrGfhE3e7D87Q8qLVjhYsjPmDlXCU/sRqAWY6tjpVrPx+
|
||||||
|
D8rf4uUy+nrJ1iOvtXJMNNIGpC3Tocf2Flp3ccCjgqSJ7dXhM+Mq1XiQz+habyKI
|
||||||
|
LfE1Fx96W//g5mO+LbqEwC8b2YDJmTqixv7APCfNP2ZyZnBMglC7fPE6MlxZuzmr
|
||||||
|
RfdnGDH9QYPR0lf++P8r5yXyZcn414KA5lvlWYLGFhuTl2i7ZbpopOlRVBb28guD
|
||||||
|
+ywOKdmD97OWAwv26KN8nxZOnfXNTB5U3ANd0wIDAQABAoIBAAFJiiCQGiTSCXzG
|
||||||
|
ynzuf8oY/GdW9u/XDVoTMBghAMHin9ldCFdmbpjXb/P03MELeuPnWZ83iXhK5C/j
|
||||||
|
hsYB88PzUlOZvZ5E0znPiPUDla0PUuZMUFSqWtZQTAFM97umOyvtaK8DQnrNvG+s
|
||||||
|
bImSEMDk3gQiSLxART3KAdbL6TMgbtwnVpKMlllx2ZmfZM5ELOlxhCJLEMMXrpBn
|
||||||
|
zvTHevmtxocqB6R3jBcPt4jQD23KIOVmkc9hIvBB6sl5Po/60WdJKufV19jEcHMQ
|
||||||
|
corEU/guMxZDaqScL6uyzHbY7Ep+qz2m+99lVUyj/3D4uL7AwxrRKO2wIUxSygza
|
||||||
|
0I7CeQkCgYEAzjDpIRiXXDWfohpuna96M0kcQR4uVuvpwOijhFDv5LM1GlQ4aUba
|
||||||
|
u0WIMoiNnYhbsuCbGxYd4LRpoytlMgZGNUbGBkVcQsRaU9XGIJjhMAgr41//aFff
|
||||||
|
4JzCngfP/XQ2+/gsBFnWpZN+5QwOa7SIp2RXK9uzO6hWyNJGAs1+VG8CgYEA4UDe
|
||||||
|
Kgkms/op76tGJ1MABDidZVIQtFMx7JB0PGrOlG2O8A/CPJmy/Vu4Pco4iXpZdh2H
|
||||||
|
Uxr1bWYQcqU9/CoAgp6j2I4bVzVfj0I0nDF5M6lVFjUBy3CgX4cyDxNAVvKdgsgz
|
||||||
|
cRtwjXzdmoh1bKkSh1pPwkH6esLscAbbZY9UJt0CgYBPUkmdTdSMyKRMvFZpmyQr
|
||||||
|
rqiL9IxnLAKVD+o38NsY5Eg9hMDe3z8uZCVtK1Mvk1GTkwyYcv2zgDRTbVJU2E0S
|
||||||
|
GdP8fZpspRUKw2ahC681xy77HecnwQaDZksIeIDvRFISxPpKAjWtJPzgKK8ziBQ6
|
||||||
|
MUPHv5FIFg6s2xfL5DoBSQKBgHhD+Ro6fpaTV7amHLO8RgL681Z4hYCx9rLWwajM
|
||||||
|
YfWvtSSJVWyjp4RMZ0deY+dLEt7Ujz8Y4rcBSoDbpweuqU0URGjIHuLmFVpYv9wx
|
||||||
|
MgQaQdq0fHvRa171wQ15et2xddWw7H5UZziz1WG/v+o/LyxjVLhkH8dRsYlyr8s+
|
||||||
|
xnBlAoGBAJcjPPo2xefktEZAI6tckDT839Jzeb1wMgVUohal9odMW9R9cQXzmt+d
|
||||||
|
E9NH/5SbxhjXRYNbPTdxsho72V08Y5g/hx575MhY2Whjvxy07Z860XoA/+LloSyC
|
||||||
|
oxFGUn7zCKp4IGpzQPQYIyIln4fdy1rbxtsRLpqWSpq6OQUTUH1W
|
||||||
|
-----END RSA PRIVATE KEY-----
|
||||||
1
postfix/dynamicmaps.cf
Normal file
1
postfix/dynamicmaps.cf
Normal file
@@ -0,0 +1 @@
|
|||||||
|
# dict-type so-name (pathname) dict-function mkmap-function
|
||||||
21
postfix/main.cf
Normal file
21
postfix/main.cf
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
# See /usr/share/postfix/main.cf.dist for a commented, more complete version
|
||||||
|
|
||||||
|
smtpd_banner = $myhostname ESMTP $mail_name (Debian/GNU)
|
||||||
|
biff = no
|
||||||
|
|
||||||
|
# appending .domain is the MUA's job.
|
||||||
|
append_dot_mydomain = no
|
||||||
|
|
||||||
|
# Uncomment the next line to generate "delayed mail" warnings
|
||||||
|
#delay_warning_time = 4h
|
||||||
|
|
||||||
|
alias_maps = hash:/etc/aliases
|
||||||
|
alias_database = hash:/etc/aliases
|
||||||
|
mydestination = $myhostname, localhost.$mydomain, localhost
|
||||||
|
relayhost =
|
||||||
|
mynetworks = 127.0.0.0/8
|
||||||
|
inet_interfaces = loopback-only
|
||||||
|
recipient_delimiter = +
|
||||||
|
|
||||||
|
compatibility_level = 2
|
||||||
|
|
||||||
693
postfix/main.cf.proto
Normal file
693
postfix/main.cf.proto
Normal file
@@ -0,0 +1,693 @@
|
|||||||
|
# Global Postfix configuration file. This file lists only a subset
|
||||||
|
# of all parameters. For the syntax, and for a complete parameter
|
||||||
|
# list, see the postconf(5) manual page (command: "man 5 postconf").
|
||||||
|
#
|
||||||
|
# TIP: use the command "postconf -n" to view main.cf parameter
|
||||||
|
# settings, "postconf parametername" to view a specific parameter,
|
||||||
|
# and "postconf 'parametername=value'" to set a specific parameter.
|
||||||
|
#
|
||||||
|
# For common configuration examples, see BASIC_CONFIGURATION_README
|
||||||
|
# and STANDARD_CONFIGURATION_README. To find these documents, use
|
||||||
|
# the command "postconf html_directory readme_directory", or go to
|
||||||
|
# http://www.postfix.org/BASIC_CONFIGURATION_README.html etc.
|
||||||
|
#
|
||||||
|
# For best results, change no more than 2-3 parameters at a time,
|
||||||
|
# and test if Postfix still works after every change.
|
||||||
|
|
||||||
|
# COMPATIBILITY
|
||||||
|
#
|
||||||
|
# The compatibility_level determines what default settings Postfix
|
||||||
|
# will use for main.cf and master.cf settings. These defaults will
|
||||||
|
# change over time.
|
||||||
|
#
|
||||||
|
# To avoid breaking things, Postfix will use backwards-compatible
|
||||||
|
# default settings and log where it uses those old backwards-compatible
|
||||||
|
# default settings, until the system administrator has determined
|
||||||
|
# if any backwards-compatible default settings need to be made
|
||||||
|
# permanent in main.cf or master.cf.
|
||||||
|
#
|
||||||
|
# When this review is complete, update the compatibility_level setting
|
||||||
|
# below as recommended in the RELEASE_NOTES file.
|
||||||
|
#
|
||||||
|
# The level below is what should be used with new (not upgrade) installs.
|
||||||
|
#
|
||||||
|
compatibility_level = 3.7
|
||||||
|
|
||||||
|
# SOFT BOUNCE
|
||||||
|
#
|
||||||
|
# The soft_bounce parameter provides a limited safety net for
|
||||||
|
# testing. When soft_bounce is enabled, mail will remain queued that
|
||||||
|
# would otherwise bounce. This parameter disables locally-generated
|
||||||
|
# bounces, and prevents the SMTP server from rejecting mail permanently
|
||||||
|
# (by changing 5xx replies into 4xx replies). However, soft_bounce
|
||||||
|
# is no cure for address rewriting mistakes or mail routing mistakes.
|
||||||
|
#
|
||||||
|
#soft_bounce = no
|
||||||
|
|
||||||
|
# LOCAL PATHNAME INFORMATION
|
||||||
|
#
|
||||||
|
# The queue_directory specifies the location of the Postfix queue.
|
||||||
|
# This is also the root directory of Postfix daemons that run chrooted.
|
||||||
|
# See the files in examples/chroot-setup for setting up Postfix chroot
|
||||||
|
# environments on different UNIX systems.
|
||||||
|
#
|
||||||
|
#queue_directory = /var/spool/postfix
|
||||||
|
|
||||||
|
# The command_directory parameter specifies the location of all
|
||||||
|
# postXXX commands.
|
||||||
|
#
|
||||||
|
command_directory = /usr/sbin
|
||||||
|
|
||||||
|
# The daemon_directory parameter specifies the location of all Postfix
|
||||||
|
# daemon programs (i.e. programs listed in the master.cf file). This
|
||||||
|
# directory must be owned by root.
|
||||||
|
#
|
||||||
|
daemon_directory = /usr/lib/postfix/sbin
|
||||||
|
|
||||||
|
# The data_directory parameter specifies the location of Postfix-writable
|
||||||
|
# data files (caches, random numbers). This directory must be owned
|
||||||
|
# by the mail_owner account (see below).
|
||||||
|
#
|
||||||
|
data_directory = /var/lib/postfix
|
||||||
|
|
||||||
|
# QUEUE AND PROCESS OWNERSHIP
|
||||||
|
#
|
||||||
|
# The mail_owner parameter specifies the owner of the Postfix queue
|
||||||
|
# and of most Postfix daemon processes. Specify the name of a user
|
||||||
|
# account THAT DOES NOT SHARE ITS USER OR GROUP ID WITH OTHER ACCOUNTS
|
||||||
|
# AND THAT OWNS NO OTHER FILES OR PROCESSES ON THE SYSTEM. In
|
||||||
|
# particular, don't specify nobody or daemon. PLEASE USE A DEDICATED
|
||||||
|
# USER.
|
||||||
|
#
|
||||||
|
#mail_owner = postfix
|
||||||
|
|
||||||
|
# The default_privs parameter specifies the default rights used by
|
||||||
|
# the local delivery agent for delivery to external file or command.
|
||||||
|
# These rights are used in the absence of a recipient user context.
|
||||||
|
# DO NOT SPECIFY A PRIVILEGED USER OR THE POSTFIX OWNER.
|
||||||
|
#
|
||||||
|
#default_privs = nobody
|
||||||
|
|
||||||
|
# INTERNET HOST AND DOMAIN NAMES
|
||||||
|
#
|
||||||
|
# The myhostname parameter specifies the internet hostname of this
|
||||||
|
# mail system. The default is to use the fully-qualified domain name
|
||||||
|
# from gethostname(). $myhostname is used as a default value for many
|
||||||
|
# other configuration parameters.
|
||||||
|
#
|
||||||
|
#myhostname = host.domain.tld
|
||||||
|
#myhostname = virtual.domain.tld
|
||||||
|
|
||||||
|
# The mydomain parameter specifies the local internet domain name.
|
||||||
|
# The default is to use $myhostname minus the first component.
|
||||||
|
# $mydomain is used as a default value for many other configuration
|
||||||
|
# parameters.
|
||||||
|
#
|
||||||
|
#mydomain = domain.tld
|
||||||
|
|
||||||
|
# SENDING MAIL
|
||||||
|
#
|
||||||
|
# The myorigin parameter specifies the domain that locally-posted
|
||||||
|
# mail appears to come from. The default is to append $myhostname,
|
||||||
|
# which is fine for small sites. If you run a domain with multiple
|
||||||
|
# machines, you should (1) change this to $mydomain and (2) set up
|
||||||
|
# a domain-wide alias database that aliases each user to
|
||||||
|
# user@that.users.mailhost.
|
||||||
|
#
|
||||||
|
# For the sake of consistency between sender and recipient addresses,
|
||||||
|
# myorigin also specifies the default domain name that is appended
|
||||||
|
# to recipient addresses that have no @domain part.
|
||||||
|
#
|
||||||
|
# Debian GNU/Linux specific: Specifying a file name will cause the
|
||||||
|
# first line of that file to be used as the name. The Debian default
|
||||||
|
# is /etc/mailname.
|
||||||
|
#
|
||||||
|
#myorigin = /etc/mailname
|
||||||
|
#myorigin = $myhostname
|
||||||
|
#myorigin = $mydomain
|
||||||
|
|
||||||
|
# RECEIVING MAIL
|
||||||
|
|
||||||
|
# The inet_interfaces parameter specifies the network interface
|
||||||
|
# addresses that this mail system receives mail on. By default,
|
||||||
|
# the software claims all active interfaces on the machine. The
|
||||||
|
# parameter also controls delivery of mail to user@[ip.address].
|
||||||
|
#
|
||||||
|
# See also the proxy_interfaces parameter, for network addresses that
|
||||||
|
# are forwarded to us via a proxy or network address translator.
|
||||||
|
#
|
||||||
|
# Note: you need to stop/start Postfix when this parameter changes.
|
||||||
|
#
|
||||||
|
#inet_interfaces = all
|
||||||
|
#inet_interfaces = $myhostname
|
||||||
|
#inet_interfaces = $myhostname, localhost
|
||||||
|
|
||||||
|
# The proxy_interfaces parameter specifies the network interface
|
||||||
|
# addresses that this mail system receives mail on by way of a
|
||||||
|
# proxy or network address translation unit. This setting extends
|
||||||
|
# the address list specified with the inet_interfaces parameter.
|
||||||
|
#
|
||||||
|
# You must specify your proxy/NAT addresses when your system is a
|
||||||
|
# backup MX host for other domains, otherwise mail delivery loops
|
||||||
|
# will happen when the primary MX host is down.
|
||||||
|
#
|
||||||
|
#proxy_interfaces =
|
||||||
|
#proxy_interfaces = 1.2.3.4
|
||||||
|
|
||||||
|
# The mydestination parameter specifies the list of domains that this
|
||||||
|
# machine considers itself the final destination for.
|
||||||
|
#
|
||||||
|
# These domains are routed to the delivery agent specified with the
|
||||||
|
# local_transport parameter setting. By default, that is the UNIX
|
||||||
|
# compatible delivery agent that lookups all recipients in /etc/passwd
|
||||||
|
# and /etc/aliases or their equivalent.
|
||||||
|
#
|
||||||
|
# The default is $myhostname + localhost.$mydomain + localhost. On
|
||||||
|
# a mail domain gateway, you should also include $mydomain.
|
||||||
|
#
|
||||||
|
# Do not specify the names of virtual domains - those domains are
|
||||||
|
# specified elsewhere (see VIRTUAL_README).
|
||||||
|
#
|
||||||
|
# Do not specify the names of domains that this machine is backup MX
|
||||||
|
# host for. Specify those names via the relay_domains settings for
|
||||||
|
# the SMTP server, or use permit_mx_backup if you are lazy (see
|
||||||
|
# STANDARD_CONFIGURATION_README).
|
||||||
|
#
|
||||||
|
# The local machine is always the final destination for mail addressed
|
||||||
|
# to user@[the.net.work.address] of an interface that the mail system
|
||||||
|
# receives mail on (see the inet_interfaces parameter).
|
||||||
|
#
|
||||||
|
# Specify a list of host or domain names, /file/name or type:table
|
||||||
|
# patterns, separated by commas and/or whitespace. A /file/name
|
||||||
|
# pattern is replaced by its contents; a type:table is matched when
|
||||||
|
# a name matches a lookup key (the right-hand side is ignored).
|
||||||
|
# Continue long lines by starting the next line with whitespace.
|
||||||
|
#
|
||||||
|
# See also below, section "REJECTING MAIL FOR UNKNOWN LOCAL USERS".
|
||||||
|
#
|
||||||
|
#mydestination = $myhostname, localhost.$mydomain, localhost
|
||||||
|
#mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
|
||||||
|
#mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain,
|
||||||
|
# mail.$mydomain, www.$mydomain, ftp.$mydomain
|
||||||
|
|
||||||
|
# REJECTING MAIL FOR UNKNOWN LOCAL USERS
|
||||||
|
#
|
||||||
|
# The local_recipient_maps parameter specifies optional lookup tables
|
||||||
|
# with all names or addresses of users that are local with respect
|
||||||
|
# to $mydestination, $inet_interfaces or $proxy_interfaces.
|
||||||
|
#
|
||||||
|
# If this parameter is defined, then the SMTP server will reject
|
||||||
|
# mail for unknown local users. This parameter is defined by default.
|
||||||
|
#
|
||||||
|
# To turn off local recipient checking in the SMTP server, specify
|
||||||
|
# local_recipient_maps = (i.e. empty).
|
||||||
|
#
|
||||||
|
# The default setting assumes that you use the default Postfix local
|
||||||
|
# delivery agent for local delivery. You need to update the
|
||||||
|
# local_recipient_maps setting if:
|
||||||
|
#
|
||||||
|
# - You define $mydestination domain recipients in files other than
|
||||||
|
# /etc/passwd, /etc/aliases, or the $virtual_alias_maps files.
|
||||||
|
# For example, you define $mydestination domain recipients in
|
||||||
|
# the $virtual_mailbox_maps files.
|
||||||
|
#
|
||||||
|
# - You redefine the local delivery agent in master.cf.
|
||||||
|
#
|
||||||
|
# - You redefine the "local_transport" setting in main.cf.
|
||||||
|
#
|
||||||
|
# - You use the "luser_relay", "mailbox_transport", or "fallback_transport"
|
||||||
|
# feature of the Postfix local delivery agent (see local(8)).
|
||||||
|
#
|
||||||
|
# Details are described in the LOCAL_RECIPIENT_README file.
|
||||||
|
#
|
||||||
|
# Beware: if the Postfix SMTP server runs chrooted, you probably have
|
||||||
|
# to access the passwd file via the proxymap service, in order to
|
||||||
|
# overcome chroot restrictions. The alternative, having a copy of
|
||||||
|
# the system passwd file in the chroot jail is just not practical.
|
||||||
|
#
|
||||||
|
# The right-hand side of the lookup tables is conveniently ignored.
|
||||||
|
# In the left-hand side, specify a bare username, an @domain.tld
|
||||||
|
# wild-card, or specify a user@domain.tld address.
|
||||||
|
#
|
||||||
|
#local_recipient_maps = unix:passwd.byname $alias_maps
|
||||||
|
#local_recipient_maps = proxy:unix:passwd.byname $alias_maps
|
||||||
|
#local_recipient_maps =
|
||||||
|
|
||||||
|
# The unknown_local_recipient_reject_code specifies the SMTP server
|
||||||
|
# response code when a recipient domain matches $mydestination or
|
||||||
|
# ${proxy,inet}_interfaces, while $local_recipient_maps is non-empty
|
||||||
|
# and the recipient address or address local-part is not found.
|
||||||
|
#
|
||||||
|
# The default setting is 550 (reject mail) but it is safer to start
|
||||||
|
# with 450 (try again later) until you are certain that your
|
||||||
|
# local_recipient_maps settings are OK.
|
||||||
|
#
|
||||||
|
unknown_local_recipient_reject_code = 550
|
||||||
|
|
||||||
|
# TRUST AND RELAY CONTROL
|
||||||
|
|
||||||
|
# The mynetworks parameter specifies the list of "trusted" SMTP
|
||||||
|
# clients that have more privileges than "strangers".
|
||||||
|
#
|
||||||
|
# In particular, "trusted" SMTP clients are allowed to relay mail
|
||||||
|
# through Postfix. See the smtpd_recipient_restrictions parameter
|
||||||
|
# in postconf(5).
|
||||||
|
#
|
||||||
|
# You can specify the list of "trusted" network addresses by hand
|
||||||
|
# or you can let Postfix do it for you (which is the default).
|
||||||
|
#
|
||||||
|
# By default (mynetworks_style = host), Postfix "trusts" only
|
||||||
|
# the local machine.
|
||||||
|
#
|
||||||
|
# Specify "mynetworks_style = subnet" when Postfix should "trust"
|
||||||
|
# SMTP clients in the same IP subnetworks as the local machine.
|
||||||
|
# On Linux, this works correctly only with interfaces specified
|
||||||
|
# with the "ifconfig" or "ip" command.
|
||||||
|
#
|
||||||
|
# Specify "mynetworks_style = class" when Postfix should "trust" SMTP
|
||||||
|
# clients in the same IP class A/B/C networks as the local machine.
|
||||||
|
# Don't do this with a dialup site - it would cause Postfix to "trust"
|
||||||
|
# your entire provider's network. Instead, specify an explicit
|
||||||
|
# mynetworks list by hand, as described below.
|
||||||
|
#
|
||||||
|
# Specify "mynetworks_style = host" when Postfix should "trust"
|
||||||
|
# only the local machine.
|
||||||
|
#
|
||||||
|
#mynetworks_style = class
|
||||||
|
#mynetworks_style = subnet
|
||||||
|
#mynetworks_style = host
|
||||||
|
|
||||||
|
# Alternatively, you can specify the mynetworks list by hand, in
|
||||||
|
# which case Postfix ignores the mynetworks_style setting.
|
||||||
|
#
|
||||||
|
# Specify an explicit list of network/netmask patterns, where the
|
||||||
|
# mask specifies the number of bits in the network part of a host
|
||||||
|
# address.
|
||||||
|
#
|
||||||
|
# You can also specify the absolute pathname of a pattern file instead
|
||||||
|
# of listing the patterns here. Specify type:table for table-based lookups
|
||||||
|
# (the value on the table right-hand side is not used).
|
||||||
|
#
|
||||||
|
#mynetworks = 168.100.3.0/28, 127.0.0.0/8
|
||||||
|
#mynetworks = $config_directory/mynetworks
|
||||||
|
#mynetworks = hash:/etc/postfix/network_table
|
||||||
|
mynetworks = 127.0.0.0/8
|
||||||
|
|
||||||
|
# The relay_domains parameter restricts what destinations this system will
|
||||||
|
# relay mail to. See the smtpd_relay_restrictions and
|
||||||
|
# smtpd_recipient_restrictions descriptions in postconf(5) for detailed
|
||||||
|
# information.
|
||||||
|
#
|
||||||
|
# By default, Postfix relays mail
|
||||||
|
# - from "trusted" clients (IP address matches $mynetworks, or is
|
||||||
|
# SASL authenticated) to any destination,
|
||||||
|
# - from "untrusted" clients to destinations that match $relay_domains or
|
||||||
|
# subdomains thereof, except addresses with sender-specified routing.
|
||||||
|
# The default relay_domains value is empty.
|
||||||
|
#
|
||||||
|
# In addition to the above, the Postfix SMTP server by default accepts mail
|
||||||
|
# that Postfix is final destination for:
|
||||||
|
# - destinations that match $inet_interfaces or $proxy_interfaces,
|
||||||
|
# - destinations that match $mydestination
|
||||||
|
# - destinations that match $virtual_alias_domains,
|
||||||
|
# - destinations that match $virtual_mailbox_domains.
|
||||||
|
# These destinations do not need to be listed in $relay_domains.
|
||||||
|
#
|
||||||
|
# Specify a list of hosts or domains, /file/name patterns or type:name
|
||||||
|
# lookup tables, separated by commas and/or whitespace. Continue
|
||||||
|
# long lines by starting the next line with whitespace. A file name
|
||||||
|
# is replaced by its contents; a type:name table is matched when a
|
||||||
|
# (parent) domain appears as lookup key.
|
||||||
|
#
|
||||||
|
# NOTE: Postfix will not automatically forward mail for domains that
|
||||||
|
# list this system as their primary or backup MX host. See the
|
||||||
|
# permit_mx_backup restriction description in postconf(5).
|
||||||
|
#
|
||||||
|
#relay_domains =
|
||||||
|
|
||||||
|
# INTERNET OR INTRANET
|
||||||
|
|
||||||
|
# The relayhost parameter specifies the default host to send mail to
|
||||||
|
# when no entry is matched in the optional transport(5) table. When
|
||||||
|
# no relayhost is given, mail is routed directly to the destination.
|
||||||
|
#
|
||||||
|
# On an intranet, specify the organizational domain name. If your
|
||||||
|
# internal DNS uses no MX records, specify the name of the intranet
|
||||||
|
# gateway host instead.
|
||||||
|
#
|
||||||
|
# In the case of SMTP, specify a domain, host, host:port, [host]:port,
|
||||||
|
# [address] or [address]:port; the form [host] turns off MX lookups.
|
||||||
|
#
|
||||||
|
# If you're connected via UUCP, see also the default_transport parameter.
|
||||||
|
#
|
||||||
|
#relayhost = $mydomain
|
||||||
|
#relayhost = [gateway.my.domain]
|
||||||
|
#relayhost = [mailserver.isp.tld]
|
||||||
|
#relayhost = uucphost
|
||||||
|
#relayhost = [an.ip.add.ress]
|
||||||
|
|
||||||
|
# REJECTING UNKNOWN RELAY USERS
|
||||||
|
#
|
||||||
|
# The relay_recipient_maps parameter specifies optional lookup tables
|
||||||
|
# with all addresses in the domains that match $relay_domains.
|
||||||
|
#
|
||||||
|
# If this parameter is defined, then the SMTP server will reject
|
||||||
|
# mail for unknown relay users. This feature is off by default.
|
||||||
|
#
|
||||||
|
# The right-hand side of the lookup tables is conveniently ignored.
|
||||||
|
# In the left-hand side, specify an @domain.tld wild-card, or specify
|
||||||
|
# a user@domain.tld address.
|
||||||
|
#
|
||||||
|
#relay_recipient_maps = hash:/etc/postfix/relay_recipients
|
||||||
|
|
||||||
|
# INPUT RATE CONTROL
|
||||||
|
#
|
||||||
|
# The in_flow_delay configuration parameter implements mail input
|
||||||
|
# flow control. This feature is turned on by default, although it
|
||||||
|
# still needs further development (it's disabled on SCO UNIX due
|
||||||
|
# to an SCO bug).
|
||||||
|
#
|
||||||
|
# A Postfix process will pause for $in_flow_delay seconds before
|
||||||
|
# accepting a new message, when the message arrival rate exceeds the
|
||||||
|
# message delivery rate. With the default 100 SMTP server process
|
||||||
|
# limit, this limits the mail inflow to 100 messages a second more
|
||||||
|
# than the number of messages delivered per second.
|
||||||
|
#
|
||||||
|
# Specify 0 to disable the feature. Valid delays are 0..10.
|
||||||
|
#
|
||||||
|
#in_flow_delay = 1s
|
||||||
|
|
||||||
|
# ADDRESS REWRITING
|
||||||
|
#
|
||||||
|
# The ADDRESS_REWRITING_README document gives information about
|
||||||
|
# address masquerading or other forms of address rewriting including
|
||||||
|
# username->Firstname.Lastname mapping.
|
||||||
|
|
||||||
|
# ADDRESS REDIRECTION (VIRTUAL DOMAIN)
|
||||||
|
#
|
||||||
|
# The VIRTUAL_README document gives information about the many forms
|
||||||
|
# of domain hosting that Postfix supports.
|
||||||
|
|
||||||
|
# "USER HAS MOVED" BOUNCE MESSAGES
|
||||||
|
#
|
||||||
|
# See the discussion in the ADDRESS_REWRITING_README document.
|
||||||
|
|
||||||
|
# TRANSPORT MAP
|
||||||
|
#
|
||||||
|
# See the discussion in the ADDRESS_REWRITING_README document.
|
||||||
|
|
||||||
|
# ALIAS DATABASE
|
||||||
|
#
|
||||||
|
# The alias_maps parameter specifies the list of alias databases used
|
||||||
|
# by the local delivery agent. The default list is system dependent.
|
||||||
|
#
|
||||||
|
# On systems with NIS, the default is to search the local alias
|
||||||
|
# database, then the NIS alias database. See aliases(5) for syntax
|
||||||
|
# details.
|
||||||
|
#
|
||||||
|
# If you change the alias database, run "postalias /etc/aliases" (or
|
||||||
|
# wherever your system stores the mail alias file), or simply run
|
||||||
|
# "newaliases" to build the necessary DBM or DB file.
|
||||||
|
#
|
||||||
|
# It will take a minute or so before changes become visible. Use
|
||||||
|
# "postfix reload" to eliminate the delay.
|
||||||
|
#
|
||||||
|
#alias_maps = dbm:/etc/aliases
|
||||||
|
#alias_maps = hash:/etc/aliases
|
||||||
|
#alias_maps = hash:/etc/aliases, nis:mail.aliases
|
||||||
|
#alias_maps = netinfo:/aliases
|
||||||
|
|
||||||
|
# The alias_database parameter specifies the alias database(s) that
|
||||||
|
# are built with "newaliases" or "sendmail -bi". This is a separate
|
||||||
|
# configuration parameter, because alias_maps (see above) may specify
|
||||||
|
# tables that are not necessarily all under control by Postfix.
|
||||||
|
#
|
||||||
|
#alias_database = dbm:/etc/aliases
|
||||||
|
#alias_database = dbm:/etc/mail/aliases
|
||||||
|
#alias_database = hash:/etc/aliases
|
||||||
|
#alias_database = hash:/etc/aliases, hash:/opt/majordomo/aliases
|
||||||
|
|
||||||
|
# ADDRESS EXTENSIONS (e.g., user+foo)
|
||||||
|
#
|
||||||
|
# The recipient_delimiter parameter specifies the separator between
|
||||||
|
# user names and address extensions (user+foo). See canonical(5),
|
||||||
|
# local(8), relocated(5) and virtual(5) for the effects this has on
|
||||||
|
# aliases, canonical, virtual, relocated and .forward file lookups.
|
||||||
|
# Basically, the software tries user+foo and .forward+foo before
|
||||||
|
# trying user and .forward.
|
||||||
|
#
|
||||||
|
#recipient_delimiter = +
|
||||||
|
|
||||||
|
# DELIVERY TO MAILBOX
|
||||||
|
#
|
||||||
|
# The home_mailbox parameter specifies the optional pathname of a
|
||||||
|
# mailbox file relative to a user's home directory. The default
|
||||||
|
# mailbox file is /var/spool/mail/user or /var/mail/user. Specify
|
||||||
|
# "Maildir/" for qmail-style delivery (the / is required).
|
||||||
|
#
|
||||||
|
#home_mailbox = Mailbox
|
||||||
|
#home_mailbox = Maildir/
|
||||||
|
|
||||||
|
# The mail_spool_directory parameter specifies the directory where
|
||||||
|
# UNIX-style mailboxes are kept. The default setting depends on the
|
||||||
|
# system type.
|
||||||
|
#
|
||||||
|
#mail_spool_directory = /var/mail
|
||||||
|
#mail_spool_directory = /var/spool/mail
|
||||||
|
|
||||||
|
# The mailbox_command parameter specifies the optional external
|
||||||
|
# command to use instead of mailbox delivery. The command is run as
|
||||||
|
# the recipient with proper HOME, SHELL and LOGNAME environment settings.
|
||||||
|
# Exception: delivery for root is done as $default_user.
|
||||||
|
#
|
||||||
|
# Other environment variables of interest: USER (recipient username),
|
||||||
|
# EXTENSION (address extension), DOMAIN (domain part of address),
|
||||||
|
# and LOCAL (the address localpart).
|
||||||
|
#
|
||||||
|
# Unlike other Postfix configuration parameters, the mailbox_command
|
||||||
|
# parameter is not subjected to $parameter substitutions. This is to
|
||||||
|
# make it easier to specify shell syntax (see example below).
|
||||||
|
#
|
||||||
|
# Avoid shell meta characters because they will force Postfix to run
|
||||||
|
# an expensive shell process. Procmail alone is expensive enough.
|
||||||
|
#
|
||||||
|
# IF YOU USE THIS TO DELIVER MAIL SYSTEM-WIDE, YOU MUST SET UP AN
|
||||||
|
# ALIAS THAT FORWARDS MAIL FOR ROOT TO A REAL USER.
|
||||||
|
#
|
||||||
|
#mailbox_command = /usr/bin/procmail
|
||||||
|
#mailbox_command = /usr/bin/procmail -a "$EXTENSION"
|
||||||
|
|
||||||
|
# The mailbox_transport specifies the optional transport in master.cf
|
||||||
|
# to use after processing aliases and .forward files. This parameter
|
||||||
|
# has precedence over the mailbox_command, fallback_transport and
|
||||||
|
# luser_relay parameters.
|
||||||
|
#
|
||||||
|
# Specify a string of the form transport:nexthop, where transport is
|
||||||
|
# the name of a mail delivery transport defined in master.cf. The
|
||||||
|
# :nexthop part is optional. For more details see the sample transport
|
||||||
|
# configuration file.
|
||||||
|
#
|
||||||
|
# NOTE: if you use this feature for accounts not in the UNIX password
|
||||||
|
# file, then you must update the "local_recipient_maps" setting in
|
||||||
|
# the main.cf file, otherwise the SMTP server will reject mail for
|
||||||
|
# non-UNIX accounts with "User unknown in local recipient table".
|
||||||
|
#
|
||||||
|
# Cyrus IMAP over LMTP. Specify ``lmtpunix cmd="lmtpd"
|
||||||
|
# listen="/var/imap/socket/lmtp" prefork=0'' in cyrus.conf.
|
||||||
|
#mailbox_transport = lmtp:unix:/var/imap/socket/lmtp
|
||||||
|
#
|
||||||
|
# Cyrus IMAP via command line. Uncomment the "cyrus...pipe" and
|
||||||
|
# subsequent line in master.cf.
|
||||||
|
#mailbox_transport = cyrus
|
||||||
|
|
||||||
|
# The fallback_transport specifies the optional transport in master.cf
|
||||||
|
# to use for recipients that are not found in the UNIX passwd database.
|
||||||
|
# This parameter has precedence over the luser_relay parameter.
|
||||||
|
#
|
||||||
|
# Specify a string of the form transport:nexthop, where transport is
|
||||||
|
# the name of a mail delivery transport defined in master.cf. The
|
||||||
|
# :nexthop part is optional. For more details see the sample transport
|
||||||
|
# configuration file.
|
||||||
|
#
|
||||||
|
# NOTE: if you use this feature for accounts not in the UNIX password
|
||||||
|
# file, then you must update the "local_recipient_maps" setting in
|
||||||
|
# the main.cf file, otherwise the SMTP server will reject mail for
|
||||||
|
# non-UNIX accounts with "User unknown in local recipient table".
|
||||||
|
#
|
||||||
|
#fallback_transport = lmtp:unix:/file/name
|
||||||
|
#fallback_transport = cyrus
|
||||||
|
#fallback_transport =
|
||||||
|
|
||||||
|
# The luser_relay parameter specifies an optional destination address
|
||||||
|
# for unknown recipients. By default, mail for unknown@$mydestination,
|
||||||
|
# unknown@[$inet_interfaces] or unknown@[$proxy_interfaces] is returned
|
||||||
|
# as undeliverable.
|
||||||
|
#
|
||||||
|
# The following expansions are done on luser_relay: $user (recipient
|
||||||
|
# username), $shell (recipient shell), $home (recipient home directory),
|
||||||
|
# $recipient (full recipient address), $extension (recipient address
|
||||||
|
# extension), $domain (recipient domain), $local (entire recipient
|
||||||
|
# localpart), $recipient_delimiter. Specify ${name?value} or
|
||||||
|
# ${name:value} to expand value only when $name does (does not) exist.
|
||||||
|
#
|
||||||
|
# luser_relay works only for the default Postfix local delivery agent.
|
||||||
|
#
|
||||||
|
# NOTE: if you use this feature for accounts not in the UNIX password
|
||||||
|
# file, then you must specify "local_recipient_maps =" (i.e. empty) in
|
||||||
|
# the main.cf file, otherwise the SMTP server will reject mail for
|
||||||
|
# non-UNIX accounts with "User unknown in local recipient table".
|
||||||
|
#
|
||||||
|
#luser_relay = $user@other.host
|
||||||
|
#luser_relay = $local@other.host
|
||||||
|
#luser_relay = admin+$local
|
||||||
|
|
||||||
|
# JUNK MAIL CONTROLS
|
||||||
|
#
|
||||||
|
# The controls listed here are only a very small subset. The file
|
||||||
|
# SMTPD_ACCESS_README provides an overview.
|
||||||
|
|
||||||
|
# The header_checks parameter specifies an optional table with patterns
|
||||||
|
# that each logical message header is matched against, including
|
||||||
|
# headers that span multiple physical lines.
|
||||||
|
#
|
||||||
|
# By default, these patterns also apply to MIME headers and to the
|
||||||
|
# headers of attached messages. With older Postfix versions, MIME and
|
||||||
|
# attached message headers were treated as body text.
|
||||||
|
#
|
||||||
|
# For details, see "man header_checks".
|
||||||
|
#
|
||||||
|
#header_checks = regexp:/etc/postfix/header_checks
|
||||||
|
|
||||||
|
# FAST ETRN SERVICE
|
||||||
|
#
|
||||||
|
# Postfix maintains per-destination logfiles with information about
|
||||||
|
# deferred mail, so that mail can be flushed quickly with the SMTP
|
||||||
|
# "ETRN domain.tld" command, or by executing "sendmail -qRdomain.tld".
|
||||||
|
# See the ETRN_README document for a detailed description.
|
||||||
|
#
|
||||||
|
# The fast_flush_domains parameter controls what destinations are
|
||||||
|
# eligible for this service. By default, they are all domains that
|
||||||
|
# this server is willing to relay mail to.
|
||||||
|
#
|
||||||
|
#fast_flush_domains = $relay_domains
|
||||||
|
|
||||||
|
# SHOW SOFTWARE VERSION OR NOT
|
||||||
|
#
|
||||||
|
# The smtpd_banner parameter specifies the text that follows the 220
|
||||||
|
# code in the SMTP server's greeting banner. Some people like to see
|
||||||
|
# the mail version advertised. By default, Postfix shows no version.
|
||||||
|
#
|
||||||
|
# You MUST specify $myhostname at the start of the text. That is an
|
||||||
|
# RFC requirement. Postfix itself does not care.
|
||||||
|
#
|
||||||
|
#smtpd_banner = $myhostname ESMTP $mail_name
|
||||||
|
#smtpd_banner = $myhostname ESMTP $mail_name ($mail_version)
|
||||||
|
smtpd_banner = $myhostname ESMTP $mail_name (Debian/GNU)
|
||||||
|
|
||||||
|
|
||||||
|
# PARALLEL DELIVERY TO THE SAME DESTINATION
|
||||||
|
#
|
||||||
|
# How many parallel deliveries to the same user or domain? With local
|
||||||
|
# delivery, it does not make sense to do massively parallel delivery
|
||||||
|
# to the same user, because mailbox updates must happen sequentially,
|
||||||
|
# and expensive pipelines in .forward files can cause disasters when
|
||||||
|
# too many are run at the same time. With SMTP deliveries, 10
|
||||||
|
# simultaneous connections to the same domain could be sufficient to
|
||||||
|
# raise eyebrows.
|
||||||
|
#
|
||||||
|
# Each message delivery transport has its XXX_destination_concurrency_limit
|
||||||
|
# parameter. The default is $default_destination_concurrency_limit for
|
||||||
|
# most delivery transports. For the local delivery agent the default is 2.
|
||||||
|
|
||||||
|
#local_destination_concurrency_limit = 2
|
||||||
|
#default_destination_concurrency_limit = 20
|
||||||
|
|
||||||
|
# DEBUGGING CONTROL
|
||||||
|
#
|
||||||
|
# The debug_peer_level parameter specifies the increment in verbose
|
||||||
|
# logging level when an SMTP client or server host name or address
|
||||||
|
# matches a pattern in the debug_peer_list parameter.
|
||||||
|
#
|
||||||
|
#debug_peer_level = 2
|
||||||
|
|
||||||
|
# The debug_peer_list parameter specifies an optional list of domain
|
||||||
|
# or network patterns, /file/name patterns or type:name tables. When
|
||||||
|
# an SMTP client or server host name or address matches a pattern,
|
||||||
|
# increase the verbose logging level by the amount specified in the
|
||||||
|
# debug_peer_level parameter.
|
||||||
|
#
|
||||||
|
#debug_peer_list = 127.0.0.1
|
||||||
|
#debug_peer_list = some.domain
|
||||||
|
|
||||||
|
# The debugger_command specifies the external command that is executed
|
||||||
|
# when a Postfix daemon program is run with the -D option.
|
||||||
|
#
|
||||||
|
# Use "command .. & sleep 5" so that the debugger can attach before
|
||||||
|
# the process marches on. If you use an X-based debugger, be sure to
|
||||||
|
# set up your XAUTHORITY environment variable before starting Postfix.
|
||||||
|
#
|
||||||
|
debugger_command =
|
||||||
|
PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin
|
||||||
|
ddd $daemon_directory/$process_name $process_id & sleep 5
|
||||||
|
|
||||||
|
# If you can't use X, use this to capture the call stack when a
|
||||||
|
# daemon crashes. The result is in a file in the configuration
|
||||||
|
# directory, and is named after the process name and the process ID.
|
||||||
|
#
|
||||||
|
# debugger_command =
|
||||||
|
# PATH=/bin:/usr/bin:/usr/local/bin; export PATH; (echo cont;
|
||||||
|
# echo where) | gdb $daemon_directory/$process_name $process_id 2>&1
|
||||||
|
# >$config_directory/$process_name.$process_id.log & sleep 5
|
||||||
|
#
|
||||||
|
# Another possibility is to run gdb under a detached screen session.
|
||||||
|
# To attach to the screen session, su root and run "screen -r
|
||||||
|
# <id_string>" where <id_string> uniquely matches one of the detached
|
||||||
|
# sessions (from "screen -list").
|
||||||
|
#
|
||||||
|
# debugger_command =
|
||||||
|
# PATH=/bin:/usr/bin:/sbin:/usr/sbin; export PATH; screen
|
||||||
|
# -dmS $process_name gdb $daemon_directory/$process_name
|
||||||
|
# $process_id & sleep 1
|
||||||
|
|
||||||
|
# INSTALL-TIME CONFIGURATION INFORMATION
|
||||||
|
#
|
||||||
|
# The following parameters are used when installing a new Postfix version.
|
||||||
|
#
|
||||||
|
# sendmail_path: The full pathname of the Postfix sendmail command.
|
||||||
|
# This is the Sendmail-compatible mail posting interface.
|
||||||
|
#
|
||||||
|
sendmail_path =
|
||||||
|
|
||||||
|
# newaliases_path: The full pathname of the Postfix newaliases command.
|
||||||
|
# This is the Sendmail-compatible command to build alias databases.
|
||||||
|
#
|
||||||
|
newaliases_path =
|
||||||
|
|
||||||
|
# mailq_path: The full pathname of the Postfix mailq command. This
|
||||||
|
# is the Sendmail-compatible mail queue listing command.
|
||||||
|
#
|
||||||
|
mailq_path =
|
||||||
|
|
||||||
|
# setgid_group: The group for mail submission and queue management
|
||||||
|
# commands. This must be a group name with a numerical group ID that
|
||||||
|
# is not shared with other accounts, not even with the Postfix account.
|
||||||
|
#
|
||||||
|
setgid_group =
|
||||||
|
|
||||||
|
# html_directory: The location of the Postfix HTML documentation.
|
||||||
|
#
|
||||||
|
html_directory =
|
||||||
|
|
||||||
|
# manpage_directory: The location of the Postfix on-line manual pages.
|
||||||
|
#
|
||||||
|
manpage_directory =
|
||||||
|
|
||||||
|
# sample_directory: The location of the Postfix sample configuration files.
|
||||||
|
# This parameter is obsolete as of Postfix 2.1.
|
||||||
|
#
|
||||||
|
sample_directory =
|
||||||
|
|
||||||
|
# readme_directory: The location of the Postfix README files.
|
||||||
|
#
|
||||||
|
readme_directory =
|
||||||
|
inet_protocols = ipv4
|
||||||
1
postfix/makedefs.out
Symbolic link
1
postfix/makedefs.out
Symbolic link
@@ -0,0 +1 @@
|
|||||||
|
/usr/share/postfix/makedefs.out
|
||||||
137
postfix/master.cf
Normal file
137
postfix/master.cf
Normal file
@@ -0,0 +1,137 @@
|
|||||||
|
#
|
||||||
|
# Postfix master process configuration file. For details on the format
|
||||||
|
# of the file, see the master(5) manual page (command: "man 5 master" or
|
||||||
|
# on-line: http://www.postfix.org/master.5.html).
|
||||||
|
#
|
||||||
|
# Do not forget to execute "postfix reload" after editing this file.
|
||||||
|
#
|
||||||
|
# ==========================================================================
|
||||||
|
# service type private unpriv chroot wakeup maxproc command + args
|
||||||
|
# (yes) (yes) (no) (never) (100)
|
||||||
|
# ==========================================================================
|
||||||
|
smtp inet n - y - - smtpd
|
||||||
|
#smtp inet n - y - 1 postscreen
|
||||||
|
#smtpd pass - - y - - smtpd
|
||||||
|
#dnsblog unix - - y - 0 dnsblog
|
||||||
|
#tlsproxy unix - - y - 0 tlsproxy
|
||||||
|
# Choose one: enable submission for loopback clients only, or for any client.
|
||||||
|
#127.0.0.1:submission inet n - y - - smtpd
|
||||||
|
#submission inet n - y - - smtpd
|
||||||
|
# -o syslog_name=postfix/submission
|
||||||
|
# -o smtpd_tls_security_level=encrypt
|
||||||
|
# -o smtpd_sasl_auth_enable=yes
|
||||||
|
# -o smtpd_tls_auth_only=yes
|
||||||
|
# -o smtpd_reject_unlisted_recipient=no
|
||||||
|
# Instead of specifying complex smtpd_<xxx>_restrictions here,
|
||||||
|
# specify "smtpd_<xxx>_restrictions=$mua_<xxx>_restrictions"
|
||||||
|
# here, and specify mua_<xxx>_restrictions in main.cf (where
|
||||||
|
# "<xxx>" is "client", "helo", "sender", "relay", or "recipient").
|
||||||
|
# -o smtpd_client_restrictions=
|
||||||
|
# -o smtpd_helo_restrictions=
|
||||||
|
# -o smtpd_sender_restrictions=
|
||||||
|
# -o smtpd_relay_restrictions=
|
||||||
|
# -o smtpd_recipient_restrictions=permit_sasl_authenticated,reject
|
||||||
|
# -o milter_macro_daemon_name=ORIGINATING
|
||||||
|
# Choose one: enable submissions for loopback clients only, or for any client.
|
||||||
|
#127.0.0.1:submissions inet n - y - - smtpd
|
||||||
|
#submissions inet n - y - - smtpd
|
||||||
|
# -o syslog_name=postfix/submissions
|
||||||
|
# -o smtpd_tls_wrappermode=yes
|
||||||
|
# -o smtpd_sasl_auth_enable=yes
|
||||||
|
# -o smtpd_reject_unlisted_recipient=no
|
||||||
|
# Instead of specifying complex smtpd_<xxx>_restrictions here,
|
||||||
|
# specify "smtpd_<xxx>_restrictions=$mua_<xxx>_restrictions"
|
||||||
|
# here, and specify mua_<xxx>_restrictions in main.cf (where
|
||||||
|
# "<xxx>" is "client", "helo", "sender", "relay", or "recipient").
|
||||||
|
# -o smtpd_client_restrictions=
|
||||||
|
# -o smtpd_helo_restrictions=
|
||||||
|
# -o smtpd_sender_restrictions=
|
||||||
|
# -o smtpd_relay_restrictions=
|
||||||
|
# -o smtpd_recipient_restrictions=permit_sasl_authenticated,reject
|
||||||
|
# -o milter_macro_daemon_name=ORIGINATING
|
||||||
|
#628 inet n - y - - qmqpd
|
||||||
|
pickup unix n - y 60 1 pickup
|
||||||
|
cleanup unix n - y - 0 cleanup
|
||||||
|
qmgr unix n - n 300 1 qmgr
|
||||||
|
#qmgr unix n - n 300 1 oqmgr
|
||||||
|
tlsmgr unix - - y 1000? 1 tlsmgr
|
||||||
|
rewrite unix - - y - - trivial-rewrite
|
||||||
|
bounce unix - - y - 0 bounce
|
||||||
|
defer unix - - y - 0 bounce
|
||||||
|
trace unix - - y - 0 bounce
|
||||||
|
verify unix - - y - 1 verify
|
||||||
|
flush unix n - y 1000? 0 flush
|
||||||
|
proxymap unix - - n - - proxymap
|
||||||
|
proxywrite unix - - n - 1 proxymap
|
||||||
|
smtp unix - - y - - smtp
|
||||||
|
relay unix - - y - - smtp
|
||||||
|
-o syslog_name=postfix/$service_name
|
||||||
|
# -o smtp_helo_timeout=5 -o smtp_connect_timeout=5
|
||||||
|
showq unix n - y - - showq
|
||||||
|
error unix - - y - - error
|
||||||
|
retry unix - - y - - error
|
||||||
|
discard unix - - y - - discard
|
||||||
|
local unix - n n - - local
|
||||||
|
virtual unix - n n - - virtual
|
||||||
|
lmtp unix - - y - - lmtp
|
||||||
|
anvil unix - - y - 1 anvil
|
||||||
|
scache unix - - y - 1 scache
|
||||||
|
postlog unix-dgram n - n - 1 postlogd
|
||||||
|
#
|
||||||
|
# ====================================================================
|
||||||
|
# Interfaces to non-Postfix software. Be sure to examine the manual
|
||||||
|
# pages of the non-Postfix software to find out what options it wants.
|
||||||
|
#
|
||||||
|
# Many of the following services use the Postfix pipe(8) delivery
|
||||||
|
# agent. See the pipe(8) man page for information about ${recipient}
|
||||||
|
# and other message envelope options.
|
||||||
|
# ====================================================================
|
||||||
|
#
|
||||||
|
# maildrop. See the Postfix MAILDROP_README file for details.
|
||||||
|
# Also specify in main.cf: maildrop_destination_recipient_limit=1
|
||||||
|
#
|
||||||
|
maildrop unix - n n - - pipe
|
||||||
|
flags=DRXhu user=vmail argv=/usr/bin/maildrop -d ${recipient}
|
||||||
|
#
|
||||||
|
# ====================================================================
|
||||||
|
#
|
||||||
|
# Recent Cyrus versions can use the existing "lmtp" master.cf entry.
|
||||||
|
#
|
||||||
|
# Specify in cyrus.conf:
|
||||||
|
# lmtp cmd="lmtpd -a" listen="localhost:lmtp" proto=tcp4
|
||||||
|
#
|
||||||
|
# Specify in main.cf one or more of the following:
|
||||||
|
# mailbox_transport = lmtp:inet:localhost
|
||||||
|
# virtual_transport = lmtp:inet:localhost
|
||||||
|
#
|
||||||
|
# ====================================================================
|
||||||
|
#
|
||||||
|
# Cyrus 2.1.5 (Amos Gouaux)
|
||||||
|
# Also specify in main.cf: cyrus_destination_recipient_limit=1
|
||||||
|
#
|
||||||
|
#cyrus unix - n n - - pipe
|
||||||
|
# flags=DRX user=cyrus argv=/cyrus/bin/deliver -e -r ${sender} -m ${extension} ${user}
|
||||||
|
#
|
||||||
|
# ====================================================================
|
||||||
|
# Old example of delivery via Cyrus.
|
||||||
|
#
|
||||||
|
#old-cyrus unix - n n - - pipe
|
||||||
|
# flags=R user=cyrus argv=/cyrus/bin/deliver -e -m ${extension} ${user}
|
||||||
|
#
|
||||||
|
# ====================================================================
|
||||||
|
#
|
||||||
|
# See the Postfix UUCP_README file for configuration details.
|
||||||
|
#
|
||||||
|
uucp unix - n n - - pipe
|
||||||
|
flags=Fqhu user=uucp argv=uux -r -n -z -a$sender - $nexthop!rmail ($recipient)
|
||||||
|
#
|
||||||
|
# Other external delivery methods.
|
||||||
|
#
|
||||||
|
ifmail unix - n n - - pipe
|
||||||
|
flags=F user=ftn argv=/usr/lib/ifmail/ifmail -r $nexthop ($recipient)
|
||||||
|
bsmtp unix - n n - - pipe
|
||||||
|
flags=Fq. user=bsmtp argv=/usr/lib/bsmtp/bsmtp -t$nexthop -f$sender $recipient
|
||||||
|
scalemail-backend unix - n n - 2 pipe
|
||||||
|
flags=R user=scalemail argv=/usr/lib/scalemail/bin/scalemail-store ${nexthop} ${user} ${extension}
|
||||||
|
mailman unix - n n - - pipe
|
||||||
|
flags=FRX user=list argv=/usr/lib/mailman/bin/postfix-to-mailman.py ${nexthop} ${user}
|
||||||
137
postfix/master.cf.proto
Normal file
137
postfix/master.cf.proto
Normal file
@@ -0,0 +1,137 @@
|
|||||||
|
#
|
||||||
|
# Postfix master process configuration file. For details on the format
|
||||||
|
# of the file, see the master(5) manual page (command: "man 5 master" or
|
||||||
|
# on-line: http://www.postfix.org/master.5.html).
|
||||||
|
#
|
||||||
|
# Do not forget to execute "postfix reload" after editing this file.
|
||||||
|
#
|
||||||
|
# ==========================================================================
|
||||||
|
# service type private unpriv chroot wakeup maxproc command + args
|
||||||
|
# (yes) (yes) (no) (never) (100)
|
||||||
|
# ==========================================================================
|
||||||
|
smtp inet n - y - - smtpd
|
||||||
|
#smtp inet n - y - 1 postscreen
|
||||||
|
#smtpd pass - - y - - smtpd
|
||||||
|
#dnsblog unix - - y - 0 dnsblog
|
||||||
|
#tlsproxy unix - - y - 0 tlsproxy
|
||||||
|
# Choose one: enable submission for loopback clients only, or for any client.
|
||||||
|
#127.0.0.1:submission inet n - y - - smtpd
|
||||||
|
#submission inet n - y - - smtpd
|
||||||
|
# -o syslog_name=postfix/submission
|
||||||
|
# -o smtpd_tls_security_level=encrypt
|
||||||
|
# -o smtpd_sasl_auth_enable=yes
|
||||||
|
# -o smtpd_tls_auth_only=yes
|
||||||
|
# -o smtpd_reject_unlisted_recipient=no
|
||||||
|
# Instead of specifying complex smtpd_<xxx>_restrictions here,
|
||||||
|
# specify "smtpd_<xxx>_restrictions=$mua_<xxx>_restrictions"
|
||||||
|
# here, and specify mua_<xxx>_restrictions in main.cf (where
|
||||||
|
# "<xxx>" is "client", "helo", "sender", "relay", or "recipient").
|
||||||
|
# -o smtpd_client_restrictions=
|
||||||
|
# -o smtpd_helo_restrictions=
|
||||||
|
# -o smtpd_sender_restrictions=
|
||||||
|
# -o smtpd_relay_restrictions=
|
||||||
|
# -o smtpd_recipient_restrictions=permit_sasl_authenticated,reject
|
||||||
|
# -o milter_macro_daemon_name=ORIGINATING
|
||||||
|
# Choose one: enable submissions for loopback clients only, or for any client.
|
||||||
|
#127.0.0.1:submissions inet n - y - - smtpd
|
||||||
|
#submissions inet n - y - - smtpd
|
||||||
|
# -o syslog_name=postfix/submissions
|
||||||
|
# -o smtpd_tls_wrappermode=yes
|
||||||
|
# -o smtpd_sasl_auth_enable=yes
|
||||||
|
# -o smtpd_reject_unlisted_recipient=no
|
||||||
|
# Instead of specifying complex smtpd_<xxx>_restrictions here,
|
||||||
|
# specify "smtpd_<xxx>_restrictions=$mua_<xxx>_restrictions"
|
||||||
|
# here, and specify mua_<xxx>_restrictions in main.cf (where
|
||||||
|
# "<xxx>" is "client", "helo", "sender", "relay", or "recipient").
|
||||||
|
# -o smtpd_client_restrictions=
|
||||||
|
# -o smtpd_helo_restrictions=
|
||||||
|
# -o smtpd_sender_restrictions=
|
||||||
|
# -o smtpd_relay_restrictions=
|
||||||
|
# -o smtpd_recipient_restrictions=permit_sasl_authenticated,reject
|
||||||
|
# -o milter_macro_daemon_name=ORIGINATING
|
||||||
|
#628 inet n - y - - qmqpd
|
||||||
|
pickup unix n - y 60 1 pickup
|
||||||
|
cleanup unix n - y - 0 cleanup
|
||||||
|
qmgr unix n - n 300 1 qmgr
|
||||||
|
#qmgr unix n - n 300 1 oqmgr
|
||||||
|
tlsmgr unix - - y 1000? 1 tlsmgr
|
||||||
|
rewrite unix - - y - - trivial-rewrite
|
||||||
|
bounce unix - - y - 0 bounce
|
||||||
|
defer unix - - y - 0 bounce
|
||||||
|
trace unix - - y - 0 bounce
|
||||||
|
verify unix - - y - 1 verify
|
||||||
|
flush unix n - y 1000? 0 flush
|
||||||
|
proxymap unix - - n - - proxymap
|
||||||
|
proxywrite unix - - n - 1 proxymap
|
||||||
|
smtp unix - - y - - smtp
|
||||||
|
relay unix - - y - - smtp
|
||||||
|
-o syslog_name=postfix/$service_name
|
||||||
|
# -o smtp_helo_timeout=5 -o smtp_connect_timeout=5
|
||||||
|
showq unix n - y - - showq
|
||||||
|
error unix - - y - - error
|
||||||
|
retry unix - - y - - error
|
||||||
|
discard unix - - y - - discard
|
||||||
|
local unix - n n - - local
|
||||||
|
virtual unix - n n - - virtual
|
||||||
|
lmtp unix - - y - - lmtp
|
||||||
|
anvil unix - - y - 1 anvil
|
||||||
|
scache unix - - y - 1 scache
|
||||||
|
postlog unix-dgram n - n - 1 postlogd
|
||||||
|
#
|
||||||
|
# ====================================================================
|
||||||
|
# Interfaces to non-Postfix software. Be sure to examine the manual
|
||||||
|
# pages of the non-Postfix software to find out what options it wants.
|
||||||
|
#
|
||||||
|
# Many of the following services use the Postfix pipe(8) delivery
|
||||||
|
# agent. See the pipe(8) man page for information about ${recipient}
|
||||||
|
# and other message envelope options.
|
||||||
|
# ====================================================================
|
||||||
|
#
|
||||||
|
# maildrop. See the Postfix MAILDROP_README file for details.
|
||||||
|
# Also specify in main.cf: maildrop_destination_recipient_limit=1
|
||||||
|
#
|
||||||
|
maildrop unix - n n - - pipe
|
||||||
|
flags=DRXhu user=vmail argv=/usr/bin/maildrop -d ${recipient}
|
||||||
|
#
|
||||||
|
# ====================================================================
|
||||||
|
#
|
||||||
|
# Recent Cyrus versions can use the existing "lmtp" master.cf entry.
|
||||||
|
#
|
||||||
|
# Specify in cyrus.conf:
|
||||||
|
# lmtp cmd="lmtpd -a" listen="localhost:lmtp" proto=tcp4
|
||||||
|
#
|
||||||
|
# Specify in main.cf one or more of the following:
|
||||||
|
# mailbox_transport = lmtp:inet:localhost
|
||||||
|
# virtual_transport = lmtp:inet:localhost
|
||||||
|
#
|
||||||
|
# ====================================================================
|
||||||
|
#
|
||||||
|
# Cyrus 2.1.5 (Amos Gouaux)
|
||||||
|
# Also specify in main.cf: cyrus_destination_recipient_limit=1
|
||||||
|
#
|
||||||
|
#cyrus unix - n n - - pipe
|
||||||
|
# flags=DRX user=cyrus argv=/cyrus/bin/deliver -e -r ${sender} -m ${extension} ${user}
|
||||||
|
#
|
||||||
|
# ====================================================================
|
||||||
|
# Old example of delivery via Cyrus.
|
||||||
|
#
|
||||||
|
#old-cyrus unix - n n - - pipe
|
||||||
|
# flags=R user=cyrus argv=/cyrus/bin/deliver -e -m ${extension} ${user}
|
||||||
|
#
|
||||||
|
# ====================================================================
|
||||||
|
#
|
||||||
|
# See the Postfix UUCP_README file for configuration details.
|
||||||
|
#
|
||||||
|
uucp unix - n n - - pipe
|
||||||
|
flags=Fqhu user=uucp argv=uux -r -n -z -a$sender - $nexthop!rmail ($recipient)
|
||||||
|
#
|
||||||
|
# Other external delivery methods.
|
||||||
|
#
|
||||||
|
ifmail unix - n n - - pipe
|
||||||
|
flags=F user=ftn argv=/usr/lib/ifmail/ifmail -r $nexthop ($recipient)
|
||||||
|
bsmtp unix - n n - - pipe
|
||||||
|
flags=Fq. user=bsmtp argv=/usr/lib/bsmtp/bsmtp -t$nexthop -f$sender $recipient
|
||||||
|
scalemail-backend unix - n n - 2 pipe
|
||||||
|
flags=R user=scalemail argv=/usr/lib/scalemail/bin/scalemail-store ${nexthop} ${user} ${extension}
|
||||||
|
mailman unix - n n - - pipe
|
||||||
|
flags=FRX user=list argv=/usr/lib/mailman/bin/postfix-to-mailman.py ${nexthop} ${user}
|
||||||
925
postfix/post-install
Executable file
925
postfix/post-install
Executable file
@@ -0,0 +1,925 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
# To view the formatted manual page of this file, type:
|
||||||
|
# POSTFIXSOURCE/mantools/srctoman - post-install | nroff -man
|
||||||
|
|
||||||
|
#++
|
||||||
|
# NAME
|
||||||
|
# post-install
|
||||||
|
# SUMMARY
|
||||||
|
# Postfix post-installation script
|
||||||
|
# SYNOPSIS
|
||||||
|
# postfix post-install [name=value] command ...
|
||||||
|
# DESCRIPTION
|
||||||
|
# The post-install script performs the finishing touch of a Postfix
|
||||||
|
# installation, after the executable programs and configuration
|
||||||
|
# files are installed. Usage is one of the following:
|
||||||
|
# .IP o
|
||||||
|
# While installing Postfix from source code on the local machine, the
|
||||||
|
# script is run by the postfix-install script to update selected file
|
||||||
|
# or directory permissions and to update Postfix configuration files.
|
||||||
|
# .IP o
|
||||||
|
# While installing Postfix from a pre-built package, the script is run
|
||||||
|
# by the package management procedure to set all file or directory
|
||||||
|
# permissions and to update Postfix configuration files.
|
||||||
|
# .IP o
|
||||||
|
# The script can be used to change installation parameter settings such
|
||||||
|
# as mail_owner or setgid_group after Postfix is already installed.
|
||||||
|
# .IP o
|
||||||
|
# The script can be used to upgrade configuration files and to upgrade
|
||||||
|
# file/directory permissions of a secondary Postfix instance.
|
||||||
|
# .IP o
|
||||||
|
# At Postfix start-up time, the script is run from "postfix check" to
|
||||||
|
# create missing queue directories.
|
||||||
|
# .PP
|
||||||
|
# The post-install script is controlled by installation parameters.
|
||||||
|
# Specific parameters are described at the end of this document.
|
||||||
|
# All installation parameters must be specified ahead of time via
|
||||||
|
# one of the methods described below.
|
||||||
|
#
|
||||||
|
# Arguments
|
||||||
|
# .IP create-missing
|
||||||
|
# Create missing queue directories with ownerships and permissions
|
||||||
|
# according to the contents of $meta_directory/postfix-files
|
||||||
|
# and optionally in $meta_directory/postfix-files.d/*, using
|
||||||
|
# the mail_owner and setgid_group parameter settings from the
|
||||||
|
# command line, process environment or from the installed
|
||||||
|
# main.cf file.
|
||||||
|
#
|
||||||
|
# This is required at Postfix start-up time.
|
||||||
|
# .IP set-permissions
|
||||||
|
# Set all file/directory ownerships and permissions according to the
|
||||||
|
# contents of $meta_directory/postfix-files and optionally
|
||||||
|
# in $meta_directory/postfix-files.d/*, using the mail_owner
|
||||||
|
# and setgid_group parameter settings from the command line,
|
||||||
|
# process environment or from the installed main.cf file.
|
||||||
|
# Implies create-missing.
|
||||||
|
#
|
||||||
|
# This is required when installing Postfix from a pre-built package,
|
||||||
|
# or when changing the mail_owner or setgid_group installation parameter
|
||||||
|
# settings after Postfix is already installed.
|
||||||
|
# .IP upgrade-permissions
|
||||||
|
# Update ownership and permission of existing files/directories as
|
||||||
|
# specified in $meta_directory/postfix-files and optionally
|
||||||
|
# in $meta_directory/postfix-files.d/*, using the mail_owner
|
||||||
|
# and setgid_group parameter settings from the command line,
|
||||||
|
# process environment or from the installed main.cf file.
|
||||||
|
# Implies create-missing.
|
||||||
|
#
|
||||||
|
# This is required when upgrading an existing Postfix instance.
|
||||||
|
# .IP upgrade-configuration
|
||||||
|
# Edit the installed main.cf and master.cf files, in order to account
|
||||||
|
# for missing services and to fix deprecated parameter settings.
|
||||||
|
#
|
||||||
|
# This is required when upgrading an existing Postfix instance.
|
||||||
|
# .IP upgrade-source
|
||||||
|
# Short-hand for: upgrade-permissions upgrade-configuration.
|
||||||
|
#
|
||||||
|
# This is recommended when upgrading Postfix from source code.
|
||||||
|
# .IP upgrade-package
|
||||||
|
# Short-hand for: set-permissions upgrade-configuration.
|
||||||
|
#
|
||||||
|
# This is recommended when upgrading Postfix from a pre-built package.
|
||||||
|
# .IP first-install-reminder
|
||||||
|
# Remind the user that they still need to configure main.cf and the
|
||||||
|
# aliases file, and that newaliases still needs to be run.
|
||||||
|
#
|
||||||
|
# This is recommended when Postfix is installed for the first time.
|
||||||
|
# MULTIPLE POSTFIX INSTANCES
|
||||||
|
# .ad
|
||||||
|
# .fi
|
||||||
|
# Multiple Postfix instances on the same machine can share command and
|
||||||
|
# daemon program files but must have separate configuration and queue
|
||||||
|
# directories.
|
||||||
|
#
|
||||||
|
# To create a secondary Postfix installation on the same machine,
|
||||||
|
# copy the configuration files from the primary Postfix instance to
|
||||||
|
# a secondary configuration directory and execute:
|
||||||
|
#
|
||||||
|
# postfix post-install config_directory=secondary-config-directory \e
|
||||||
|
# .in +4
|
||||||
|
# queue_directory=secondary-queue-directory \e
|
||||||
|
# .br
|
||||||
|
# create-missing
|
||||||
|
# .PP
|
||||||
|
# This creates secondary Postfix queue directories, sets their access
|
||||||
|
# permissions, and saves the specified installation parameters to the
|
||||||
|
# secondary main.cf file.
|
||||||
|
#
|
||||||
|
# Be sure to list the secondary configuration directory in the
|
||||||
|
# alternate_config_directories parameter in the primary main.cf file.
|
||||||
|
#
|
||||||
|
# To upgrade a secondary Postfix installation on the same machine,
|
||||||
|
# execute:
|
||||||
|
#
|
||||||
|
# postfix post-install config_directory=secondary-config-directory \e
|
||||||
|
# .in +4
|
||||||
|
# upgrade-permissions upgrade-configuration
|
||||||
|
# INSTALLATION PARAMETER INPUT METHODS
|
||||||
|
# .ad
|
||||||
|
# .fi
|
||||||
|
# Parameter settings can be specified through a variety of
|
||||||
|
# mechanisms. In order of decreasing precedence these are:
|
||||||
|
# .IP "command line"
|
||||||
|
# Parameter settings can be given as name=value arguments on
|
||||||
|
# the post-install command line. These have the highest precedence.
|
||||||
|
# Settings that override the installed main.cf file are saved.
|
||||||
|
# .IP "process environment"
|
||||||
|
# Parameter settings can be given as name=value environment
|
||||||
|
# variables.
|
||||||
|
# Settings that override the installed main.cf file are saved.
|
||||||
|
# .IP "installed configuration files"
|
||||||
|
# If a parameter is not specified via the command line or via the
|
||||||
|
# process environment, post-install will attempt to extract its
|
||||||
|
# value from the already installed Postfix main.cf configuration file.
|
||||||
|
# These settings have the lowest precedence.
|
||||||
|
# INSTALLATION PARAMETER DESCRIPTION
|
||||||
|
# .ad
|
||||||
|
# .fi
|
||||||
|
# The description of installation parameters is as follows:
|
||||||
|
# .IP config_directory
|
||||||
|
# The directory for Postfix configuration files.
|
||||||
|
# .IP daemon_directory
|
||||||
|
# The directory for Postfix daemon programs. This directory
|
||||||
|
# should not be in the command search path of any users.
|
||||||
|
# .IP command_directory
|
||||||
|
# The directory for Postfix administrative commands. This
|
||||||
|
# directory should be in the command search path of administrative users.
|
||||||
|
# .IP queue_directory
|
||||||
|
# The directory for Postfix queues.
|
||||||
|
# .IP data_directory
|
||||||
|
# The directory for Postfix writable data files (caches, etc.).
|
||||||
|
# .IP sendmail_path
|
||||||
|
# The full pathname for the Postfix sendmail command.
|
||||||
|
# This is the Sendmail-compatible mail posting interface.
|
||||||
|
# .IP newaliases_path
|
||||||
|
# The full pathname for the Postfix newaliases command.
|
||||||
|
# This is the Sendmail-compatible command to build alias databases
|
||||||
|
# for the Postfix local delivery agent.
|
||||||
|
# .IP mailq_path
|
||||||
|
# The full pathname for the Postfix mailq command.
|
||||||
|
# This is the Sendmail-compatible command to list the mail queue.
|
||||||
|
# .IP mail_owner
|
||||||
|
# The owner of the Postfix queue. Its numerical user ID and group ID
|
||||||
|
# must not be used by any other accounts on the system.
|
||||||
|
# .IP setgid_group
|
||||||
|
# The group for mail submission and for queue management commands.
|
||||||
|
# Its numerical group ID must not be used by any other accounts on the
|
||||||
|
# system, not even by the mail_owner account.
|
||||||
|
# .IP html_directory
|
||||||
|
# The directory for the Postfix HTML files.
|
||||||
|
# .IP manpage_directory
|
||||||
|
# The directory for the Postfix on-line manual pages.
|
||||||
|
# .IP sample_directory
|
||||||
|
# The directory for the Postfix sample configuration files.
|
||||||
|
# This feature is obsolete as of Postfix 2.1.
|
||||||
|
# .IP readme_directory
|
||||||
|
# The directory for the Postfix README files.
|
||||||
|
# .IP shlib_directory
|
||||||
|
# The directory for the Postfix shared-library files, and for
|
||||||
|
# the Postfix dabatase plugin files with a relative pathname
|
||||||
|
# in the file dynamicmaps.cf.
|
||||||
|
# .IP meta_directory
|
||||||
|
# The directory for non-executable files that are shared
|
||||||
|
# among multiple Postfix instances, such as postfix-files,
|
||||||
|
# dynamicmaps.cf, as well as the multi-instance template files
|
||||||
|
# main.cf.proto and master.cf.proto.
|
||||||
|
# SEE ALSO
|
||||||
|
# postfix-install(1) Postfix primary installation script.
|
||||||
|
# FILES
|
||||||
|
# $config_directory/main.cf, Postfix installation parameters.
|
||||||
|
# $meta_directory/postfix-files, installation control file.
|
||||||
|
# $meta_directory/postfix-files.d/*, optional control files.
|
||||||
|
# $config_directory/install.cf, obsolete configuration file.
|
||||||
|
# LICENSE
|
||||||
|
# .ad
|
||||||
|
# .fi
|
||||||
|
# The Secure Mailer license must be distributed with this software.
|
||||||
|
# AUTHOR(S)
|
||||||
|
# Wietse Venema
|
||||||
|
# IBM T.J. Watson Research
|
||||||
|
# P.O. Box 704
|
||||||
|
# Yorktown Heights, NY 10598, USA
|
||||||
|
#
|
||||||
|
# Wietse Venema
|
||||||
|
# Google, Inc.
|
||||||
|
# 111 8th Avenue
|
||||||
|
# New York, NY 10011, USA
|
||||||
|
#--
|
||||||
|
|
||||||
|
umask 022
|
||||||
|
|
||||||
|
PATH=/bin:/usr/bin:/usr/sbin:/usr/etc:/sbin:/etc:/usr/contrib/bin:/usr/gnu/bin:/usr/ucb:/usr/bsd
|
||||||
|
SHELL=/bin/sh
|
||||||
|
IFS="
|
||||||
|
"
|
||||||
|
BACKUP_IFS="$IFS"
|
||||||
|
debug=:
|
||||||
|
#debug=echo
|
||||||
|
MOST_PARAMETERS="command_directory daemon_directory data_directory
|
||||||
|
html_directory mail_owner mailq_path manpage_directory
|
||||||
|
newaliases_path queue_directory readme_directory sample_directory
|
||||||
|
sendmail_path setgid_group shlib_directory meta_directory"
|
||||||
|
NON_SHARED="config_directory queue_directory data_directory"
|
||||||
|
|
||||||
|
USAGE="Usage: $0 [name=value] command
|
||||||
|
create-missing Create missing queue directories.
|
||||||
|
upgrade-source When installing or upgrading from source code.
|
||||||
|
upgrade-package When installing or upgrading from pre-built package.
|
||||||
|
first-install-reminder Remind of mandatory first-time configuration steps.
|
||||||
|
name=value Specify an installation parameter".
|
||||||
|
|
||||||
|
# Process command-line options and parameter settings. Work around
|
||||||
|
# brain damaged shells. "IFS=value command" should not make the
|
||||||
|
# IFS=value setting permanent. But some broken standard allows it.
|
||||||
|
|
||||||
|
create=; set_perms=; upgrade_perms=; upgrade_conf=; first_install_reminder=
|
||||||
|
obsolete=; keep_list=;
|
||||||
|
|
||||||
|
for arg
|
||||||
|
do
|
||||||
|
case $arg in
|
||||||
|
*[" "]*) echo $0: "Error: argument contains whitespace: '$arg'"
|
||||||
|
exit 1;;
|
||||||
|
*=*) IFS= eval $arg; IFS="$BACKUP_IFS";;
|
||||||
|
create-missing) create=1;;
|
||||||
|
set-perm*) create=1; set_perms=1;;
|
||||||
|
upgrade-perm*) create=1; upgrade_perms=1;;
|
||||||
|
upgrade-conf*) upgrade_conf=1;;
|
||||||
|
upgrade-source) create=1; upgrade_conf=1; upgrade_perms=1;;
|
||||||
|
upgrade-package) create=1; upgrade_conf=1; set_perms=1;;
|
||||||
|
first-install*) first_install_reminder=1;;
|
||||||
|
*) echo "$0: Error: $USAGE" 1>&2; exit 1;;
|
||||||
|
esac
|
||||||
|
shift
|
||||||
|
done
|
||||||
|
|
||||||
|
# Sanity checks.
|
||||||
|
|
||||||
|
test -n "$create$upgrade_conf$first_install_reminder" || {
|
||||||
|
echo "$0: Error: $USAGE" 1>&2
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
|
||||||
|
# Bootstrapping problem.
|
||||||
|
|
||||||
|
if [ -n "$command_directory" ]
|
||||||
|
then
|
||||||
|
POSTCONF="$command_directory/postconf"
|
||||||
|
else
|
||||||
|
POSTCONF="postconf"
|
||||||
|
fi
|
||||||
|
|
||||||
|
$POSTCONF -d mail_version >/dev/null 2>/dev/null || {
|
||||||
|
echo $0: Error: no $POSTCONF command found. 1>&2
|
||||||
|
echo Re-run this command as $0 command_directory=/some/where. 1>&2
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
|
||||||
|
# Also used to require license etc. files only in the default instance.
|
||||||
|
|
||||||
|
def_config_directory=`$POSTCONF -d -h config_directory` || exit 1
|
||||||
|
test -n "$config_directory" ||
|
||||||
|
config_directory="$def_config_directory"
|
||||||
|
|
||||||
|
test -d "$config_directory" || {
|
||||||
|
echo $0: Error: $config_directory is not a directory. 1>&2
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
|
||||||
|
# If this is a secondary instance, don't touch shared files.
|
||||||
|
# XXX Solaris does not have "test -e".
|
||||||
|
|
||||||
|
instances=`test ! -f $def_config_directory/main.cf ||
|
||||||
|
$POSTCONF -c $def_config_directory -h multi_instance_directories |
|
||||||
|
sed 's/,/ /'` || exit 1
|
||||||
|
|
||||||
|
update_shared_files=1
|
||||||
|
for name in $instances
|
||||||
|
do
|
||||||
|
case "$name" in
|
||||||
|
"$def_config_directory") ;;
|
||||||
|
"$config_directory") update_shared_files=; break;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
|
||||||
|
test -f $meta_directory/postfix-files || {
|
||||||
|
echo $0: Error: $meta_directory/postfix-files is not a file. 1>&2
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
|
||||||
|
# SunOS5 fmt(1) truncates lines > 1000 characters.
|
||||||
|
|
||||||
|
fake_fmt() {
|
||||||
|
sed '
|
||||||
|
:top
|
||||||
|
/^\( *\)\([^ ][^ ]*\) */{
|
||||||
|
s//\1\2\
|
||||||
|
\1/
|
||||||
|
P
|
||||||
|
D
|
||||||
|
b top
|
||||||
|
}
|
||||||
|
' | fmt
|
||||||
|
}
|
||||||
|
|
||||||
|
case `uname -s` in
|
||||||
|
HP-UX*) FMT=cat;;
|
||||||
|
SunOS*) FMT=fake_fmt;;
|
||||||
|
*) FMT=fmt;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
# If a parameter is not set via the command line or environment,
|
||||||
|
# try to use settings from installed configuration files.
|
||||||
|
|
||||||
|
# Extract parameter settings from the obsolete install.cf file, as
|
||||||
|
# a transitional aid.
|
||||||
|
|
||||||
|
grep setgid_group $config_directory/main.cf >/dev/null 2>&1 || {
|
||||||
|
test -f $config_directory/install.cf && {
|
||||||
|
for name in sendmail_path newaliases_path mailq_path setgid manpages
|
||||||
|
do
|
||||||
|
eval junk=\$$name
|
||||||
|
case "$junk" in
|
||||||
|
"") eval unset $name;;
|
||||||
|
esac
|
||||||
|
eval : \${$name="\`. $config_directory/install.cf; echo \$$name\`"} \
|
||||||
|
|| exit 1
|
||||||
|
done
|
||||||
|
: ${setgid_group=$setgid}
|
||||||
|
: ${manpage_directory=$manpages}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
# Extract parameter settings from the installed main.cf file.
|
||||||
|
|
||||||
|
test -f $config_directory/main.cf && {
|
||||||
|
for name in $MOST_PARAMETERS
|
||||||
|
do
|
||||||
|
eval junk=\$$name
|
||||||
|
case "$junk" in
|
||||||
|
"") eval unset $name;;
|
||||||
|
esac
|
||||||
|
eval : \${$name=\`$POSTCONF -c $config_directory -h $name\`} || exit 1
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
# Sanity checks
|
||||||
|
|
||||||
|
case $manpage_directory in
|
||||||
|
no) echo $0: Error: manpage_directory no longer accepts \"no\" values. 1>&2
|
||||||
|
echo Try again with \"$0 manpage_directory=/pathname ...\". 1>&2; exit 1;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
case $setgid_group in
|
||||||
|
no) echo $0: Error: setgid_group no longer accepts \"no\" values. 1>&2
|
||||||
|
echo Try again with \"$0 setgid_group=groupname ...\" 1>&2; exit 1;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
for path in "$daemon_directory" "$command_directory" "$queue_directory" \
|
||||||
|
"$sendmail_path" "$newaliases_path" "$mailq_path" "$manpage_directory" \
|
||||||
|
"$meta_directory"
|
||||||
|
do
|
||||||
|
case "$path" in
|
||||||
|
/*) ;;
|
||||||
|
*) echo $0: Error: \"$path\" should be an absolute path name. 1>&2; exit 1;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
|
||||||
|
for path in "$html_directory" "$readme_directory" "$shlib_directory"
|
||||||
|
do
|
||||||
|
case "$path" in
|
||||||
|
/*) ;;
|
||||||
|
no) ;;
|
||||||
|
*) echo $0: Error: \"$path\" should be \"no\" or an absolute path name. 1>&2; exit 1;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
|
||||||
|
# Find out what parameters were not specified via command line,
|
||||||
|
# via environment, or via installed configuration files.
|
||||||
|
|
||||||
|
missing=
|
||||||
|
for name in $MOST_PARAMETERS
|
||||||
|
do
|
||||||
|
eval test -n \"\$$name\" || missing="$missing $name"
|
||||||
|
done
|
||||||
|
|
||||||
|
# All parameters must be specified at this point.
|
||||||
|
|
||||||
|
test -n "$non_interactive" -a -n "$missing" && {
|
||||||
|
cat <<EOF | ${FMT} 1>&2
|
||||||
|
$0: Error: some required installation parameters are not defined.
|
||||||
|
|
||||||
|
- Either the parameters need to be given in the $config_directory/main.cf
|
||||||
|
file from a recent Postfix installation,
|
||||||
|
|
||||||
|
- Or the parameters need to be specified through the process
|
||||||
|
environment.
|
||||||
|
|
||||||
|
- Or the parameters need to be specified as name=value arguments
|
||||||
|
on the $0 command line,
|
||||||
|
|
||||||
|
The following parameters were missing:
|
||||||
|
|
||||||
|
$missing
|
||||||
|
|
||||||
|
EOF
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
|
||||||
|
POSTCONF="$command_directory/postconf"
|
||||||
|
|
||||||
|
# Save settings, allowing command line/environment override.
|
||||||
|
|
||||||
|
# Undo MAIL_VERSION expansion at the end of a parameter value. If
|
||||||
|
# someone really wants the expanded mail version in main.cf, then
|
||||||
|
# we're sorry.
|
||||||
|
|
||||||
|
# Confine side effects from mail_version unexpansion within a subshell.
|
||||||
|
|
||||||
|
(case "$mail_version" in
|
||||||
|
"") mail_version="`$POSTCONF -dhx mail_version`" || exit 1
|
||||||
|
esac
|
||||||
|
|
||||||
|
for name in $MOST_PARAMETERS
|
||||||
|
do
|
||||||
|
eval junk=\$$name
|
||||||
|
case "$junk" in
|
||||||
|
*"$mail_version"*)
|
||||||
|
case "$pattern" in
|
||||||
|
"") pattern=`echo "$mail_version" | sed 's/\./\\\\./g'` || exit 1
|
||||||
|
esac
|
||||||
|
val=`echo "$junk" | sed "s/$pattern"'$/${mail_version}/g'` || exit 1
|
||||||
|
eval ${name}='"$val"'
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
|
||||||
|
# XXX Maybe update main.cf only with first install, upgrade, set
|
||||||
|
# permissions, and what else? Should there be a warning otherwise?
|
||||||
|
|
||||||
|
override=
|
||||||
|
for name in $MOST_PARAMETERS
|
||||||
|
do
|
||||||
|
eval junk=\"\$$name\"
|
||||||
|
test "$junk" = "`$POSTCONF -c $config_directory -h $name`" || {
|
||||||
|
override=1
|
||||||
|
break
|
||||||
|
}
|
||||||
|
done
|
||||||
|
|
||||||
|
test -n "$override" && {
|
||||||
|
$POSTCONF -c $config_directory -e \
|
||||||
|
"daemon_directory = $daemon_directory" \
|
||||||
|
"command_directory = $command_directory" \
|
||||||
|
"queue_directory = $queue_directory" \
|
||||||
|
"data_directory = $data_directory" \
|
||||||
|
"mail_owner = $mail_owner" \
|
||||||
|
"setgid_group = $setgid_group" \
|
||||||
|
"sendmail_path = $sendmail_path" \
|
||||||
|
"mailq_path = $mailq_path" \
|
||||||
|
"newaliases_path = $newaliases_path" \
|
||||||
|
"html_directory = $html_directory" \
|
||||||
|
"manpage_directory = $manpage_directory" \
|
||||||
|
"sample_directory = $sample_directory" \
|
||||||
|
"readme_directory = $readme_directory" \
|
||||||
|
"shlib_directory = $shlib_directory" \
|
||||||
|
"meta_directory = $meta_directory" \
|
||||||
|
|| exit 1
|
||||||
|
} || exit 0) || exit 1
|
||||||
|
|
||||||
|
# Use file/directory status information in $meta_directory/postfix-files.
|
||||||
|
|
||||||
|
test -n "$create" && {
|
||||||
|
postfix_files_d=$meta_directory/postfix-files.d
|
||||||
|
for postfix_file in $meta_directory/postfix-files \
|
||||||
|
`test -d $postfix_files_d && { find $postfix_files_d -type f | sort; }`
|
||||||
|
do
|
||||||
|
exec <$postfix_file || exit 1
|
||||||
|
while IFS=: read path type owner group mode flags junk
|
||||||
|
do
|
||||||
|
IFS="$BACKUP_IFS"
|
||||||
|
set_permission=
|
||||||
|
# Skip comments. Skip shared files, if updating a secondary instance.
|
||||||
|
case $path in
|
||||||
|
[$]*) case "$update_shared_files" in
|
||||||
|
1) $debug keep non-shared or shared $path;;
|
||||||
|
*) non_shared=
|
||||||
|
for name in $NON_SHARED
|
||||||
|
do
|
||||||
|
case $path in
|
||||||
|
"\$$name"*) non_shared=1; break;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
case "$non_shared" in
|
||||||
|
1) $debug keep non-shared $path;;
|
||||||
|
*) $debug skip shared $path; continue;;
|
||||||
|
esac;;
|
||||||
|
esac;;
|
||||||
|
*) continue;;
|
||||||
|
esac
|
||||||
|
# Skip hard links and symbolic links.
|
||||||
|
case $type in
|
||||||
|
[hl]) continue;;
|
||||||
|
[df]) ;;
|
||||||
|
*) echo unknown type $type for $path in $postfix_file 1>&2; exit 1;;
|
||||||
|
esac
|
||||||
|
# Expand $name, and canonicalize null fields.
|
||||||
|
for name in path owner group flags
|
||||||
|
do
|
||||||
|
eval junk=\${$name}
|
||||||
|
case $junk in
|
||||||
|
[$]*) eval $name=$junk;;
|
||||||
|
-) eval $name=;;
|
||||||
|
*) ;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
# Skip uninstalled files.
|
||||||
|
case $path in
|
||||||
|
no|no/*) continue;;
|
||||||
|
esac
|
||||||
|
# Pick up the flags.
|
||||||
|
case $flags in *u*) upgrade_flag=1;; *) upgrade_flag=;; esac
|
||||||
|
case $flags in *c*) create_flag=1;; *) create_flag=;; esac
|
||||||
|
case $flags in *r*) recursive="-R";; *) recursive=;; esac
|
||||||
|
case $flags in *o*) obsolete_flag=1;; *) obsolete_flag=;; esac
|
||||||
|
case $flags in *[1i]*) test ! -r "$path" -a "$config_directory" != \
|
||||||
|
"$def_config_directory" && continue;; esac
|
||||||
|
# Flag obsolete objects. XXX Solaris 2..9 does not have "test -e".
|
||||||
|
if [ -n "$obsolete_flag" ]
|
||||||
|
then
|
||||||
|
test -r $path -a "$type" != "d" && obsolete="$obsolete $path"
|
||||||
|
continue;
|
||||||
|
else
|
||||||
|
keep_list="$keep_list $path"
|
||||||
|
fi
|
||||||
|
# Create missing directories with proper owner/group/mode settings.
|
||||||
|
if [ -n "$create" -a "$type" = "d" -a -n "$create_flag" -a ! -d "$path" ]
|
||||||
|
then
|
||||||
|
mkdir $path || exit 1
|
||||||
|
set_permission=1
|
||||||
|
# Update all owner/group/mode settings.
|
||||||
|
elif [ -n "$set_perms" ]
|
||||||
|
then
|
||||||
|
set_permission=1
|
||||||
|
# Update obsolete owner/group/mode settings.
|
||||||
|
elif [ -n "$upgrade_perms" -a -n "$upgrade_flag" ]
|
||||||
|
then
|
||||||
|
set_permission=1
|
||||||
|
fi
|
||||||
|
test -n "$set_permission" && {
|
||||||
|
chown $recursive $owner $path || exit 1
|
||||||
|
test -z "$group" || chgrp $recursive $group $path || exit 1
|
||||||
|
# Don't "chmod -R"; queue file status is encoded in mode bits.
|
||||||
|
if [ "$type" = "d" -a -n "$recursive" ]
|
||||||
|
then
|
||||||
|
find $path -type d -exec chmod $mode "{}" ";"
|
||||||
|
else
|
||||||
|
chmod $mode $path
|
||||||
|
fi || exit 1
|
||||||
|
}
|
||||||
|
done
|
||||||
|
IFS="$BACKUP_IFS"
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
# Upgrade existing Postfix configuration files if necessary.
|
||||||
|
|
||||||
|
test -n "$upgrade_conf" && {
|
||||||
|
|
||||||
|
# Postfix 2.0.
|
||||||
|
# Add missing relay service to master.cf.
|
||||||
|
|
||||||
|
grep '^relay' $config_directory/master.cf >/dev/null || {
|
||||||
|
echo Editing $config_directory/master.cf, adding missing entry for relay service
|
||||||
|
cat >>$config_directory/master.cf <<EOF || exit 1
|
||||||
|
relay unix - - n - - smtp
|
||||||
|
EOF
|
||||||
|
}
|
||||||
|
|
||||||
|
# Postfix 1.1.
|
||||||
|
# Add missing flush service to master.cf.
|
||||||
|
|
||||||
|
grep '^flush.*flush' $config_directory/master.cf >/dev/null || {
|
||||||
|
echo Editing $config_directory/master.cf, adding missing entry for flush service
|
||||||
|
cat >>$config_directory/master.cf <<EOF || exit 1
|
||||||
|
flush unix - - n 1000? 0 flush
|
||||||
|
EOF
|
||||||
|
}
|
||||||
|
|
||||||
|
# Postfix 2.1.
|
||||||
|
# Add missing trace service to master.cf.
|
||||||
|
|
||||||
|
grep 'trace.*bounce' $config_directory/master.cf >/dev/null || {
|
||||||
|
echo Editing $config_directory/master.cf, adding missing entry for trace service
|
||||||
|
cat >>$config_directory/master.cf <<EOF || exit 1
|
||||||
|
trace unix - - n - 0 bounce
|
||||||
|
EOF
|
||||||
|
}
|
||||||
|
|
||||||
|
# Postfix 2.1.
|
||||||
|
# Add missing verify service to master.cf.
|
||||||
|
|
||||||
|
grep '^verify.*verify' $config_directory/master.cf >/dev/null || {
|
||||||
|
echo Editing $config_directory/master.cf, adding missing entry for verify service
|
||||||
|
cat >>$config_directory/master.cf <<EOF || exit 1
|
||||||
|
verify unix - - n - 1 verify
|
||||||
|
EOF
|
||||||
|
}
|
||||||
|
|
||||||
|
# Postfix 2.1.
|
||||||
|
# Fix verify service process limit.
|
||||||
|
|
||||||
|
grep '^verify.*[ ]0[ ]*verify' \
|
||||||
|
$config_directory/master.cf >/dev/null && {
|
||||||
|
echo Editing $config_directory/master.cf, setting verify process limit to 1
|
||||||
|
ed $config_directory/master.cf <<EOF || exit 1
|
||||||
|
/^verify.*[ ]0[ ]*verify/
|
||||||
|
s/\([ ]\)0\([ ]\)/\11\2/
|
||||||
|
p
|
||||||
|
w
|
||||||
|
q
|
||||||
|
EOF
|
||||||
|
}
|
||||||
|
|
||||||
|
# Postfix 1.1.
|
||||||
|
# Change privileged pickup service into unprivileged.
|
||||||
|
|
||||||
|
grep "^pickup[ ]*fifo[ ]*n[ ]*n" \
|
||||||
|
$config_directory/master.cf >/dev/null && {
|
||||||
|
echo Editing $config_directory/master.cf, making the pickup service unprivileged
|
||||||
|
ed $config_directory/master.cf <<EOF || exit 1
|
||||||
|
/^pickup[ ]*fifo[ ]*n[ ]*n/
|
||||||
|
s/\(n[ ]*\)n/\1-/
|
||||||
|
p
|
||||||
|
w
|
||||||
|
q
|
||||||
|
EOF
|
||||||
|
}
|
||||||
|
|
||||||
|
# Postfix 1.1.
|
||||||
|
# Change private cleanup and flush services into public.
|
||||||
|
|
||||||
|
for name in cleanup flush
|
||||||
|
do
|
||||||
|
grep "^$name[ ]*unix[ ]*[-y]" \
|
||||||
|
$config_directory/master.cf >/dev/null && {
|
||||||
|
echo Editing $config_directory/master.cf, making the $name service public
|
||||||
|
ed $config_directory/master.cf <<EOF || exit 1
|
||||||
|
/^$name[ ]*unix[ ]*[-y]/
|
||||||
|
s/[-y]/n/
|
||||||
|
p
|
||||||
|
w
|
||||||
|
q
|
||||||
|
EOF
|
||||||
|
}
|
||||||
|
done
|
||||||
|
|
||||||
|
# Postfix 2.2.
|
||||||
|
# File systems have improved since Postfix came out, and all we
|
||||||
|
# require now is that defer and deferred are hashed because those
|
||||||
|
# can contain lots of files.
|
||||||
|
|
||||||
|
found=`$POSTCONF -c $config_directory -h hash_queue_names`
|
||||||
|
missing=
|
||||||
|
(echo "$found" | grep defer >/dev/null) || missing="$missing defer"
|
||||||
|
(echo "$found" | grep deferred>/dev/null)|| missing="$missing deferred"
|
||||||
|
test -n "$missing" && {
|
||||||
|
echo fixing main.cf hash_queue_names for missing $missing
|
||||||
|
$POSTCONF -c $config_directory -e hash_queue_names="$found$missing" ||
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
|
||||||
|
# Turn on safety nets for new features that could bounce mail that
|
||||||
|
# would be accepted by a previous Postfix version.
|
||||||
|
|
||||||
|
# [The "unknown_local_recipient_reject_code = 450" safety net,
|
||||||
|
# introduced with Postfix 2.0 and deleted after Postfix 2.3.]
|
||||||
|
|
||||||
|
# Postfix 2.0.
|
||||||
|
# Add missing proxymap service to master.cf.
|
||||||
|
|
||||||
|
grep '^proxymap.*proxymap' $config_directory/master.cf >/dev/null || {
|
||||||
|
echo Editing $config_directory/master.cf, adding missing entry for proxymap service
|
||||||
|
cat >>$config_directory/master.cf <<EOF || exit 1
|
||||||
|
proxymap unix - - n - - proxymap
|
||||||
|
EOF
|
||||||
|
}
|
||||||
|
|
||||||
|
# Postfix 2.1.
|
||||||
|
# Add missing anvil service to master.cf.
|
||||||
|
|
||||||
|
grep '^anvil.*anvil' $config_directory/master.cf >/dev/null || {
|
||||||
|
echo Editing $config_directory/master.cf, adding missing entry for anvil service
|
||||||
|
cat >>$config_directory/master.cf <<EOF || exit 1
|
||||||
|
anvil unix - - n - 1 anvil
|
||||||
|
EOF
|
||||||
|
}
|
||||||
|
|
||||||
|
# Postfix 2.2.
|
||||||
|
# Add missing scache service to master.cf.
|
||||||
|
|
||||||
|
grep '^scache.*scache' $config_directory/master.cf >/dev/null || {
|
||||||
|
echo Editing $config_directory/master.cf, adding missing entry for scache service
|
||||||
|
cat >>$config_directory/master.cf <<EOF || exit 1
|
||||||
|
scache unix - - n - 1 scache
|
||||||
|
EOF
|
||||||
|
}
|
||||||
|
|
||||||
|
# Postfix 2.2.
|
||||||
|
# Add missing discard service to master.cf.
|
||||||
|
|
||||||
|
grep '^discard.*discard' $config_directory/master.cf >/dev/null || {
|
||||||
|
echo Editing $config_directory/master.cf, adding missing entry for discard service
|
||||||
|
cat >>$config_directory/master.cf <<EOF || exit 1
|
||||||
|
discard unix - - n - - discard
|
||||||
|
EOF
|
||||||
|
}
|
||||||
|
|
||||||
|
# Postfix 2.2.
|
||||||
|
# Update the tlsmgr fifo->unix service.
|
||||||
|
|
||||||
|
grep "^tlsmgr[ ]*fifo[ ]" \
|
||||||
|
$config_directory/master.cf >/dev/null && {
|
||||||
|
echo Editing $config_directory/master.cf, updating the tlsmgr from fifo to unix service
|
||||||
|
ed $config_directory/master.cf <<EOF || exit 1
|
||||||
|
/^tlsmgr[ ]*fifo[ ]/
|
||||||
|
s/fifo/unix/
|
||||||
|
s/[0-9][0-9]*/&?/
|
||||||
|
p
|
||||||
|
w
|
||||||
|
q
|
||||||
|
EOF
|
||||||
|
}
|
||||||
|
|
||||||
|
# Postfix 2.2.
|
||||||
|
# Add missing tlsmgr service to master.cf.
|
||||||
|
|
||||||
|
grep '^tlsmgr.*tlsmgr' $config_directory/master.cf >/dev/null || {
|
||||||
|
echo Editing $config_directory/master.cf, adding missing entry for tlsmgr service
|
||||||
|
cat >>$config_directory/master.cf <<EOF || exit 1
|
||||||
|
tlsmgr unix - - n 1000? 1 tlsmgr
|
||||||
|
EOF
|
||||||
|
}
|
||||||
|
|
||||||
|
# Postfix 2.2.
|
||||||
|
# Add missing retry service to master.cf.
|
||||||
|
|
||||||
|
grep '^retry.*error' $config_directory/master.cf >/dev/null || {
|
||||||
|
echo Editing $config_directory/master.cf, adding missing entry for retry service
|
||||||
|
cat >>$config_directory/master.cf <<EOF || exit 1
|
||||||
|
retry unix - - n - - error
|
||||||
|
EOF
|
||||||
|
}
|
||||||
|
|
||||||
|
# Postfix 2.5.
|
||||||
|
# Add missing proxywrite service to master.cf.
|
||||||
|
|
||||||
|
grep '^proxywrite.*proxymap' $config_directory/master.cf >/dev/null || {
|
||||||
|
echo Editing $config_directory/master.cf, adding missing entry for proxywrite service
|
||||||
|
cat >>$config_directory/master.cf <<EOF || exit 1
|
||||||
|
proxywrite unix - - n - 1 proxymap
|
||||||
|
EOF
|
||||||
|
}
|
||||||
|
|
||||||
|
# Postfix 2.5.
|
||||||
|
# Fix a typo in the default master.cf proxywrite entry.
|
||||||
|
|
||||||
|
grep '^proxywrite.*-[ ]*proxymap' $config_directory/master.cf >/dev/null && {
|
||||||
|
echo Editing $config_directory/master.cf, setting proxywrite process limit to 1
|
||||||
|
ed $config_directory/master.cf <<EOF || exit 1
|
||||||
|
/^proxywrite.*-[ ]*proxymap/
|
||||||
|
s/-\([ ]*proxymap\)/1\1/
|
||||||
|
p
|
||||||
|
w
|
||||||
|
q
|
||||||
|
EOF
|
||||||
|
}
|
||||||
|
|
||||||
|
# Postfix 2.8.
|
||||||
|
# Add missing postscreen service to master.cf.
|
||||||
|
|
||||||
|
grep '^#*smtp.*postscreen' $config_directory/master.cf >/dev/null || {
|
||||||
|
echo Editing $config_directory/master.cf, adding missing entry for postscreen TCP service
|
||||||
|
cat >>$config_directory/master.cf <<EOF || exit 1
|
||||||
|
#smtp inet n - n - 1 postscreen
|
||||||
|
EOF
|
||||||
|
}
|
||||||
|
|
||||||
|
# Postfix 2.8.
|
||||||
|
# Add missing smtpd (unix-domain) service to master.cf.
|
||||||
|
|
||||||
|
grep '^#*smtpd.*smtpd' $config_directory/master.cf >/dev/null || {
|
||||||
|
echo Editing $config_directory/master.cf, adding missing entry for smtpd unix-domain service
|
||||||
|
cat >>$config_directory/master.cf <<EOF || exit 1
|
||||||
|
#smtpd pass - - n - - smtpd
|
||||||
|
EOF
|
||||||
|
}
|
||||||
|
|
||||||
|
# Postfix 2.8.
|
||||||
|
# Add temporary dnsblog (unix-domain) service to master.cf.
|
||||||
|
|
||||||
|
grep '^#*dnsblog.*dnsblog' $config_directory/master.cf >/dev/null || {
|
||||||
|
echo Editing $config_directory/master.cf, adding missing entry for dnsblog unix-domain service
|
||||||
|
cat >>$config_directory/master.cf <<EOF || exit 1
|
||||||
|
#dnsblog unix - - n - 0 dnsblog
|
||||||
|
EOF
|
||||||
|
}
|
||||||
|
|
||||||
|
# Postfix 2.8.
|
||||||
|
# Add tlsproxy (unix-domain) service to master.cf.
|
||||||
|
|
||||||
|
grep '^#*tlsproxy.*tlsproxy' $config_directory/master.cf >/dev/null || {
|
||||||
|
echo Editing $config_directory/master.cf, adding missing entry for tlsproxy unix-domain service
|
||||||
|
cat >>$config_directory/master.cf <<EOF || exit 1
|
||||||
|
#tlsproxy unix - - n - 0 tlsproxy
|
||||||
|
EOF
|
||||||
|
}
|
||||||
|
|
||||||
|
# Report (but do not remove) obsolete files.
|
||||||
|
|
||||||
|
test -n "$obsolete" && {
|
||||||
|
cat <<EOF | ${FMT}
|
||||||
|
|
||||||
|
Note: the following files or directories still exist but are
|
||||||
|
no longer part of Postfix:
|
||||||
|
|
||||||
|
$obsolete
|
||||||
|
|
||||||
|
EOF
|
||||||
|
}
|
||||||
|
|
||||||
|
# Postfix 2.9.
|
||||||
|
# Safety net for incompatible changes in IPv6 defaults.
|
||||||
|
# PLEASE DO NOT REMOVE THIS CODE. ITS PURPOSE IS TO AVOID AN
|
||||||
|
# UNEXPECTED DROP IN PERFORMANCE AFTER UPGRADING FROM POSTFIX
|
||||||
|
# BEFORE 2.9.
|
||||||
|
# This code assumes that the default is "inet_protocols = ipv4"
|
||||||
|
# when IPv6 support is not compiled in. See util/sys_defs.h.
|
||||||
|
|
||||||
|
test "`$POSTCONF -dh inet_protocols`" = "ipv4" ||
|
||||||
|
test -n "`$POSTCONF -c $config_directory -n inet_protocols`" || {
|
||||||
|
cat <<EOF | ${FMT}
|
||||||
|
COMPATIBILITY: editing $config_directory/main.cf, setting
|
||||||
|
inet_protocols=ipv4. Specify inet_protocols explicitly if you
|
||||||
|
want to enable IPv6.
|
||||||
|
In a future release IPv6 will be enabled by default.
|
||||||
|
EOF
|
||||||
|
$POSTCONF -c $config_directory inet_protocols=ipv4 || exit 1
|
||||||
|
}
|
||||||
|
|
||||||
|
# Disabled because unhelpful down-stream maintainers disable the safety net.
|
||||||
|
# # Postfix 2.10.
|
||||||
|
# # Safety net for incompatible changes due to the introduction
|
||||||
|
# # of the smtpd_relay_restrictions feature to separate the
|
||||||
|
# # mail relay policy from the spam blocking policy.
|
||||||
|
# # PLEASE DO NOT REMOVE THIS CODE. ITS PURPOSE IS TO PREVENT
|
||||||
|
# # INBOUND MAIL FROM UNEXPECTEDLY BOUNCING AFTER UPGRADING FROM
|
||||||
|
# # POSTFIX BEFORE 2.10.
|
||||||
|
# test -n "`$POSTCONF -c $config_directory -n smtpd_relay_restrictions`" || {
|
||||||
|
# cat <<EOF | ${FMT}
|
||||||
|
# COMPATIBILITY: editing $config_directory/main.cf, overriding
|
||||||
|
# smtpd_relay_restrictions to prevent inbound mail from
|
||||||
|
# unexpectedly bouncing.
|
||||||
|
# Specify an empty smtpd_relay_restrictions value to keep using
|
||||||
|
# smtpd_recipient_restrictions as before.
|
||||||
|
#EOF
|
||||||
|
# $POSTCONF -c $config_directory "smtpd_relay_restrictions = \
|
||||||
|
# permit_mynetworks permit_sasl_authenticated \
|
||||||
|
# defer_unauth_destination" || exit 1
|
||||||
|
# }
|
||||||
|
|
||||||
|
# Postfix 3.4
|
||||||
|
# Add a postlog service entry.
|
||||||
|
|
||||||
|
grep '^postlog' $config_directory/master.cf >/dev/null || {
|
||||||
|
echo Editing $config_directory/master.cf, adding missing entry for postlog unix-domain datagram service
|
||||||
|
cat >>$config_directory/master.cf <<EOF || exit 1
|
||||||
|
postlog unix-dgram n - n - 1 postlogd
|
||||||
|
EOF
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
# A reminder if this is the first time Postfix is being installed.
|
||||||
|
|
||||||
|
test -n "$first_install_reminder" && {
|
||||||
|
|
||||||
|
ALIASES=`$POSTCONF -c $config_directory -h alias_database | sed 's/^[^:]*://'`
|
||||||
|
NEWALIASES_PATH=`$POSTCONF -c $config_directory -h newaliases_path`
|
||||||
|
cat <<EOF | ${FMT}
|
||||||
|
|
||||||
|
Warning: you still need to edit myorigin/mydestination/mynetworks
|
||||||
|
parameter settings in $config_directory/main.cf.
|
||||||
|
|
||||||
|
See also http://www.postfix.org/STANDARD_CONFIGURATION_README.html
|
||||||
|
for information about dialup sites or about sites inside a
|
||||||
|
firewalled network.
|
||||||
|
|
||||||
|
BTW: Check your $ALIASES file and be sure to set up aliases
|
||||||
|
that send mail for root and postmaster to a real person, then
|
||||||
|
run $NEWALIASES_PATH.
|
||||||
|
|
||||||
|
EOF
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
exit 0
|
||||||
223
postfix/postfix-files
Normal file
223
postfix/postfix-files
Normal file
@@ -0,0 +1,223 @@
|
|||||||
|
#
|
||||||
|
# Do not edit this file.
|
||||||
|
#
|
||||||
|
# This file controls the postfix-install script for installation of
|
||||||
|
# Postfix programs, configuration files and documentation, as well
|
||||||
|
# as the post-install script for setting permissions and for updating
|
||||||
|
# Postfix configuration files. See the respective manual pages within
|
||||||
|
# the script files.
|
||||||
|
#
|
||||||
|
# Do not list $command_directory or $shlib_directory in this file,
|
||||||
|
# or it will be blown away by a future Postfix uninstallation
|
||||||
|
# procedure. You would not want to lose all files in /usr/sbin or
|
||||||
|
# /usr/local/lib.
|
||||||
|
#
|
||||||
|
# Each record in this file describes one file or directory.
|
||||||
|
# Fields are separated by ":". Specify a null field as "-".
|
||||||
|
# Missing fields or separators at the end are OK.
|
||||||
|
#
|
||||||
|
# File format:
|
||||||
|
# name:type:owner:group:permission:flags
|
||||||
|
# No group means don't change group ownership.
|
||||||
|
#
|
||||||
|
# File types:
|
||||||
|
# d=directory
|
||||||
|
# f=regular file
|
||||||
|
# h=hard link (*)
|
||||||
|
# l=symbolic link (*)
|
||||||
|
#
|
||||||
|
# (*) With hard links and symbolic links, the owner field becomes the
|
||||||
|
# source pathname, while the group and permissions are ignored.
|
||||||
|
#
|
||||||
|
# File flags:
|
||||||
|
# No flag means the flag is not active.
|
||||||
|
# p=preserve existing file, do not replace (postfix-install).
|
||||||
|
# u=update owner/group/mode (post-install upgrade-permissions).
|
||||||
|
# c=create missing directory (post-install create-missing).
|
||||||
|
# r=apply owner/group recursively (post-install set/upgrade-permissions).
|
||||||
|
# o=obsolete, no longer part of Postfix
|
||||||
|
# 1=optional for non-default instance (config_dir != built-in default).
|
||||||
|
#
|
||||||
|
# Note: the "u" flag is for upgrading the permissions of existing files
|
||||||
|
# or directories after changes in Postfix architecture. For robustness
|
||||||
|
# it is a good idea to "u" all the files that have special ownership or
|
||||||
|
# permissions, so that running "make install" fixes any glitches.
|
||||||
|
#
|
||||||
|
# Note: order matters. Update shared libraries and database plugins
|
||||||
|
# before daemon/command-line programs.
|
||||||
|
$config_directory:d:root:-:755:u
|
||||||
|
$data_directory:d:$mail_owner:-:700:uc
|
||||||
|
$daemon_directory:d:root:-:755:u
|
||||||
|
$queue_directory:d:root:-:755:uc
|
||||||
|
$queue_directory/active:d:$mail_owner:-:700:ucr
|
||||||
|
$queue_directory/bounce:d:$mail_owner:-:700:ucr
|
||||||
|
$queue_directory/corrupt:d:$mail_owner:-:700:ucr
|
||||||
|
$queue_directory/defer:d:$mail_owner:-:700:ucr
|
||||||
|
$queue_directory/deferred:d:$mail_owner:-:700:ucr
|
||||||
|
$queue_directory/flush:d:$mail_owner:-:700:ucr
|
||||||
|
$queue_directory/hold:d:$mail_owner:-:700:ucr
|
||||||
|
$queue_directory/incoming:d:$mail_owner:-:700:ucr
|
||||||
|
$queue_directory/private:d:$mail_owner:-:700:uc
|
||||||
|
$queue_directory/maildrop:d:$mail_owner:$setgid_group:730:uc
|
||||||
|
$queue_directory/public:d:$mail_owner:$setgid_group:710:uc
|
||||||
|
$queue_directory/pid:d:root:-:755:uc
|
||||||
|
$queue_directory/saved:d:$mail_owner:-:700:ucr
|
||||||
|
$queue_directory/trace:d:$mail_owner:-:700:ucr
|
||||||
|
# Update shared libraries and plugins before daemon or command-line programs.
|
||||||
|
$shlib_directory/libpostfix-util.so:f:root:-:755
|
||||||
|
$shlib_directory/libpostfix-global.so:f:root:-:755
|
||||||
|
$shlib_directory/libpostfix-dns.so:f:root:-:755
|
||||||
|
$shlib_directory/libpostfix-tls.so:f:root:-:755
|
||||||
|
$shlib_directory/libpostfix-master.so:f:root:-:755
|
||||||
|
$meta_directory/dynamicmaps.cf.d:d:root:-:755
|
||||||
|
$meta_directory/dynamicmaps.cf:f:root:-:644
|
||||||
|
$meta_directory/main.cf.proto:f:root:-:644
|
||||||
|
$meta_directory/makedefs.out:f:root:-:644
|
||||||
|
$meta_directory/master.cf.proto:f:root:-:644
|
||||||
|
$meta_directory/postfix-files.d:d:root:-:755
|
||||||
|
$meta_directory/postfix-files:f:root:-:644
|
||||||
|
$daemon_directory/anvil:f:root:-:755
|
||||||
|
$daemon_directory/bounce:f:root:-:755
|
||||||
|
$daemon_directory/cleanup:f:root:-:755
|
||||||
|
$daemon_directory/discard:f:root:-:755
|
||||||
|
$daemon_directory/dnsblog:f:root:-:755
|
||||||
|
$daemon_directory/error:f:root:-:755
|
||||||
|
$daemon_directory/flush:f:root:-:755
|
||||||
|
$daemon_directory/local:f:root:-:755
|
||||||
|
$daemon_directory/main.cf:f:root:-:644:o
|
||||||
|
$daemon_directory/master.cf:f:root:-:644:o
|
||||||
|
$daemon_directory/master:f:root:-:755
|
||||||
|
$daemon_directory/oqmgr:f:root:-:755
|
||||||
|
$daemon_directory/pickup:f:root:-:755
|
||||||
|
$daemon_directory/pipe:f:root:-:755
|
||||||
|
$daemon_directory/post-install:f:root:-:755
|
||||||
|
# In case meta_directory == daemon_directory.
|
||||||
|
#$daemon_directory/postfix-files:f:root:-:644:o
|
||||||
|
#$daemon_directory/postfix-files.d:d:root:-:755:o
|
||||||
|
$daemon_directory/postfix-script:f:root:-:755
|
||||||
|
$daemon_directory/postfix-tls-script:f:root:-:755
|
||||||
|
$daemon_directory/postfix-wrapper:f:root:-:755
|
||||||
|
$daemon_directory/postmulti-script:f:root:-:755
|
||||||
|
$daemon_directory/postlogd:f:root:-:755
|
||||||
|
$daemon_directory/postscreen:f:root:-:755
|
||||||
|
$daemon_directory/proxymap:f:root:-:755
|
||||||
|
$daemon_directory/qmgr:f:root:-:755
|
||||||
|
$daemon_directory/qmqpd:f:root:-:755
|
||||||
|
$daemon_directory/scache:f:root:-:755
|
||||||
|
$daemon_directory/showq:f:root:-:755
|
||||||
|
$daemon_directory/smtp:f:root:-:755
|
||||||
|
$daemon_directory/smtpd:f:root:-:755
|
||||||
|
$daemon_directory/spawn:f:root:-:755
|
||||||
|
$daemon_directory/tlsproxy:f:root:-:755
|
||||||
|
$daemon_directory/tlsmgr:f:root:-:755
|
||||||
|
$daemon_directory/trivial-rewrite:f:root:-:755
|
||||||
|
$daemon_directory/verify:f:root:-:755
|
||||||
|
$daemon_directory/virtual:f:root:-:755
|
||||||
|
$daemon_directory/nqmgr:h:$daemon_directory/qmgr
|
||||||
|
$daemon_directory/lmtp:h:$daemon_directory/smtp
|
||||||
|
$command_directory/postalias:f:root:-:755
|
||||||
|
$command_directory/postcat:f:root:-:755
|
||||||
|
$command_directory/postconf:f:root:-:755
|
||||||
|
$command_directory/postfix:f:root:-:755
|
||||||
|
$command_directory/postkick:f:root:-:755
|
||||||
|
$command_directory/postlock:f:root:-:755
|
||||||
|
$command_directory/postlog:f:root:$setgid_group:2755:u
|
||||||
|
$command_directory/postmap:f:root:-:755
|
||||||
|
$command_directory/postmulti:f:root:-:755
|
||||||
|
$command_directory/postsuper:f:root:-:755
|
||||||
|
$command_directory/postdrop:f:root:$setgid_group:2755:u
|
||||||
|
$command_directory/postqueue:f:root:$setgid_group:2755:u
|
||||||
|
$sendmail_path:f:root:-:755
|
||||||
|
$newaliases_path:l:$sendmail_path
|
||||||
|
$mailq_path:l:$sendmail_path
|
||||||
|
# Empty files not shipped in Debian
|
||||||
|
#$config_directory/access:f:root:-:644:p1
|
||||||
|
#$config_directory/aliases:f:root:-:644:p1
|
||||||
|
#$config_directory/bounce.cf.default:f:root:-:644:1
|
||||||
|
#$config_directory/canonical:f:root:-:644:p1
|
||||||
|
#$config_directory/cidr_table:f:root:-:644:o
|
||||||
|
#$config_directory/generic:f:root:-:644:p1
|
||||||
|
#$config_directory/generics:f:root:-:644:o
|
||||||
|
#$config_directory/header_checks:f:root:-:644:p1
|
||||||
|
#$config_directory/install.cf:f:root:-:644:o
|
||||||
|
#$config_directory/main.cf.default:f:root:-:644:1
|
||||||
|
$config_directory/main.cf:f:root:-:644:p
|
||||||
|
$config_directory/master.cf:f:root:-:644:p
|
||||||
|
#$config_directory/regexp_table:f:root:-:644:o
|
||||||
|
#$config_directory/relocated:f:root:-:644:p1
|
||||||
|
#$config_directory/tcp_table:f:root:-:644:o
|
||||||
|
#$config_directory/transport:f:root:-:644:p1
|
||||||
|
#$config_directory/virtual:f:root:-:644:p1
|
||||||
|
$config_directory/postfix-script:f:root:-:755:o
|
||||||
|
#$config_directory/postfix-script-sgid:f:root:-:755:o
|
||||||
|
#$config_directory/postfix-script-nosgid:f:root:-:755:o
|
||||||
|
$config_directory/post-install:f:root:-:755:o
|
||||||
|
$manpage_directory/man1/mailq.1.gz:f:root:-:644
|
||||||
|
$manpage_directory/man1/newaliases.1.gz:f:root:-:644
|
||||||
|
$manpage_directory/man1/postalias.1.gz:f:root:-:644
|
||||||
|
$manpage_directory/man1/postcat.1.gz:f:root:-:644
|
||||||
|
$manpage_directory/man1/postconf.1.gz:f:root:-:644
|
||||||
|
$manpage_directory/man1/postdrop.1.gz:f:root:-:644
|
||||||
|
$manpage_directory/man1/postfix-tls.1.gz:f:root:-:644
|
||||||
|
$manpage_directory/man1/postfix.1.gz:f:root:-:644
|
||||||
|
$manpage_directory/man1/postkick.1.gz:f:root:-:644
|
||||||
|
$manpage_directory/man1/postlock.1.gz:f:root:-:644
|
||||||
|
$manpage_directory/man1/postlog.1.gz:f:root:-:644
|
||||||
|
$manpage_directory/man1/postmap.1.gz:f:root:-:644
|
||||||
|
$manpage_directory/man1/postmulti.1.gz:f:root:-:644
|
||||||
|
$manpage_directory/man1/postqueue.1.gz:f:root:-:644
|
||||||
|
$manpage_directory/man1/postsuper.1.gz:f:root:-:644
|
||||||
|
$manpage_directory/man1/sendmail.1.gz:f:root:-:644
|
||||||
|
$manpage_directory/man5/access.5.gz:f:root:-:644
|
||||||
|
$manpage_directory/man5/aliases.5.gz:f:root:-:644
|
||||||
|
$manpage_directory/man5/body_checks.5.gz:f:root:-:644
|
||||||
|
$manpage_directory/man5/bounce.5.gz:f:root:-:644
|
||||||
|
$manpage_directory/man5/canonical.5.gz:f:root:-:644
|
||||||
|
$manpage_directory/man5/cidr_table.5.gz:f:root:-:644
|
||||||
|
$manpage_directory/man5/generics.5.gz:f:root:-:644:o
|
||||||
|
$manpage_directory/man5/generic.5.gz:f:root:-:644
|
||||||
|
$manpage_directory/man5/header_checks.5.gz:f:root:-:644
|
||||||
|
$manpage_directory/man5/master.5.gz:f:root:-:644
|
||||||
|
$manpage_directory/man5/memcache_table.5.gz:f:root:-:644
|
||||||
|
$manpage_directory/man5/socketmap_table.5.gz:f:root:-:644
|
||||||
|
$manpage_directory/man5/nisplus_table.5.gz:f:root:-:644
|
||||||
|
$manpage_directory/man5/postconf.5.gz:f:root:-:644
|
||||||
|
$manpage_directory/man5/postfix-wrapper.5.gz:f:root:-:644
|
||||||
|
$manpage_directory/man5/regexp_table.5.gz:f:root:-:644
|
||||||
|
$manpage_directory/man5/relocated.5.gz:f:root:-:644
|
||||||
|
$manpage_directory/man5/tcp_table.5.gz:f:root:-:644
|
||||||
|
$manpage_directory/man5/transport.5.gz:f:root:-:644
|
||||||
|
$manpage_directory/man5/virtual.5.gz:f:root:-:644
|
||||||
|
$manpage_directory/man8/bounce.8postfix.gz:f:root:-:644
|
||||||
|
$manpage_directory/man8/cleanup.8postfix.gz:f:root:-:644
|
||||||
|
$manpage_directory/man8/anvil.8postfix.gz:f:root:-:644
|
||||||
|
$manpage_directory/man8/defer.8postfix.gz:f:root:-:644
|
||||||
|
$manpage_directory/man8/discard.8postfix.gz:f:root:-:644
|
||||||
|
$manpage_directory/man8/dnsblog.8postfix.gz:f:root:-:644
|
||||||
|
$manpage_directory/man8/error.8postfix.gz:f:root:-:644
|
||||||
|
$manpage_directory/man8/flush.8postfix.gz:f:root:-:644
|
||||||
|
$manpage_directory/man8/lmtp.8postfix.gz:f:root:-:644
|
||||||
|
$manpage_directory/man8/local.8postfix.gz:f:root:-:644
|
||||||
|
$manpage_directory/man8/master.8postfix.gz:f:root:-:644
|
||||||
|
$manpage_directory/man8/nqmgr.8postfix.gz:f:root:-:644:o
|
||||||
|
$manpage_directory/man8/oqmgr.8postfix.gz:f:root:-:644:
|
||||||
|
$manpage_directory/man8/pickup.8postfix.gz:f:root:-:644
|
||||||
|
$manpage_directory/man8/pipe.8postfix.gz:f:root:-:644
|
||||||
|
$manpage_directory/man8/postlogd.8postfix.gz:f:root:-:644
|
||||||
|
$manpage_directory/man8/postfix-add-filter.8.gz:f:root:-:644
|
||||||
|
$manpage_directory/man8/postfix-add-policy.8.gz:f:root:-:644
|
||||||
|
$manpage_directory/man8/postscreen.8postfix.gz:f:root:-:644
|
||||||
|
$manpage_directory/man8/proxymap.8postfix.gz:f:root:-:644
|
||||||
|
$manpage_directory/man8/qmgr.8postfix.gz:f:root:-:644
|
||||||
|
$manpage_directory/man8/qmqpd.8postfix.gz:f:root:-:644
|
||||||
|
$manpage_directory/man8/scache.8postfix.gz:f:root:-:644
|
||||||
|
$manpage_directory/man8/showq.8postfix.gz:f:root:-:644
|
||||||
|
$manpage_directory/man8/smtp.8postfix.gz:f:root:-:644
|
||||||
|
$manpage_directory/man8/smtpd.8postfix.gz:f:root:-:644
|
||||||
|
$manpage_directory/man8/spawn.8postfix.gz:f:root:-:644
|
||||||
|
$manpage_directory/man8/tlsproxy.8postfix.gz:f:root:-:644
|
||||||
|
$manpage_directory/man8/tlsmgr.8postfix.gz:f:root:-:644
|
||||||
|
$manpage_directory/man8/trace.8postfix.gz:f:root:-:644
|
||||||
|
$manpage_directory/man8/trivial-rewrite.8postfix.gz:f:root:-:644
|
||||||
|
$manpage_directory/man8/verify.8postfix.gz:f:root:-:644
|
||||||
|
$manpage_directory/man8/virtual.8postfix.gz:f:root:-:644
|
||||||
454
postfix/postfix-script
Executable file
454
postfix/postfix-script
Executable file
@@ -0,0 +1,454 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
#++
|
||||||
|
# NAME
|
||||||
|
# postfix-script 1
|
||||||
|
# SUMMARY
|
||||||
|
# execute Postfix administrative commands
|
||||||
|
# SYNOPSIS
|
||||||
|
# \fBpostfix-script\fR \fIcommand\fR
|
||||||
|
# DESCRIPTION
|
||||||
|
# The \fBpostfix-script\fR script executes Postfix administrative
|
||||||
|
# commands in an environment that is set up by the \fBpostfix\fR(1)
|
||||||
|
# command.
|
||||||
|
# SEE ALSO
|
||||||
|
# master(8) Postfix master program
|
||||||
|
# postfix(1) Postfix administrative interface
|
||||||
|
# LICENSE
|
||||||
|
# .ad
|
||||||
|
# .fi
|
||||||
|
# The Secure Mailer license must be distributed with this software.
|
||||||
|
# AUTHOR(S)
|
||||||
|
# Wietse Venema
|
||||||
|
# IBM T.J. Watson Research
|
||||||
|
# P.O. Box 704
|
||||||
|
# Yorktown Heights, NY 10598, USA
|
||||||
|
#
|
||||||
|
# Wietse Venema
|
||||||
|
# Google, Inc.
|
||||||
|
# 111 8th Avenue
|
||||||
|
# New York, NY 10011, USA
|
||||||
|
#--
|
||||||
|
|
||||||
|
# Avoid POSIX death due to SIGHUP when some parent process exits.
|
||||||
|
|
||||||
|
trap '' 1
|
||||||
|
|
||||||
|
case $daemon_directory in
|
||||||
|
"") echo This script must be run by the postfix command. 1>&2
|
||||||
|
echo Do not run directly. 1>&2
|
||||||
|
exit 1
|
||||||
|
esac
|
||||||
|
|
||||||
|
LOGGER="$command_directory/postlog -t $MAIL_LOGTAG/postfix-script"
|
||||||
|
INFO="$LOGGER -p info"
|
||||||
|
WARN="$LOGGER -p warn"
|
||||||
|
ERROR="$LOGGER -p error"
|
||||||
|
FATAL="$LOGGER -p fatal"
|
||||||
|
PANIC="$LOGGER -p panic"
|
||||||
|
|
||||||
|
umask 022
|
||||||
|
SHELL=/bin/sh
|
||||||
|
|
||||||
|
#
|
||||||
|
# Can't do much without these in place.
|
||||||
|
#
|
||||||
|
cd $command_directory || {
|
||||||
|
$FATAL no Postfix command directory $command_directory!
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
cd $daemon_directory || {
|
||||||
|
$FATAL no Postfix daemon directory $daemon_directory!
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
test -f master || {
|
||||||
|
$FATAL no Postfix master program $daemon_directory/master!
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
cd $config_directory || {
|
||||||
|
$FATAL no Postfix configuration directory $config_directory!
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
case $shlib_directory in
|
||||||
|
no) ;;
|
||||||
|
*) cd $shlib_directory || {
|
||||||
|
$FATAL no Postfix shared-library directory $shlib_directory!
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
esac
|
||||||
|
cd $meta_directory || {
|
||||||
|
$FATAL no Postfix meta directory $meta_directory!
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
cd $queue_directory || {
|
||||||
|
$FATAL no Postfix queue directory $queue_directory!
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
def_config_directory=`$command_directory/postconf -dh config_directory` || {
|
||||||
|
$FATAL cannot execute $command_directory/postconf!
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
|
||||||
|
# If this is a secondary instance, don't touch shared files.
|
||||||
|
|
||||||
|
instances=`test ! -f $def_config_directory/main.cf ||
|
||||||
|
$command_directory/postconf -c $def_config_directory \
|
||||||
|
-h multi_instance_directories | sed 's/,/ /'` || {
|
||||||
|
$FATAL cannot execute $command_directory/postconf!
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
|
||||||
|
check_shared_files=1
|
||||||
|
for name in $instances
|
||||||
|
do
|
||||||
|
case "$name" in
|
||||||
|
"$def_config_directory") ;;
|
||||||
|
"$config_directory") check_shared_files=; break;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
|
||||||
|
#
|
||||||
|
# Parse JCL
|
||||||
|
#
|
||||||
|
case $1 in
|
||||||
|
|
||||||
|
start_msg)
|
||||||
|
|
||||||
|
echo "Start postfix"
|
||||||
|
;;
|
||||||
|
|
||||||
|
stop_msg)
|
||||||
|
|
||||||
|
echo "Stop postfix"
|
||||||
|
;;
|
||||||
|
|
||||||
|
start|start-fg)
|
||||||
|
|
||||||
|
$daemon_directory/master -t 2>/dev/null || {
|
||||||
|
$FATAL the Postfix mail system is already running
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
if [ -f $queue_directory/quick-start ]
|
||||||
|
then
|
||||||
|
rm -f $queue_directory/quick-start
|
||||||
|
else
|
||||||
|
$daemon_directory/postfix-script check-fatal || {
|
||||||
|
$FATAL Postfix integrity check failed!
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
# Foreground this so it can be stopped. All inodes are cached.
|
||||||
|
$daemon_directory/postfix-script check-warn
|
||||||
|
fi
|
||||||
|
$INFO starting the Postfix mail system || exit 1
|
||||||
|
case $1 in
|
||||||
|
start)
|
||||||
|
# NOTE: wait in foreground process to get the initialization status.
|
||||||
|
$daemon_directory/master -w || {
|
||||||
|
$FATAL "mail system startup failed"
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
;;
|
||||||
|
start-fg)
|
||||||
|
# Foreground start-up is incompatible with multi-instance mode.
|
||||||
|
# Use "exec $daemon_directory/master" only if PID == 1.
|
||||||
|
# Otherwise, doing so would break process group management,
|
||||||
|
# and "postfix stop" would kill too many processes.
|
||||||
|
case $instances in
|
||||||
|
"") case $$ in
|
||||||
|
1) exec $daemon_directory/master -i
|
||||||
|
$FATAL "cannot start-fg the master daemon"
|
||||||
|
exit 1;;
|
||||||
|
*) $daemon_directory/master -s;;
|
||||||
|
esac
|
||||||
|
;;
|
||||||
|
*) $FATAL "start-fg does not support multi_instance_directories"
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
;;
|
||||||
|
|
||||||
|
drain)
|
||||||
|
|
||||||
|
$daemon_directory/master -t 2>/dev/null && {
|
||||||
|
$FATAL the Postfix mail system is not running
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
$INFO stopping the Postfix mail system
|
||||||
|
kill -9 `sed 1q pid/master.pid`
|
||||||
|
;;
|
||||||
|
|
||||||
|
quick-stop)
|
||||||
|
|
||||||
|
$daemon_directory/postfix-script stop
|
||||||
|
touch $queue_directory/quick-start
|
||||||
|
;;
|
||||||
|
|
||||||
|
stop)
|
||||||
|
|
||||||
|
$daemon_directory/master -t 2>/dev/null && {
|
||||||
|
$FATAL the Postfix mail system is not running
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
$INFO stopping the Postfix mail system
|
||||||
|
kill `sed 1q pid/master.pid`
|
||||||
|
for i in 5 4 3 2 1
|
||||||
|
do
|
||||||
|
$daemon_directory/master -t && exit 0
|
||||||
|
$INFO waiting for the Postfix mail system to terminate
|
||||||
|
sleep 1
|
||||||
|
done
|
||||||
|
$WARN stopping the Postfix mail system with force
|
||||||
|
pid=`awk '{ print $1; exit 0 } END { exit 1 }' pid/master.pid` &&
|
||||||
|
kill -9 -$pid
|
||||||
|
;;
|
||||||
|
|
||||||
|
abort)
|
||||||
|
|
||||||
|
$daemon_directory/master -t 2>/dev/null && {
|
||||||
|
$FATAL the Postfix mail system is not running
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
$INFO aborting the Postfix mail system
|
||||||
|
kill `sed 1q pid/master.pid`
|
||||||
|
;;
|
||||||
|
|
||||||
|
reload)
|
||||||
|
|
||||||
|
$daemon_directory/master -t 2>/dev/null && {
|
||||||
|
$FATAL the Postfix mail system is not running
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
$INFO refreshing the Postfix mail system
|
||||||
|
$command_directory/postsuper active || exit 1
|
||||||
|
kill -HUP `sed 1q pid/master.pid`
|
||||||
|
$command_directory/postsuper &
|
||||||
|
;;
|
||||||
|
|
||||||
|
flush)
|
||||||
|
|
||||||
|
cd $queue_directory || {
|
||||||
|
$FATAL no Postfix queue directory $queue_directory!
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
$command_directory/postqueue -f
|
||||||
|
;;
|
||||||
|
|
||||||
|
check)
|
||||||
|
|
||||||
|
$daemon_directory/postfix-script check-fatal || exit 1
|
||||||
|
$daemon_directory/postfix-script check-warn
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
|
||||||
|
status)
|
||||||
|
|
||||||
|
$daemon_directory/master -t 2>/dev/null && {
|
||||||
|
$INFO the Postfix mail system is not running
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
$INFO the Postfix mail system is running: PID: `sed 1q pid/master.pid`
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
|
||||||
|
|
||||||
|
check-fatal)
|
||||||
|
# This command is NOT part of the public interface.
|
||||||
|
|
||||||
|
$SHELL $daemon_directory/post-install create-missing || {
|
||||||
|
$FATAL unable to create missing queue directories
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
|
||||||
|
# Look for incomplete installations.
|
||||||
|
|
||||||
|
test -f $config_directory/master.cf || {
|
||||||
|
$FATAL no $config_directory/master.cf file found
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
|
||||||
|
maillog_file=`$command_directory/postconf -h maillog_file` || {
|
||||||
|
$FATAL cannot execute $command_directory/postconf!
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
test -n "$maillog_file" && {
|
||||||
|
$command_directory/postconf -M postlog/unix-dgram 2>/dev/null \
|
||||||
|
| grep . >/dev/null || {
|
||||||
|
$FATAL "missing 'postlog' service in master.cf - run 'postfix upgrade-configuration'"
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
# See if all queue files are in the right place. This is slow.
|
||||||
|
# We must scan all queues for mis-named queue files before the
|
||||||
|
# mail system can run.
|
||||||
|
|
||||||
|
$command_directory/postsuper || exit 1
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
|
||||||
|
check-warn)
|
||||||
|
# This command is NOT part of the public interface.
|
||||||
|
|
||||||
|
# Check Postfix root-owned directory owner/permissions.
|
||||||
|
|
||||||
|
find $queue_directory/. $queue_directory/pid \
|
||||||
|
-prune ! -user root \
|
||||||
|
-exec $WARN not owned by root: {} \;
|
||||||
|
|
||||||
|
find $queue_directory/. $queue_directory/pid \
|
||||||
|
-prune \( -perm -020 -o -perm -002 \) \
|
||||||
|
-exec $WARN group or other writable: {} \;
|
||||||
|
|
||||||
|
# Check Postfix root-owned directory tree owner/permissions.
|
||||||
|
|
||||||
|
todo="$config_directory/."
|
||||||
|
test -n "$check_shared_files" && {
|
||||||
|
todo="$daemon_directory/. $meta_directory/. $todo"
|
||||||
|
test "$shlib_directory" = "no" ||
|
||||||
|
todo="$shlib_directory/. $todo"
|
||||||
|
}
|
||||||
|
todo=`echo "$todo" | tr ' ' '\12' | sort -u`
|
||||||
|
|
||||||
|
find $todo ! -user root \
|
||||||
|
-exec $WARN not owned by root: {} \;
|
||||||
|
|
||||||
|
# Handle symlinks separately
|
||||||
|
find -L $todo \( -perm -020 -o -perm -002 \) \
|
||||||
|
-exec $WARN group or other writable: {} \;
|
||||||
|
|
||||||
|
find $todo -type l | while read f; do \
|
||||||
|
# makedefs out known to be a symlink and OK
|
||||||
|
if [ "$f" != "/etc/postfix/./makedefs.out" ]; then \
|
||||||
|
readlink "$f" | grep -q / && $WARN symlink leaves directory: "$f"; \
|
||||||
|
fi \
|
||||||
|
done; \
|
||||||
|
|
||||||
|
# Check Postfix mail_owner-owned directory tree owner/permissions.
|
||||||
|
|
||||||
|
find $data_directory/. ! -user $mail_owner \
|
||||||
|
-exec $WARN not owned by $mail_owner: {} \;
|
||||||
|
|
||||||
|
find $data_directory/. \( -perm -020 -o -perm -002 \) \
|
||||||
|
-exec $WARN group or other writable: {} \;
|
||||||
|
|
||||||
|
# Check Postfix mail_owner-owned directory tree owner.
|
||||||
|
|
||||||
|
find `ls -d $queue_directory/* | \
|
||||||
|
egrep '/(saved|incoming|active|defer|deferred|bounce|hold|trace|corrupt|public|private|flush)$'` \
|
||||||
|
! \( -type p -o -type s \) ! -user $mail_owner \
|
||||||
|
-exec $WARN not owned by $mail_owner: {} \;
|
||||||
|
|
||||||
|
# WARNING: this should not descend into the maildrop directory.
|
||||||
|
# maildrop is the least trusted Postfix directory.
|
||||||
|
|
||||||
|
find $queue_directory/maildrop -prune ! -user $mail_owner \
|
||||||
|
-exec $WARN not owned by $mail_owner: $queue_directory/maildrop \;
|
||||||
|
|
||||||
|
# Check Postfix setgid_group-owned directory and file group/permissions.
|
||||||
|
|
||||||
|
todo="$queue_directory/public $queue_directory/maildrop"
|
||||||
|
test -n "$check_shared_files" &&
|
||||||
|
todo="$command_directory/postqueue $command_directory/postdrop $todo"
|
||||||
|
|
||||||
|
find $todo \
|
||||||
|
-prune ! -group $setgid_group \
|
||||||
|
-exec $WARN not owned by group $setgid_group: {} \;
|
||||||
|
|
||||||
|
test -n "$check_shared_files" &&
|
||||||
|
find $command_directory/postqueue $command_directory/postdrop \
|
||||||
|
-prune ! -perm -02111 \
|
||||||
|
-exec $WARN not set-gid or not owner+group+world executable: {} \;
|
||||||
|
|
||||||
|
# Check non-Postfix root-owned directory tree owner/content.
|
||||||
|
|
||||||
|
for dir in bin etc lib sbin usr
|
||||||
|
do
|
||||||
|
test -d $dir && {
|
||||||
|
find $dir ! -user root \
|
||||||
|
-exec $WARN not owned by root: $queue_directory/{} \;
|
||||||
|
|
||||||
|
find $dir -type f -print | while read path
|
||||||
|
do
|
||||||
|
test -f /$path && {
|
||||||
|
cmp -s $path /$path ||
|
||||||
|
$WARN $queue_directory/$path and /$path differ
|
||||||
|
}
|
||||||
|
done
|
||||||
|
}
|
||||||
|
done
|
||||||
|
|
||||||
|
find corrupt -type f -exec $WARN damaged message: {} \;
|
||||||
|
|
||||||
|
# Check for non-Postfix MTA remnants.
|
||||||
|
|
||||||
|
test -n "$check_shared_files" -a -f /usr/sbin/sendmail -a \
|
||||||
|
-f /usr/lib/sendmail && {
|
||||||
|
cmp -s /usr/sbin/sendmail /usr/lib/sendmail || {
|
||||||
|
$WARN /usr/lib/sendmail and /usr/sbin/sendmail differ
|
||||||
|
$WARN Replace one by a symbolic link to the other
|
||||||
|
}
|
||||||
|
}
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
|
||||||
|
set-permissions|upgrade-configuration)
|
||||||
|
$daemon_directory/post-install create-missing "$@"
|
||||||
|
;;
|
||||||
|
|
||||||
|
post-install)
|
||||||
|
# Currently not part of the public interface.
|
||||||
|
shift
|
||||||
|
$daemon_directory/post-install "$@"
|
||||||
|
;;
|
||||||
|
|
||||||
|
tls)
|
||||||
|
shift
|
||||||
|
$daemon_directory/postfix-tls-script "$@"
|
||||||
|
;;
|
||||||
|
|
||||||
|
/*)
|
||||||
|
# Currently not part of the public interface.
|
||||||
|
"$@"
|
||||||
|
;;
|
||||||
|
|
||||||
|
logrotate)
|
||||||
|
case $# in
|
||||||
|
1) ;;
|
||||||
|
*) $FATAL "usage postfix $1 (no arguments)"; exit 1;;
|
||||||
|
esac
|
||||||
|
for name in maillog_file maillog_file_compressor \
|
||||||
|
maillog_file_rotate_suffix
|
||||||
|
do
|
||||||
|
value="`$command_directory/postconf -h $name`"
|
||||||
|
case "$value" in
|
||||||
|
"") $FATAL "empty '$name' parameter value - logfile rotation failed"
|
||||||
|
exit 1;;
|
||||||
|
esac
|
||||||
|
eval $name='"$value"';
|
||||||
|
done
|
||||||
|
|
||||||
|
case "$maillog_file" in
|
||||||
|
/dev/*) $FATAL "not rotating '$maillog_file'"; exit 1;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
errors=`(
|
||||||
|
suffix="\`date +$maillog_file_rotate_suffix\`" || exit 1
|
||||||
|
mv "$maillog_file" "$maillog_file.$suffix" || exit 1
|
||||||
|
$daemon_directory/master -t 2>/dev/null ||
|
||||||
|
kill -HUP \`sed 1q pid/master.pid\` || exit 1
|
||||||
|
sleep 1
|
||||||
|
"$maillog_file_compressor" "$maillog_file.$suffix" || exit 1
|
||||||
|
) 2>&1` || {
|
||||||
|
$FATAL "logfile '$maillog_file' rotation failed: $errors"
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
;;
|
||||||
|
|
||||||
|
*)
|
||||||
|
$FATAL "unknown command: '$1'. Usage: postfix start (or stop, reload, abort, flush, check, status, set-permissions, upgrade-configuration, logrotate)"
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
|
||||||
|
esac
|
||||||
Reference in New Issue
Block a user