1136 lines
51 KiB
Django/Jinja
1136 lines
51 KiB
Django/Jinja
#
|
|
# {{ ansible_managed }}
|
|
#
|
|
|
|
# address_verify_map
|
|
# Lookup table for persistent address verification status storage. The table is
|
|
# maintained by the verify(8) service, and is opened before the process releases
|
|
# privileges.
|
|
# http://www.postfix.org/postconf.5.html#address_verify_map
|
|
{% if postfix_address_verify_db is defined and postfix_address_verify_db | length > 0 %}
|
|
address_verify_map = {{ postfix_address_verify_db }}
|
|
{% else %}
|
|
# address_verify_map =
|
|
{% endif %}
|
|
|
|
# address_verify_negative_expire_time
|
|
# The time after which a failed probe expires from the address verification
|
|
# cache.
|
|
# http://www.postfix.org/postconf.5.html#address_verify_negative_expire_time
|
|
{% if postfix_address_verify_negative_expire_time is defined and postfix_address_verify_negative_expire_time | length > 0 %}
|
|
address_verify_negative_expire_time = {{ postfix_address_verify_negative_expire_time }}
|
|
{% else %}
|
|
# address_verify_negative_expire_time =
|
|
{% endif %}
|
|
|
|
# address_verify_negative_refresh_time
|
|
# The time after which a failed address verification probe needs to be refreshed
|
|
# http://www.postfix.org/postconf.5.html#address_verify_negative_refresh_time
|
|
{% if postfix_address_verify_negative_refresh_time is defined and postfix_address_verify_negative_refresh_time | length > 0 %}
|
|
address_verify_negative_refresh_time = {{ postfix_address_verify_negative_refresh_time }}
|
|
{% else %}
|
|
# address_verify_negative_refresh_time =
|
|
{% endif %}
|
|
|
|
# address_verify_positive_expire_time
|
|
# The time after which a successful probe expires from the address verification cache.
|
|
# http://www.postfix.org/postconf.5.html#address_verify_positive_expire_time
|
|
{% if postfix_address_verify_positive_expire_time is defined and postfix_address_verify_positive_expire_time | length > 0 %}
|
|
address_verify_positive_expire_time = {{ postfix_address_verify_positive_expire_time }}
|
|
{% else %}
|
|
# address_verify_positive_expire_time =
|
|
{% endif %}
|
|
|
|
# address_verify_positive_refresh_time
|
|
# The time after which a successful address verification probe needs to be
|
|
# refreshed. The address verification status is not updated when the probe fails
|
|
# (optimistic caching).
|
|
{% if postfix_address_verify_positive_refresh_time is defined and postfix_address_verify_positive_refresh_time | length > 0 %}
|
|
address_verify_positive_refresh_time = {{ postfix_address_verify_positive_refresh_time }}
|
|
{% else %}
|
|
# address_verify_positive_refresh_time =
|
|
{% endif %}
|
|
|
|
# alias_database
|
|
# The alias databases for local(8) delivery that are updated with "newaliases"
|
|
# or with "sendmail -bi".
|
|
#
|
|
# This is a separate configuration parameter because not all the tables
|
|
# specified with $alias_maps have to be local files.
|
|
# http://www.postfix.org/postconf.5.html#alias_database
|
|
{% if postfix_alias_database is defined and postfix_alias_database | length > 0 %}
|
|
alias_database = {{ postfix_alias_database }}
|
|
{% else %}
|
|
# alias_database =
|
|
{% endif %}
|
|
|
|
# alias_maps
|
|
# The alias databases that are used for local(8) delivery. See aliases(5) for
|
|
# syntax details. Specify zero or more "type:name" lookup tables, separated by
|
|
# whitespace or comma. Tables will be searched in the specified order until a
|
|
# match is found. Note: these lookups are recursive.
|
|
{% if postfix_alias_maps is defined and postfix_alias_maps | length > 0 %}
|
|
alias_maps = {{ postfix_alias_maps }}
|
|
{% else %}
|
|
# alias_maps =
|
|
{% endif %}
|
|
|
|
# append_at_myorigin
|
|
# With locally submitted mail, append the string "@$myorigin" to mail addresses
|
|
# without domain information. With remotely submitted mail, append the string
|
|
# "@$remote_header_rewrite_domain" instead.
|
|
# http://www.postfix.org/postconf.5.html#append_at_myorigin
|
|
append_at_myorigin = {{ "yes" if postfix_append_at_myorigin | default(true) else "no" }}
|
|
|
|
# append_dot_mydomain
|
|
# With locally submitted mail, append the string ".$mydomain" to addresses that
|
|
# have no ".domain" information. With remotely submitted mail, append the string
|
|
# ".$remote_header_rewrite_domain" instea
|
|
# http://www.postfix.org/postconf.5.html#append_dot_mydomain
|
|
append_dot_mydomain = {{ "yes" if postfix_append_dot_mydomain | default(false) else "no" }}
|
|
|
|
# biff
|
|
# Whether or not to use the local biff service. This service sends "new mail"
|
|
# notifications to users who have requested new mail notification with the UNIX
|
|
# command "biff y".
|
|
#
|
|
# For compatibility reasons this feature is on by default. On systems with lots
|
|
# of interactive users, the biff service can be a performance drain. Specify
|
|
# "biff = no" in main.cf to disable.
|
|
# http://www.postfix.org/postconf.5.html#biff
|
|
biff = {{ "yes" if postfix_biff | default(false) else "no" }}
|
|
|
|
# canonical_maps
|
|
# Optional address mapping lookup tables for message headers and envelopes. The
|
|
# mapping is applied to both sender and recipient addresses, in both envelopes
|
|
# and in headers, as controlled with the canonical_classes parameter. This is
|
|
# typically used to clean up dirty addresses from legacy mail systems, or to
|
|
# replace login names by Firstname.Lastname.
|
|
# http://www.postfix.org/postconf.5.html#canonical_maps
|
|
{% if postfix_canonical_maps is defined and (postfix_canonical_maps | reject('equalto', '') | list | length) > 0 %}
|
|
canonical_maps = {{ postfix_canonical_maps | reject('equalto', '') | join(', ') }}
|
|
{% else %}
|
|
# canonical_maps =
|
|
{% endif %}
|
|
|
|
# compatibility_level
|
|
# A safety net that causes Postfix to run with backwards-compatible default
|
|
# settings after an upgrade to a newer Postfix version.
|
|
# http://www.postfix.org/postconf.5.html#compatibility_level
|
|
compatibility_level = {{ postfix_compatibility_level | default('2') }}
|
|
|
|
# default_database_type
|
|
# The default database type for use in newaliases(1), postalias(1) and
|
|
# postmap(1) commands. On many UNIX systems the default type is either dbm or
|
|
# hash. The default setting is frozen when the Postfix system is built.
|
|
# http://www.postfix.org/postconf.5.html#default_database_type
|
|
default_database_type = lmdb
|
|
|
|
# delay_warning_time
|
|
# The time after which the sender receives a copy of the message headers of mail
|
|
# that is still queued. The confirm_delay_cleared parameter controls sender
|
|
# notification when the delay clears up.
|
|
# http://www.postfix.org/postconf.5.html#delay_warning_time
|
|
{% if postfix_delay_warning_time is defined and postfix_delay_warning_time | length > 0 %}
|
|
delay_warning_time = {{ postfix_delay_warning_time }}
|
|
{% else %}
|
|
# delay_warning_time =
|
|
{% endif %}
|
|
|
|
# disable_vrfy_command
|
|
# Disable the SMTP VRFY command. This stops some techniques used to harvest
|
|
# email addresses.
|
|
# http://www.postfix.org/postconf.5.html#disable_vrfy_command
|
|
disable_vrfy_command = {{ "yes" if postfix_disable_vrfy_command | default(true) else "no" }}
|
|
|
|
# home_mailbox
|
|
# Optional pathname of a mailbox file relative to a local(8) user's home
|
|
# directory. Specify a pathname ending in "/" for qmail-style delivery.
|
|
# http://www.postfix.org/postconf.5.html#home_mailbox
|
|
{% if postfix_home_mailbox is defined and postfix_home_mailbox | length > 0 %}
|
|
home_mailbox = {{ postfix_home_mailbox }}
|
|
{% else %}
|
|
# home_mailbox =
|
|
{% endif %}
|
|
|
|
# inet_interfaces
|
|
# The network interface addresses that this mail system receives mail on.
|
|
# Specify "all" to receive mail on all network interfaces (default), and
|
|
# "loopback-only" to receive mail on loopback network interfaces only (Postfix
|
|
# version 2.2 and later). The parameter also controls delivery of mail to
|
|
# user@[ip.address].
|
|
# http://www.postfix.org/postconf.5.html#inet_interfaces
|
|
{% if postfix_inet_interfaces is defined and postfix_inet_interfaces | length > 0 %}
|
|
inet_interfaces = {{ postfix_inet_interfaces }}
|
|
{% else %}
|
|
# inet_interfaces =
|
|
{% endif %}
|
|
|
|
# inet_protocols
|
|
# The Internet protocols Postfix will attempt to use when making or accepting
|
|
# connections. Specify one or more of "ipv4" or "ipv6", separated by whitespace
|
|
# or commas. The form "all" is equivalent to "ipv4, ipv6" or "ipv4", depending
|
|
# on whether the operating system implements IPv6.
|
|
# http://www.postfix.org/postconf.5.html#inet_protocols
|
|
{% if postfix_inet_protocols is defined and postfix_inet_protocols | length > 0 %}
|
|
inet_protocols = {{ postfix_inet_protocols }}
|
|
{% else %}
|
|
# inet_protocols =
|
|
{% endif %}
|
|
|
|
# mailbox_size_limit
|
|
# The maximal size of any local(8) individual mailbox or maildir file, or zero
|
|
# (no limit). In fact, this limits the size of any file that is written to upon
|
|
# local delivery, including files written by external commands that are executed
|
|
# by the local(8) delivery agent.
|
|
#
|
|
# This limit must not be smaller than the message size limit.
|
|
# http://www.postfix.org/postconf.5.html#mailbox_size_limit
|
|
{% if postfix_mailbox_size_limit is defined and postfix_mailbox_size_limit != -1 %}
|
|
mailbox_size_limit = {{ postfix_mailbox_size_limit }}
|
|
{% else %}
|
|
# mailbox_size_limit =
|
|
{% endif %}
|
|
|
|
# mail_name
|
|
# The mail system name that is displayed in Received: headers, in the SMTP
|
|
# greeting banner, and in bounced mail.
|
|
# http://www.postfix.org/postconf.5.html#mail_name
|
|
{% if postfix_mail_name is defined and postfix_mail_name | length > 0 %}
|
|
mail_name = {{ postfix_mail_name }}
|
|
{% else %}
|
|
mail_name = Postfix
|
|
{% endif %}
|
|
|
|
# mail_owner
|
|
# The UNIX system account that owns the Postfix queue and most Postfix daemon
|
|
# processes. Specify the name of an unprivileged user account that does not
|
|
# share a 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 ID AND GROUP ID.
|
|
# http://www.postfix.org/postconf.5.html#mail_owner
|
|
{% if postfix_mail_owner is defined and postfix_mail_owner | length > 0 %}
|
|
mail_owner = {{ postfix_mail_owner }}
|
|
{% else %}
|
|
# mail_owner =
|
|
{% endif %}
|
|
|
|
# message_size_limit
|
|
# The maximal size in bytes of a message, including envelope information.
|
|
# http://www.postfix.org/postconf.5.html#message_size_limit
|
|
{% if postfix_message_size_limit is defined and postfix_message_size_limit != -1 %}
|
|
message_size_limit = {{ postfix_message_size_limit | default(10240000) }}
|
|
{% else %}
|
|
# message_size_limit =
|
|
{% endif %}
|
|
|
|
# milter_default_action
|
|
# The default action when a Milter (mail filter) response is unavailable (for
|
|
# example, bad Postfix configuration or Milter failure).
|
|
# http://www.postfix.org/postconf.5.html#milter_default_action
|
|
{% if postfix_milter_default_action is defined and postfix_milter_default_action | length > 0 %}
|
|
milter_default_action = {{ postfix_milter_default_action }}
|
|
{% else %}
|
|
# milter_default_action = accept
|
|
{% endif %}
|
|
|
|
# milter_mail_macros
|
|
# The macros that are sent to Milter (mail filter) applications after the SMTP
|
|
# MAIL FROM command.
|
|
# http://www.postfix.org/postconf.5.html#milter_mail_macros
|
|
{% if postfix_milter_mail_macros is defined and postfix_milter_mail_macros | length > 0 %}
|
|
milter_mail_macros = {{ postfix_milter_mail_macros }}
|
|
{% else %}
|
|
# milter_mail_macros =
|
|
{% endif %}
|
|
|
|
# milter_protocol
|
|
# The mail filter protocol version and optional protocol extensions for
|
|
# communication with a Milter application; prior to Postfix 2.6 the default
|
|
# protocol is 2. Postfix sends this version number during the initial protocol
|
|
# handshake. It should match the version number that is expected by the mail
|
|
# filter application (or by its Milter library).
|
|
# http://www.postfix.org/postconf.5.html#milter_protocol
|
|
{% if postfix_milter_protocol is defined and postfix_milter_protocol | string | length > 0 %}
|
|
milter_protocol = {{ postfix_milter_protocol }}
|
|
{% else %}
|
|
# milter_protocol =
|
|
{% endif %}
|
|
|
|
# mua_client_restrictions
|
|
# Optional restrictions that the Postfix SMTP server applies in the context of a
|
|
# mail user agent connection request. Only used and referenced in masters.cf.
|
|
{% if postfix_mua_client_restrictions is defined and postfix_mua_client_restrictions | length > 0 %}
|
|
mua_client_restrictions =
|
|
{% for restriction in postfix_mua_client_restrictions %}
|
|
{{ restriction }}{% if not loop.last %},{% endif %}
|
|
{% endfor %}
|
|
{% else %}
|
|
# mua_client_restrictions =
|
|
{% endif %}
|
|
|
|
# mua_relay_restrictions
|
|
# Access restrictions for mail relay control that the Postfix SMTP server
|
|
# applies in the context of the RCPT TO command, before
|
|
# smtpd_recipient_restrictions. Only used and referenced in masters.cf.
|
|
# http://www.postfix.org/postconf.5.html#smtpd_relay_restrictions
|
|
{% if postfix_mua_relay_restrictions is defined and postfix_mua_relay_restrictions | length > 0 %}
|
|
mua_relay_restrictions =
|
|
{% for restriction in postfix_mua_relay_restrictions %}
|
|
{{ restriction }}{% if not loop.last %},{% endif %}
|
|
{% endfor %}
|
|
{% else %}
|
|
# mua_relay_restrictions =
|
|
{% endif %}
|
|
|
|
# mua_sender_restrictions
|
|
# Optional restrictions that the Postfix SMTP server applies in the context of a
|
|
# mail user agent MAIL FROM command. Only used and referenced in masters.cf.
|
|
# http://www.postfix.org/postconf.5.html#smtpd_sender_restrictions
|
|
{% if postfix_mua_sender_restrictions is defined and postfix_mua_sender_restrictions | length > 0 %}
|
|
mua_sender_restrictions =
|
|
{% for restriction in postfix_mua_sender_restrictions %}
|
|
{{ restriction }}{% if not loop.last %},{% endif %}
|
|
{% endfor %}
|
|
{% else %}
|
|
# mua_sender_restrictions =
|
|
{% endif %}
|
|
|
|
# mydestination
|
|
# The list of domains that are delivered via the $local_transport mail delivery
|
|
# transport. By default this is the Postfix local(8) delivery agent which looks
|
|
# up all recipients in /etc/passwd and /etc/aliases. The SMTP server validates
|
|
# recipient addresses with $local_recipient_maps and rejects non-existent
|
|
# recipients.
|
|
# http://www.postfix.org/postconf.5.html#mydestination
|
|
{% if postfix_mydestination is defined and (postfix_mydestination | reject('equalto', '') | list | length) > 0 %}
|
|
mydestination = {{ postfix_mydestination | join(', ') }}
|
|
{% else %}
|
|
# mydestination =
|
|
{% endif %}
|
|
|
|
# mydomain
|
|
# The internet domain name of this mail system. The default is to use
|
|
# $myhostname minus the first component, or "localdomain" (Postfix 2.3 and
|
|
# later). $mydomain is used as a default value for many other configuration
|
|
# parameters.
|
|
# http://www.postfix.org/postconf.5.html#mydomain
|
|
{% if postfix_mydomain is defined and postfix_mydomain | length > 0 %}
|
|
mydomain = {{ postfix_mydomain }}
|
|
{% else %}
|
|
# mydomain =
|
|
{% endif %}
|
|
|
|
# myhostname
|
|
# The internet hostname of this mail system. The default is to use the
|
|
# fully-qualified domain name (FQDN) from gethostname(), or to use the non-FQDN
|
|
# result from gethostname() and append ".$mydomain". $myhostname is used as a
|
|
# default value for many other configuration parameters.
|
|
# http://www.postfix.org/postconf.5.html#myhostname
|
|
{% if postfix_myhostname is defined and postfix_myhostname | length > 0 %}
|
|
myhostname = {{ postfix_myhostname }}
|
|
{% else %}
|
|
# myhostname =
|
|
{% endif %}
|
|
|
|
# mynetworks
|
|
# The list of "trusted" remote SMTP clients that have more privileges than
|
|
# "strangers".
|
|
#
|
|
# In particular, "trusted" SMTP clients are allowed to relay mail through
|
|
# Postfix. See the smtpd_relay_restrictions parameter description in the
|
|
# postconf(5) manual.
|
|
#
|
|
# You can specify the list of "trusted" network addresses by hand or you can let
|
|
# Postfix do it for you (which is the default). See the description of the
|
|
# mynetworks_style parameter for more information. If you specify the mynetworks
|
|
# list by hand, Postfix ignores the mynetworks_style setting.
|
|
# http://www.postfix.org/postconf.5.html#mynetworks
|
|
{% if postfix_mynetworks is defined and (postfix_mynetworks | reject('equalto', '') | list | length) > 0 %}
|
|
mynetworks = {{ postfix_mynetworks | join(', ') }}
|
|
{% else %}
|
|
# mynetworks =
|
|
{% endif %}
|
|
|
|
# mynetworks_style
|
|
# The method to generate the default value for the mynetworks parameter. This is
|
|
# the list of trusted networks for relay access control etc.
|
|
# - Specify "mynetworks_style = host" when Postfix should "trust" only the local
|
|
# machine.
|
|
# - Specify "mynetworks_style = subnet" when Postfix should "trust" remote SMTP
|
|
# clients in the same IP subnetworks as the local machine. On Linux, this
|
|
# works correctly only with interfaces specified with the "ifconfig" command.
|
|
# - Specify "mynetworks_style = class" when Postfix should "trust" remote SMTP
|
|
# clients in the same IP class A/B/C networks as the local machine. Caution:
|
|
# this may cause Postfix to "trust" your entire provider's network. Instead,
|
|
# specify an explicit mynetworks list by hand, as described with the
|
|
# mynetworks configuration parameter.
|
|
# http://www.postfix.org/postconf.5.html#mynetworks_style
|
|
{% if postfix_mynetworks_style is defined and postfix_mynetworks_style | length > 0 %}
|
|
mynetworks_style = {{ postfix_mynetworks_style }}
|
|
{% else %}
|
|
# mynetworks_style =
|
|
{% endif %}
|
|
|
|
# myorigin
|
|
# The domain name that locally-posted mail appears to come from, and that
|
|
# locally posted mail is delivered to. The default, $myhostname, is adequate 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.
|
|
# http://www.postfix.org/postconf.5.html#myorigin
|
|
{% if postfix_myorigin is defined and postfix_myorigin | length > 0 %}
|
|
myorigin = {{ postfix_myorigin }}
|
|
{% else %}
|
|
# myorigin =
|
|
{% endif %}
|
|
|
|
# non_smtpd_milters
|
|
# A list of Milter (mail filter) applications for new mail that does not arrive
|
|
# via the Postfix smtpd(8) server. This includes local submission via the
|
|
# sendmail(1) command line, new mail that arrives via the Postfix qmqpd(8)
|
|
# server, and old mail that is re-injected into the queue with "postsuper -r".
|
|
# Specify space or comma as a separator.
|
|
{% if postfix_non_smtpd_milters is defined and (postfix_non_smtpd_milters | reject('equalto', '') | list | length) > 0 %}
|
|
non_smtpd_milters = {{ postfix_non_smtpd_milters | reject('equalto', '') | join(', ') }}
|
|
{% else %}
|
|
# non_smtpd_milters =
|
|
{% endif %}
|
|
|
|
# Proxy-proxy_interfaces
|
|
# The network interface addresses that this mail system receives mail on by way
|
|
# of a proxy or network address translation unit.
|
|
# http://www.postfix.org/postconf.5.html#proxy_interfaces
|
|
{% if postfix_proxy_interfaces is defined and postfix_proxy_interfaces | length > 0 %}
|
|
proxy_interfaces = {{ postfix_proxy_interfaces }}
|
|
{% else %}
|
|
# proxy_interfaces =
|
|
{% endif %}
|
|
|
|
# recipient_canonical_map
|
|
# Optional address mapping lookup tables for envelope and header recipient
|
|
# addresses.
|
|
# http://www.postfix.org/postconf.5.html#recipient_canonical_maps
|
|
{% if postfix_recipient_canonical_maps is defined and (postfix_recipient_canonical_maps | reject('equalto', '') | list | length) > 0 %}
|
|
recipient_canonical_maps = {{ postfix_recipient_canonical_maps | reject('equalto', '') | join(', ') }}
|
|
{% else %}
|
|
# recipient_canonical_maps =
|
|
{% endif %}
|
|
|
|
# recipient_delimiter
|
|
# The set of characters that can separate an email address localpart, user name,
|
|
# or a .forward file name from its extension. For example, with
|
|
# "recipient_delimiter = +", the software tries user+foo@example.com before
|
|
# trying user@example.com, user+foo before trying user, and .forward+foo before
|
|
# trying .forward.
|
|
#
|
|
# More formally, an email address localpart or user name is separated from its
|
|
# extension by the first character that matches the recipient_delimiter set. The
|
|
# delimiter character and extension may then be used to generate an extended
|
|
# .forward file name. This implementation recognizes one delimiter character and
|
|
# one extension per email address localpart or email address.
|
|
# http://www.postfix.org/postconf.5.html#recipient_delimiter
|
|
{% if postfix_recipient_delimiter is defined and postfix_recipient_delimiter | length > 0 %}
|
|
recipient_delimiter = {{ postfix_recipient_delimiter }}
|
|
{% else %}
|
|
# recipient_delimiter =
|
|
{% endif %}
|
|
|
|
# relay_domains
|
|
# What destination domains (and subdomains thereof) this system will relay mail
|
|
# to. For details about how the relay_domains value is used, see the description
|
|
# of the permit_auth_destination and reject_unauth_destination SMTP recipient
|
|
# restrictions.
|
|
#
|
|
# Domains that match $relay_domains are delivered with the $relay_transport mail
|
|
# delivery transport. The SMTP server validates recipient addresses with
|
|
# $relay_recipient_maps and rejects non-existent recipients.
|
|
# http://www.postfix.org/postconf.5.html#relay_domains
|
|
{% if postfix_relay_domains is defined and (postfix_relay_domains | reject('equalto', '') | list | length) > 0 %}
|
|
relay_domains = {{ postfix_relay_domains | reject('equalto', '') | join(', ') }}
|
|
{% else %}
|
|
# relay_domains =
|
|
{% endif %}
|
|
|
|
# relay_recipient_maps
|
|
# Optional lookup tables with all valid addresses in the domains that match
|
|
# $relay_domains. Specify @domain as a wild-card for domains that have no valid
|
|
# recipient list, and become a source of backscatter mail: Postfix accepts spam
|
|
# for non-existent recipients and then floods innocent people with undeliverable
|
|
# mail. Technically, tables listed with $relay_recipient_maps are used as lists:
|
|
# Postfix needs to know only if a lookup string is found or not, but it does not
|
|
# use the result from table lookup.
|
|
# http://www.postfix.org/postconf.5.html#relay_recipient_maps
|
|
{% if postfix_relay_recipient_maps is defined and (postfix_relay_recipient_maps | reject('equalto', '') | list | length) > 0 %}
|
|
relay_recipient_maps = {{ postfix_relay_recipient_maps | reject('equalto', '') | join(', ') }}
|
|
{% else %}
|
|
# relay_recipient_maps =
|
|
{% endif %}
|
|
|
|
# relayhost
|
|
# The next-hop destination(s) for non-local mail; overrides the non-local
|
|
# domain routing found in the transport(5) table. Specify a host or host:port,
|
|
# or enclose in [] to disable MX lookups.
|
|
# http://www.postfix.org/postconf.5.html#relayhost
|
|
{% if postfix_relayhost is defined and postfix_relayhost %}
|
|
relayhost = {{ postfix_relayhost }}
|
|
{% else %}
|
|
# relayhost =
|
|
{% endif %}
|
|
|
|
# relocated_maps
|
|
# Optional lookup tables with new contact information for users or domains that
|
|
# no longer exist. The table format and lookups are documented in relocated(5).
|
|
# http://www.postfix.org/postconf.5.html#relocated_maps
|
|
{% if postfix_relocated_maps is defined and (postfix_relocated_maps | reject('equalto', '') | list | length) > 0 %}
|
|
relocated_maps = {{ postfix_relocated_maps | reject('equalto', '') | join(', ') }}
|
|
{% else %}
|
|
# relocated_maps =
|
|
{% endif %}
|
|
|
|
# sender_canonical_maps
|
|
# Optional address mapping lookup tables for envelope and header sender
|
|
# addresses. The table format and lookups are documented in canonical(5).
|
|
#
|
|
# Example: you want to rewrite the SENDER address "user@ugly.domain" to
|
|
# "user@pretty.domain", while still being able to send mail to the RECIPIENT
|
|
# address "user@ugly.domain".
|
|
# http://www.postfix.org/postconf.5.html#sender_canonical_maps
|
|
{% if postfix_sender_canonical_maps is defined and (postfix_sender_canonical_maps | reject('equalto', '') | list | length) > 0 %}
|
|
sender_canonical_maps = {{ postfix_sender_canonical_maps | reject('equalto', '') | join(', ') }}
|
|
{% else %}
|
|
# sender_canonical_maps =
|
|
{% endif %}
|
|
|
|
# smtpd_forbid_bare_newline
|
|
# Disconnect remote SMTP clients that send bare newlines, violating the RFC 5321
|
|
# requirement that lines must end in <CR><LF>.
|
|
# Postfix 3.9+: valid values are "normalize", "reject", "no" ("yes" is deprecated).
|
|
# http://www.postfix.org/postconf.5.html#smtpd_forbid_bare_newline
|
|
{% if postfix_smtpd_forbid_bare_newline is defined and postfix_smtpd_forbid_bare_newline | string | length > 0 %}
|
|
smtpd_forbid_bare_newline = {{ postfix_smtpd_forbid_bare_newline }}
|
|
{% else %}
|
|
# smtpd_forbid_bare_newline =
|
|
{% endif %}
|
|
|
|
# smtpd_forbid_bare_newline_exclusions
|
|
# Exclude the specified clients from smtpd_forbid_bare_newline enforcement. It
|
|
# uses the same syntax and parent-domain matching behavior as mynetworks.
|
|
# http://www.postfix.org/postconf.5.html#smtpd_forbid_bare_newline_exclusions
|
|
{% if postfix_smtpd_forbid_bare_newline_exclusions is defined and postfix_smtpd_forbid_bare_newline_exclusions | length > 0 %}
|
|
smtpd_forbid_bare_newline_exclusions = {{ postfix_smtpd_forbid_bare_newline_exclusions }}
|
|
{% else %}
|
|
# smtpd_forbid_bare_newline_exclusions =
|
|
{% endif %}
|
|
|
|
# smtp_sasl_auth_enable
|
|
# Enable SASL authentication in the Postfix SMTP client. By default, the Postfix
|
|
# SMTP client uses no authentication.
|
|
# http://www.postfix.org/postconf.5.html#smtp_sasl_auth_enable
|
|
{% if postfix_smtp_sasl_auth_enable | default(false) %}
|
|
smtp_sasl_auth_enable = yes
|
|
{% else %}
|
|
# smtp_sasl_auth_enable = yes
|
|
{% endif %}
|
|
|
|
# smtp_sasl_password_maps
|
|
# Optional Postfix SMTP client lookup tables with one username:password entry per
|
|
# sender, remote hostname or next-hop domain.
|
|
# http://www.postfix.org/postconf.5.html#smtp_sasl_password_maps
|
|
{% if postfix_smtp_sasl_password_maps is defined and (postfix_smtp_sasl_password_maps | reject('equalto', '') | list | length) > 0 %}
|
|
smtp_sasl_password_maps = {{ postfix_smtp_sasl_password_maps | reject('equalto', '') | join(', ') }}
|
|
{% else %}
|
|
# smtp_sasl_password_maps =
|
|
{% endif %}
|
|
|
|
# smtp_sasl_security_options
|
|
# Postfix SMTP client SASL security options.
|
|
# http://www.postfix.org/postconf.5.html#smtp_sasl_security_options
|
|
{% if postfix_smtp_sasl_auth_enable | default(false) %}
|
|
smtp_sasl_security_options = noanonymous
|
|
{% else %}
|
|
# smtp_sasl_security_options = noanonymous
|
|
{% endif %}
|
|
|
|
# smtp_tls_CApath
|
|
# Directory with PEM format Certification Authority certificates that the
|
|
# Postfix SMTP client uses to verify a remote SMTP server certificate.
|
|
# http://www.postfix.org/postconf.5.html#smtp_tls_CApath
|
|
{% if postfix_smtp_tls_capath is defined and postfix_smtp_tls_capath | length > 0 %}
|
|
smtp_tls_CApath = {{ postfix_smtp_tls_capath }}
|
|
{% else %}
|
|
# smtp_tls_CApath =
|
|
{% endif %}
|
|
|
|
# smtp_tls_cert_file
|
|
# File with the Postfix SMTP client RSA certificate in PEM format. This file may
|
|
# also contain the Postfix SMTP client private RSA key, and these may be the
|
|
# same as the Postfix SMTP server RSA certificate and key file.
|
|
{% if postfix_smtp_tls_cert_file is defined and postfix_smtp_tls_cert_file | length > 0 %}
|
|
smtp_tls_cert_file = {{ postfix_smtp_tls_cert_file }}
|
|
{% else %}
|
|
# smtp_tls_cert_file =
|
|
{% endif %}
|
|
{% if postfix_smtp_tls_key_file is defined and postfix_smtp_tls_key_file | length > 0 %}
|
|
smtp_tls_key_file = {{ postfix_smtp_tls_key_file }}
|
|
{% else %}
|
|
# smtp_tls_key_file =
|
|
{% endif %}
|
|
|
|
# smtp_tls_loglevel Enable additional Postfix SMTP client logging of TLS
|
|
# activity. Each logging level also includes the information that is logged at a
|
|
# lower logging level.
|
|
# - 0: Disable logging of TLS activity.
|
|
# - 1: Log only a summary message on TLS handshake completion — no logging of
|
|
# remote SMTP server certificate trust-chain verification errors if server
|
|
# certificate verification is not required. With Postfix 2.8 and earlier, log
|
|
# the summary message and unconditionally log trust-chain verification errors.
|
|
# - 2: Also log levels during TLS negotiation.
|
|
# - 3: Also log hexadecimal and ASCII dump of TLS negotiation process.
|
|
# - 4: Also log hexadecimal and ASCII dump of complete transmission after
|
|
# STARTTLS.
|
|
# http://www.postfix.org/postconf.5.html#smtp_tls_loglevel
|
|
{% if postfix_smtp_tls_loglevel is defined and postfix_smtp_tls_loglevel != -1 %}
|
|
smtp_tls_loglevel = {{ postfix_smtp_tls_loglevel }}
|
|
{% else %}
|
|
# smtp_tls_loglevel =
|
|
{% endif %}
|
|
|
|
# smtp_tls_mandatory_ciphers
|
|
# The minimum TLS cipher grade that the Postfix SMTP client will use with
|
|
# mandatory TLS encryption. The default value "medium" is suitable for most
|
|
# destinations with which you may want to enforce TLS, and is beyond the reach
|
|
# of today's cryptanalytic methods.
|
|
# http://www.postfix.org/postconf.5.html#smtp_tls_mandatory_ciphers
|
|
{% if postfix_smtp_tls_mandatory_ciphers is defined and postfix_smtp_tls_mandatory_ciphers | length > 0 %}
|
|
smtp_tls_mandatory_ciphers = {{ postfix_smtp_tls_mandatory_ciphers }}
|
|
{% else %}
|
|
# smtp_tls_mandatory_ciphers =
|
|
{% endif %}
|
|
|
|
# smtp_tls_mandatory_protocols
|
|
# TLS protocols that the Postfix SMTP client will use with mandatory TLS
|
|
# encryption.
|
|
# http://www.postfix.org/postconf.5.html#smtp_tls_mandatory_protocols
|
|
{% if postfix_smtp_tls_mandatory_protocols is defined and postfix_smtp_tls_mandatory_protocols | length > 0 %}
|
|
smtp_tls_mandatory_protocols = {{ postfix_smtp_tls_mandatory_protocols }}
|
|
{% else %}
|
|
# smtp_tls_mandatory_protocols =
|
|
{% endif %}
|
|
|
|
# smtp_tls_policy_maps
|
|
# Optional lookup tables with the Postfix SMTP client TLS security policy by
|
|
# next-hop destination.
|
|
# http://www.postfix.org/postconf.5.html#smtp_tls_policy_maps
|
|
{% if postfix_tls_policy_maps is defined and (postfix_tls_policy_maps | reject('equalto', '') | list | length) > 0 %}
|
|
smtp_tls_policy_maps = {{ postfix_tls_policy_maps | reject('equalto', '') | join(', ') }}
|
|
{% else %}
|
|
# smtp_tls_policy_maps =
|
|
{% endif %}
|
|
|
|
# smtp_tls_protocols
|
|
# TLS protocols that the Postfix SMTP client will use with opportunistic TLS
|
|
# encryption.
|
|
{% if postfix_smtp_tls_protocols is defined and postfix_smtp_tls_protocols | length > 0 %}
|
|
smtp_tls_protocols = {{ postfix_smtp_tls_protocols }}
|
|
{% else %}
|
|
# smtp_tls_protocols =
|
|
{% endif %}
|
|
|
|
# smtp_tls_security_level
|
|
# The default SMTP TLS security level for the Postfix SMTP client; when a
|
|
# non-empty value is specified, this overrides the obsolete parameters
|
|
# smtp_use_tls, smtp_enforce_tls, and smtp_tls_enforce_peernam.
|
|
# http://www.postfix.org/postconf.5.html#smtp_tls_security_level
|
|
{% if postfix_smtp_tls_security_level is defined and postfix_smtp_tls_security_level | length > 0 %}
|
|
smtp_tls_security_level = {{ postfix_smtp_tls_security_level }}
|
|
{% else %}
|
|
# smtp_tls_security_level =
|
|
{% endif %}
|
|
|
|
# smtp_tls_session_cache_database
|
|
# Name of the file containing the optional Postfix SMTP client TLS session
|
|
# cache. Specify a database type that supports enumeration, such as btree or
|
|
# sdbm; there is no need to support concurrent access.
|
|
{% if postfix_smtp_tls_session_cache_database is defined and postfix_smtp_tls_session_cache_database | length > 0 %}
|
|
smtp_tls_session_cache_database = {{ postfix_smtp_tls_session_cache_database }}
|
|
{% else %}
|
|
# smtp_tls_session_cache_database =
|
|
{% endif %}
|
|
|
|
# smtpd_banner
|
|
# The text that follows the 220 status code in the SMTP 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. This is required by the
|
|
# SMTP protocol.
|
|
# http://www.postfix.org/postconf.5.html#smtpd_banner
|
|
{% if postfix_smtpd_banner is defined and postfix_smtpd_banner | length > 0 %}
|
|
smtpd_banner = {{ postfix_smtpd_banner }}
|
|
{% else %}
|
|
# smtpd_banner =
|
|
{% endif %}
|
|
|
|
# smtpd_helo_required
|
|
# Require that a remote SMTP client introduces itself with the HELO or EHLO
|
|
# command before sending the MAIL command or other commands that require EHLO
|
|
# negotiation.
|
|
# http://www.postfix.org/postconf.5.html#smtpd_helo_required
|
|
smtpd_helo_required = {{ "yes" if postfix_smtpd_helo_required | default(true) else "no" }}
|
|
|
|
# Die Restrictions - Das Herz von Postfix
|
|
# Die Restrictions durchlaufen wie angegeben folgende Reihenfolge.
|
|
# 1. smtpd_client_restrictions Prüft auf IP-Adresse oder Hostname
|
|
# 2. smtpd_helo_restrictions Prüft nach HELO oder EHLO
|
|
# 3. smtpd_sender_restrictions Prüft nach MAIL FROM:
|
|
# 4. smtpd_relay_restrictions Prüft nach RELAY
|
|
# 5. smtpd_recipient_restrictions Prüft mach RCPT TO:
|
|
# 6. smtpd_data_restrictions Prüft ab beginng von DATA
|
|
# 7. smtpd_end_of_data_restrictions Prüft nach ende von DATA
|
|
# 8. smtpd etrn_restrictions
|
|
|
|
# smtpd_client_restrictions
|
|
# Optional restrictions that the Postfix SMTP server applies in the context of a
|
|
# client connection request.
|
|
# http://www.postfix.org/postconf.5.html#smtpd_client_restrictions
|
|
{% if postfix_smtpd_client_restrictions is defined and (postfix_smtpd_client_restrictions | reject('equalto', '') | list | length) > 0 %}
|
|
smtpd_client_restrictions =
|
|
{% for restriction in postfix_smtpd_client_restrictions | reject('equalto', '') | list %}
|
|
{{ restriction }}{% if not loop.last %},{% endif %}
|
|
{% endfor %}
|
|
{% else %}
|
|
# smtpd_client_restrictions =
|
|
{% endif %}
|
|
|
|
# smtpd_helo_restrictions
|
|
# Optional restrictions that the Postfix SMTP server applies in the context of a client HELO command.
|
|
# http://www.postfix.org/postconf.5.html#smtpd_helo_restrictions
|
|
{% if postfix_smtpd_helo_restrictions is defined and (postfix_smtpd_helo_restrictions | reject('equalto', '') | list | length) > 0 %}
|
|
smtpd_helo_restrictions =
|
|
{% for restriction in postfix_smtpd_helo_restrictions | reject('equalto', '') | list %}
|
|
{{ restriction }}{% if not loop.last %},{% endif %}
|
|
{% endfor %}
|
|
{% else %}
|
|
# smtpd_helo_restrictions =
|
|
{% endif %}
|
|
|
|
# smtpd_milters
|
|
# A list of Milter (mail filter) applications for new mail that arrives via the
|
|
# Postfix smtpd(8) server. Specify space or comma as separator.
|
|
# http://www.postfix.org/postconf.5.html#smtpd_milters
|
|
{% if postfix_smtpd_milters is defined and (postfix_smtpd_milters | reject('equalto', '') | list | length) > 0 %}
|
|
smtpd_milters =
|
|
{% for milters in postfix_smtpd_milters | reject('equalto', '') | list %}
|
|
{{ milters }}{% if not loop.last %},{% endif %}
|
|
{% endfor %}
|
|
{% else %}
|
|
# smtpd_milters =
|
|
{% endif %}
|
|
|
|
# smtpd_sender_restrictions
|
|
# Optional restrictions that the Postfix SMTP server applies in the context of a
|
|
# client MAIL FROM command.
|
|
# http://www.postfix.org/postconf.5.html#smtpd_sender_restrictions
|
|
{% if postfix_smtpd_sender_restrictions is defined and (postfix_smtpd_sender_restrictions | reject('equalto', '') | list | length) > 0 %}
|
|
smtpd_sender_restrictions =
|
|
{% for restriction in postfix_smtpd_sender_restrictions | reject('equalto', '') | list %}
|
|
{{ restriction }}{% if not loop.last %},{% endif %}
|
|
{% endfor %}
|
|
{% else %}
|
|
# smtpd_sender_restrictions =
|
|
{% endif %}
|
|
|
|
# smtpd_relay_restrictions
|
|
# Access restrictions for mail relay control that the Postfix SMTP server
|
|
# applies in the context of the RCPT TO command, before
|
|
# smtpd_recipient_restrictions.
|
|
# http://www.postfix.org/postconf.5.html#smtpd_relay_restrictions
|
|
{% if postfix_smtpd_relay_restrictions is defined and (postfix_smtpd_relay_restrictions | reject('equalto', '') | list | length) > 0 %}
|
|
smtpd_relay_restrictions =
|
|
{% for restriction in postfix_smtpd_relay_restrictions | reject('equalto', '') | list %}
|
|
{{ restriction }}{% if not loop.last %},{% endif %}
|
|
{% endfor %}
|
|
{% else %}
|
|
# smtpd_relay_restrictions =
|
|
{% endif %}
|
|
|
|
# smtpd_recipient_restrictions
|
|
# Optional restrictions that the Postfix SMTP server applies in the context of a
|
|
# client RCPT TO command, after smtpd_relay_restrictions.
|
|
# http://www.postfix.org/postconf.5.html#smtpd_recipient_restrictions
|
|
{% if postfix_smtpd_recipient_restrictions is defined and (postfix_smtpd_recipient_restrictions | reject('equalto', '') | list | length) > 0 %}
|
|
smtpd_recipient_restrictions =
|
|
{% for table in postfix_check_client_access_maps | default([]) | reject('equalto', '') | list %}
|
|
check_client_access {{ table }},
|
|
{% endfor %}
|
|
{% for table in postfix_check_helo_access_maps | default([]) | reject('equalto', '') | list %}
|
|
check_helo_access {{ table }},
|
|
{% endfor %}
|
|
{% for table in postfix_check_sender_access_maps | default([]) | reject('equalto', '') | list %}
|
|
check_sender_access {{ table }},
|
|
{% endfor %}
|
|
{% for table in postfix_check_recipient_access_maps | default([]) | reject('equalto', '') | list %}
|
|
check_recipient_access {{ table }},
|
|
{% endfor %}
|
|
{% for restriction in postfix_smtpd_recipient_restrictions | reject('equalto', '') | list %}
|
|
{{ restriction }}{% if not loop.last %},{% endif %}
|
|
|
|
{% endfor %}
|
|
{% else %}
|
|
# smtpd_recipient_restrictions =
|
|
{% endif %}
|
|
|
|
# smtpd_data_restrictions
|
|
# Optional access restrictions that the Postfix SMTP server applies in the
|
|
# context of the SMTP DATA command.
|
|
# http://www.postfix.org/postconf.5.html#smtpd_data_restrictions
|
|
{% if postfix_smtpd_data_restrictions is defined and (postfix_smtpd_data_restrictions | reject('equalto', '') | list | length) > 0 %}
|
|
smtpd_data_restrictions =
|
|
{% for restriction in postfix_smtpd_data_restrictions | reject('equalto', '') | list %}
|
|
{{ restriction }}{% if not loop.last %},{% endif %}
|
|
{% endfor %}
|
|
{% else %}
|
|
# smtpd_data_restrictions =
|
|
{% endif %}
|
|
|
|
# smtpd_end_of_data_restrictions
|
|
# Optional access restrictions that the Postfix SMTP server applies in the
|
|
# context of the SMTP END-OF-DATA command.
|
|
# http://www.postfix.org/postconf.5.html#smtpd_end_of_data_restrictions
|
|
{% if postfix_smtpd_end_of_data_restrictions is defined and (postfix_smtpd_end_of_data_restrictions | reject('equalto', '') | list | length) > 0 %}
|
|
smtpd_end_of_data_restrictions =
|
|
{% for restriction in postfix_smtpd_end_of_data_restrictions | reject('equalto', '') | list %}
|
|
{{ restriction }}{% if not loop.last %},{% endif %}
|
|
{% endfor %}
|
|
{% else %}
|
|
# smtpd_end_of_data_restrictions =
|
|
{% endif %}
|
|
|
|
# smtpd_etrn_restrictions
|
|
# Optional restrictions that the Postfix SMTP server applies in the context of a
|
|
# client ETRN command.
|
|
# http://www.postfix.org/postconf.5.html#smtpd_etrn_restrictions
|
|
{% if postfix_smtpd_etrn_restrictions is defined and (postfix_smtpd_etrn_restrictions | reject('equalto', '') | list | length) > 0 %}
|
|
smtpd_etrn_restrictions =
|
|
{% for restriction in postfix_smtpd_etrn_restrictions | reject('equalto', '') | list %}
|
|
{{ restriction }}{% if not loop.last %},{% endif %}
|
|
{% endfor %}
|
|
{% else %}
|
|
# smtpd_etrn_restrictions =
|
|
{% endif %}
|
|
|
|
# smtpd_sasl_authenticated_header
|
|
# Report the SASL authenticated user name in the smtpd(8) Received message
|
|
# header.
|
|
# http://www.postfix.org/postconf.5.html#smtpd_sasl_authenticated_header
|
|
smtpd_sasl_authenticated_header = {{ "yes" if postfix_smtpd_sasl_authenticated_header | default(true) else "no" }}
|
|
|
|
# smtpd_sasl_auth_enable
|
|
# Enable SASL authentication in the Postfix SMTP server. By default, the Postfix
|
|
# SMTP server does not use authentication.
|
|
#
|
|
# If a remote SMTP client is authenticated, the permit_sasl_authenticated access
|
|
# restriction can be used to permit relay access
|
|
smtpd_sasl_auth_enable = {{ "yes" if postfix_smtpd_sasl_auth_enable | default(true) else "no" }}
|
|
|
|
# smtpd_sasl_path
|
|
# Implementation-specific information that the Postfix SMTP server passes
|
|
# through to the SASL plug-in implementation that is selected with
|
|
# smtpd_sasl_type. Typically this specifies the name of a configuration file or
|
|
# rendezvous point.
|
|
# http://www.postfix.org/postconf.5.html#smtpd_sasl_path
|
|
# smtpd_sasl_path = /var/run/dovecot/auth-client
|
|
# smtpd_sasl_path = inet:localhost:5200
|
|
|
|
# private/dovecot-auth is relative to /var/spool/postfix/private/dovecot-auth, created by dovevot
|
|
{% if postfix_smtpd_sasl_path is defined and postfix_smtpd_sasl_path | length > 0 %}
|
|
smtpd_sasl_path = {{ postfix_smtpd_sasl_path }}
|
|
{% else %}
|
|
# smtpd_sasl_path =
|
|
{% endif %}
|
|
|
|
# smtpd_sasl_security_options
|
|
# Postfix SMTP server SASL security options; as of Postfix 2.3 the list of
|
|
# available features depends on the SASL server implementation that is selected
|
|
# with smtpd_sasl_type.
|
|
#
|
|
# Restrict what authentication mechanisms the Postfix SMTP server will offer to
|
|
# the client. The list of available authentication mechanisms is system
|
|
# dependent.
|
|
# http://www.postfix.org/postconf.5.html#smtpd_sasl_security_options
|
|
{% if postfix_smtpd_sasl_security_options is defined and (postfix_smtpd_sasl_security_options | reject('equalto', '') | list | length) > 0 %}
|
|
smtpd_sasl_security_options = {{ postfix_smtpd_sasl_security_options | reject('equalto', '') | join(', ') }}
|
|
{% else %}
|
|
# smtpd_sasl_security_options =
|
|
{% endif %}
|
|
|
|
# smtpd_sasl_tls_security_options
|
|
# The SASL authentication security options that the Postfix SMTP server uses for
|
|
# TLS encrypted SMTP sessions. Default $smtpd_sasl_security_options
|
|
# http://www.postfix.org/postconf.5.html#smtpd_sasl_tls_security_options
|
|
{% if postfix_smtpd_sasl_tls_security_options is defined and (postfix_smtpd_sasl_tls_security_options | reject('equalto', '') | list | length) > 0 %}
|
|
smtpd_sasl_tls_security_options = {{ postfix_smtpd_sasl_tls_security_options | reject('equalto', '') | join(', ') }}
|
|
{% else %}
|
|
# smtpd_sasl_tls_security_options =
|
|
{% endif %}
|
|
|
|
# smtpd_sasl_type
|
|
# The SASL plug-in type that the Postfix SMTP server should use for
|
|
# authentication.
|
|
# http://www.postfix.org/postconf.5.html#smtpd_sasl_type
|
|
{% if postfix_smtpd_sasl_type is defined and postfix_smtpd_sasl_type | length > 0 %}
|
|
smtpd_sasl_type = {{ postfix_smtpd_sasl_type }}
|
|
{% else %}
|
|
# smtpd_sasl_type =
|
|
{% endif %}
|
|
|
|
# smtpd_sender_login_maps
|
|
# Optional lookup table with the SASL login names that own the sender (MAIL
|
|
# FROM) addresses.
|
|
#
|
|
# With lookups from indexed files such as DB or DBM, or from networked tables
|
|
# such as NIS, LDAP or SQL, the following search operations are done with a
|
|
# sender address of user@domain:
|
|
# - user@domain: This table lookup is always done and has the highest
|
|
# precedence.
|
|
# - user: This table lookup is done only when the domain part of the sender
|
|
# address matches $myorigin, $mydestination, $inet_interfaces or
|
|
# $proxy_interfaces.
|
|
# - @domain: This table lookup is done last and has the lowest precedence.
|
|
# http://www.postfix.org/postconf.5.html#smtpd_sender_login_maps
|
|
{% if postfix_smtpd_sender_login_maps is defined and (postfix_smtpd_sender_login_maps | reject('equalto', '') | list | length) > 0 %}
|
|
smtpd_sender_login_maps = {{ postfix_smtpd_sender_login_maps | reject('equalto', '') | join(', ') }}
|
|
{% else %}
|
|
# smtpd_sender_login_maps =
|
|
{% endif %}
|
|
|
|
# smtpd_tls_auth_only
|
|
# When TLS encryption is optional in the Postfix SMTP server, do not announce or
|
|
# accept SASL authentication over unencrypted connections.
|
|
# http://www.postfix.org/postconf.5.html#smtpd_tls_auth_only
|
|
smtpd_tls_auth_only = {{ "yes" if postfix_smtpd_tls_auth_only | default(true) else "no" }}
|
|
|
|
# smtpd_tls_CApath
|
|
# A directory containing (PEM format) CA certificates of root CAs trusted to
|
|
# sign either remote SMTP client certificates or intermediate CA certificates.
|
|
# http://www.postfix.org/postconf.5.html#smtpd_tls_CApath
|
|
{% if postfix_smtpd_tls_capath is defined and postfix_smtpd_tls_capath | length > 0 %}
|
|
smtpd_tls_CApath = {{ postfix_smtpd_tls_capath }}
|
|
{% else %}
|
|
# smtpd_tls_CApath =
|
|
{% endif %}
|
|
|
|
# smtpd_tls_cert_file
|
|
# File with the Postfix SMTP server RSA certificate in PEM format. This file may
|
|
# also contain the Postfix SMTP server private RSA key.
|
|
# http://www.postfix.org/postconf.5.html#smtpd_tls_cert_file
|
|
{% if postfix_smtpd_tls_cert_file is defined and postfix_smtpd_tls_cert_file | length > 0 %}
|
|
smtpd_tls_cert_file = {{ postfix_smtpd_tls_cert_file }}
|
|
{% else %}
|
|
# smtpd_tls_cert_file =
|
|
{% endif %}
|
|
{% if postfix_smtpd_tls_key_file is defined and postfix_smtpd_tls_key_file | length > 0 %}
|
|
smtpd_tls_key_file = {{ postfix_smtpd_tls_key_file }}
|
|
{% else %}
|
|
# smtpd_tls_key_file =
|
|
{% endif %}
|
|
|
|
# smtpd_tls_loglevel
|
|
# Enable additional Postfix SMTP server logging of TLS activity. Each logging
|
|
# level also includes the information that is logged at a lower logging level.
|
|
# - 0: Disable logging of TLS activity.
|
|
# - 1: Log only a summary message on TLS handshake completion — no logging of
|
|
# client certificate trust-chain verification errors if client certificate
|
|
# verification is not required. With Postfix 2.8 and earlier, log the summary
|
|
# message, peer certificate summary information and unconditionally log
|
|
# trust-chain verification errors.
|
|
# - 2: Also log levels during TLS negotiation.
|
|
# - 3: Also log hexadecimal and ASCII dump of TLS negotiation process.
|
|
# - 4: Also log hexadecimal and ASCII dump of complete transmission after
|
|
# STARTTLS.
|
|
# http://www.postfix.org/postconf.5.html#smtpd_tls_loglevel
|
|
{% if postfix_smtpd_tls_loglevel is defined and postfix_smtpd_tls_loglevel != -1 %}
|
|
smtpd_tls_loglevel = {{ postfix_smtpd_tls_loglevel }}
|
|
{% else %}
|
|
# smtpd_tls_loglevel =
|
|
{% endif %}
|
|
|
|
# smtpd_tls_mandatory_ciphers
|
|
# The minimum TLS cipher grade that the Postfix SMTP server will use with
|
|
# mandatory TLS encryption. The default grade ("medium") is sufficiently strong
|
|
# that any benefit from globally restricting TLS sessions to a more stringent
|
|
# grade is likely negligible, especially given the fact that many
|
|
# implementations still do not offer any stronger ("high" grade) ciphers, while
|
|
# those that do, will always use "high" grade ciphers. So insisting on "high"
|
|
# grade ciphers is generally counter-productive. Allowing "export" or "low"
|
|
# ciphers is typically not a good idea, as systems limited to just these are
|
|
# limited to obsolete browsers. No known SMTP clients fail to support at least
|
|
# one "medium" or "high" grade cipher.
|
|
# http://www.postfix.org/postconf.5.html#smtpd_tls_mandatory_ciphers
|
|
{% if postfix_smtpd_tls_mandatory_ciphers is defined and postfix_smtpd_tls_mandatory_ciphers | length > 0 %}
|
|
smtpd_tls_mandatory_ciphers = {{ postfix_smtpd_tls_mandatory_ciphers }}
|
|
{% else %}
|
|
# smtpd_tls_mandatory_ciphers =
|
|
{% endif %}
|
|
|
|
# smtpd_tls_mandatory_protocols
|
|
# TLS protocols accepted by the Postfix SMTP server with mandatory TLS
|
|
# encryption. If the list is empty, the server supports all available TLS
|
|
# protocol versions. A non-empty value is a list of protocol names to include or
|
|
# exclude, separated by whitespace, commas or colons.
|
|
# http://www.postfix.org/postconf.5.html#smtpd_tls_mandatory_protocols
|
|
{% if postfix_smtpd_tls_mandatory_protocols is defined and postfix_smtpd_tls_mandatory_protocols | length > 0 %}
|
|
smtpd_tls_mandatory_protocols = {{ postfix_smtpd_tls_mandatory_protocols }}
|
|
{% else %}
|
|
# smtpd_tls_mandatory_protocols =
|
|
{% endif %}
|
|
|
|
# TLS protocols accepted by the Postfix SMTP server with opportunistic TLS
|
|
# encryption. If the list is empty, the server supports all available TLS
|
|
# protocol versions. A non-empty value is a list of protocol names to include or
|
|
# exclude, separated by whitespace, commas or colons.
|
|
# http://www.postfix.org/postconf.5.html#smtpd_tls_protocols
|
|
{% if postfix_smtpd_tls_protocols is defined and postfix_smtpd_tls_protocols | length > 0 %}
|
|
smtpd_tls_protocols = {{ postfix_smtpd_tls_protocols }}
|
|
{% else %}
|
|
# smtpd_tls_protocols =
|
|
{% endif %}
|
|
|
|
# smtpd_tls_security_level
|
|
# The SMTP TLS security level for the Postfix SMTP server; when a non-empty
|
|
# value is specified, this overrides the obsolete parameters smtpd_use_tls and
|
|
# smtpd_enforce_tls. This parameter is ignored with "smtpd_tls_wrappermode =
|
|
# yes".
|
|
# http://www.postfix.org/postconf.5.html#smtpd_tls_security_level
|
|
{% if postfix_smtpd_tls_security_level is defined and postfix_smtpd_tls_security_level | length > 0 %}
|
|
smtpd_tls_security_level = {{ postfix_smtpd_tls_security_level }}
|
|
{% else %}
|
|
# smtpd_tls_security_level =
|
|
{% endif %}
|
|
|
|
# smtpd_tls_session_cache_database
|
|
# Name of the file containing the optional Postfix SMTP server TLS session
|
|
# cache. Specify a database type that supports enumeration, such as btree or
|
|
# sdbm; there is no need to support concurrent access. The file is created if it
|
|
# does not exist.
|
|
# http://www.postfix.org/postconf.5.html#smtpd_tls_session_cache_database
|
|
{% if postfix_smtpd_tls_session_cache_database is defined and postfix_smtpd_tls_session_cache_database | length > 0 %}
|
|
smtpd_tls_session_cache_database = {{ postfix_smtpd_tls_session_cache_database }}
|
|
{% else %}
|
|
# smtpd_tls_session_cache_database =
|
|
{% endif %}
|
|
|
|
# strict_rfc821_envelopes
|
|
# Require that addresses received in SMTP MAIL FROM and RCPT TO commands are
|
|
# enclosed with <>, and that those addresses do not contain RFC 822 style
|
|
# comments or phrases. This stops mail from poorly written software.
|
|
# http://www.postfix.org/postconf.5.html#strict_rfc821_envelopes
|
|
strict_rfc821_envelopes = {{ "yes" if postfix_strict_rfc821_envelopes | default(true) else "no" }}
|
|
|
|
# tls_preempt_cipherlist
|
|
# With SSLv3 and later, use the Postfix SMTP server's cipher preference order
|
|
# instead of the remote client's cipher preference order.
|
|
#
|
|
# By default, the OpenSSL server selects the client's most preferred cipher that
|
|
# the server supports. With SSLv3 and later, the server may choose its own most
|
|
# preferred cipher that is supported (offered) by the client. Setting
|
|
# "tls_preempt_cipherlist = yes" enables server cipher preferences.
|
|
# http://www.postfix.org/postconf.5.html#tls_preempt_cipherlist
|
|
tls_preempt_cipherlist = {{ "yes" if postfix_tls_preempt_cipherlist | default(true) else "no" }}
|
|
|
|
# tls_ssl_options
|
|
# List or bit-mask of OpenSSL options to enable.
|
|
# - NO_COMPRESSION:
|
|
# Disable SSL compression even if supported by the OpenSSL
|
|
# library. Compression is CPU-intensive, and compression before encryption
|
|
# does not always improve security.
|
|
# http://www.postfix.org/postconf.5.html#tls_ssl_options
|
|
{% if postfix_tls_ssl_options is defined and postfix_tls_ssl_options | length > 0 %}
|
|
tls_ssl_options = {{ postfix_tls_ssl_options }}
|
|
{% else %}
|
|
# tls_ssl_options =
|
|
{% endif %}
|
|
|
|
# transport_maps
|
|
# Optional lookup tables with mappings from mail address or domain to message
|
|
# delivery transport and next-hop destination.
|
|
# http://www.postfix.org/postconf.5.html#transport_maps
|
|
{% if postfix_transport_maps is defined and (postfix_transport_maps | reject('equalto', '') | list | length) > 0 %}
|
|
transport_maps = {{ postfix_transport_maps | reject('equalto', '') | join(', ') }}
|
|
{% else %}
|
|
# transport_maps =
|
|
{% endif %}
|
|
|
|
# virtual_alias_domains
|
|
# Postfix is final destination for the specified list of virtual alias domains,
|
|
# that is, domains for which all addresses are aliased to addresses in other
|
|
# local or remote domains. The SMTP server validates recipient addresses with
|
|
# $virtual_alias_maps and rejects non-existent recipients.
|
|
# http://www.postfix.org/postconf.5.html#virtual_alias_domains
|
|
{% if postfix_virtual_alias_domains is defined and postfix_virtual_alias_domains | length > 0 %}
|
|
virtual_alias_domains = {{ postfix_virtual_alias_domains }}
|
|
{% else %}
|
|
# virtual_alias_domains =
|
|
{% endif %}
|
|
|
|
# virtual_alias_maps
|
|
# Optional lookup tables that alias specific mail addresses or domains to other
|
|
# local or remote address. The table format and lookups are documented in
|
|
# virtual(5).
|
|
# http://www.postfix.org/postconf.5.html#virtual_alias_maps
|
|
{% if postfix_virtual_alias_maps is defined and (postfix_virtual_alias_maps | reject('equalto', '') | list | length) > 0 %}
|
|
virtual_alias_maps = {{ postfix_virtual_alias_maps | reject('equalto', '') | join(', ') }}
|
|
{% else %}
|
|
# virtual_alias_maps =
|
|
{% endif %}
|
|
|
|
# virtual_mailbox_domains
|
|
# Postfix is final destination for the specified list of domains; mail is
|
|
# delivered via the $virtual_transport mail delivery transport. By default this
|
|
# is the Postfix virtual(8) delivery agent. The SMTP server validates recipient
|
|
# addresses with $virtual_mailbox_maps and rejects mail for non-existent
|
|
# recipients.
|
|
# http://www.postfix.org/postconf.5.html#virtual_mailbox_domains
|
|
{% if postfix_virtual_mailbox_domains is defined and (postfix_virtual_mailbox_domains | reject('equalto', '') | list | length) > 0 %}
|
|
virtual_mailbox_domains = {{ postfix_virtual_mailbox_domains | reject('equalto', '') | join(', ') }}
|
|
{% else %}
|
|
# virtual_mailbox_domains =
|
|
{% endif %}
|
|
|
|
# virtual_mailbox_limit
|
|
# The maximal size in bytes of an individual virtual(8) mailbox or maildir file, or zero (no limit).
|
|
# http://www.postfix.org/postconf.5.html#virtual_mailbox_limit
|
|
{% if postfix_virtual_mailbox_limit is defined and postfix_virtual_mailbox_limit != -1 %}
|
|
virtual_mailbox_limit = {{ postfix_virtual_mailbox_limit }}
|
|
{% else %}
|
|
# virtual_mailbox_limit =
|
|
{% endif %}
|
|
|
|
# virtual_mailbox_maps
|
|
# Optional lookup tables with all valid addresses in the domains that match
|
|
# $virtual_mailbox_domains.
|
|
#
|
|
# In a lookup table, specify a left-hand side of "@domain.tld" to match any user
|
|
# in the specified domain that does not have a specific "user@domain.tld" entry.
|
|
#
|
|
# When a recipient address has an optional address extension
|
|
# (user+foo@domain.tld), the virtual(8) delivery agent looks up the full address
|
|
# first, and when the lookup fails, it looks up the unextended address.
|
|
# http://www.postfix.org/postconf.5.html#virtual_mailbox_maps
|
|
{% if postfix_virtual_mailbox_maps is defined and (postfix_virtual_mailbox_maps | reject('equalto', '') | list | length) > 0 %}
|
|
virtual_mailbox_maps = {{ postfix_virtual_mailbox_maps | reject('equalto', '') | join(', ') }}
|
|
{% else %}
|
|
# virtual_mailbox_maps =
|
|
{% endif %}
|
|
|
|
# virtual_transport
|
|
# The default mail delivery transport and next-hop destination for final
|
|
# delivery to domains listed with $virtual_mailbox_domains. This information can
|
|
# be overruled with the transport(5) table.
|
|
# http://www.postfix.org/postconf.5.html#virtual_transport
|
|
{% if postfix_virtual_transport is defined and postfix_virtual_transport | length > 0 %}
|
|
virtual_transport = {{ postfix_virtual_transport }}
|
|
{% else %}
|
|
# virtual_transport =
|
|
{% endif %}
|