postfix-formula/postfix/files/main.cf
2015-02-05 09:57:18 +01:00

64 lines
2.5 KiB
CFEngine3

{% set config = salt['pillar.get']('postfix', {}) -%}
{% set processed_parameters = ['aliases', 'virtual'] -%}
{% macro set_parameter(parameter, default=None) -%}
{% set value = config.get(parameter, default) -%}
{% if value is not none -%}
{{ parameter }} = {{ value }}
{%- do processed_parameters.append(parameter) -%}
{% endif -%}
{% endmacro -%}
# Managed by config management
# See /usr/share/postfix/main.cf.dist for a commented, more complete version
# Debian 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
{{ set_parameter('smtpd_banner', '$myhostname ESMTP $mail_name') }}
{{ set_parameter('biff', 'no') }}
# appending .domain is the MUA's job.
{{ set_parameter('append_dot_mydomain', 'no') }}
# Uncomment the next line to generate "delayed mail" warnings
#delay_warning_time = 4h
{{ set_parameter('readme_directory', 'no') }}
# TLS parameters
{{ set_parameter('smtpd_tls_cert_file', '/etc/ssl/certs/ssl-cert-snakeoil.pem') }}
{{ set_parameter('smtpd_tls_key_file', '/etc/ssl/private/ssl-cert-snakeoil.key') }}
{{ set_parameter('smtpd_use_tls', 'yes') }}
{{ set_parameter('smtpd_tls_session_cache_database', 'btree:${data_directory}/smtpd_scache') }}
{{ set_parameter('smtp_tls_session_cache_database', 'btree:${data_directory}/smtp_scache') }}
# See /usr/share/doc/postfix/TLS_README.gz in the postfix-doc package for
# information on enabling SSL in the smtp client.
{{ set_parameter('myhostname', grains['fqdn']) }}
{{ set_parameter('alias_maps', 'hash:/etc/aliases') }}
{{ set_parameter('alias_database', 'hash:/etc/aliases') }}
{{ set_parameter('mydestination', grains['fqdn'] + ', localhost, localhost.localdomain, ' + grains['domain'] ) }}
{{ set_parameter('relayhost', '') }}
{{ set_parameter('mynetworks', '127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128') }}
{{ set_parameter('mailbox_size_limit', '0') }}
{{ set_parameter('recipient_delimiter', '+') }}
{{ set_parameter('inet_interfaces', 'all') }}
{{ set_parameter('message_size_limit', '41943040') }}
{{ set_parameter('policyd-spf_time_limit', '3600s') }}
{{ set_parameter('smtpd_relay_restrictions', 'permit_mynetworks permit_sasl_authenticated defer_unauth_destination check_policy_service unix:private/policyd-spf') }}
{% if 'virtual' in pillar.get('postfix','') %}
virtual_alias_maps = hash:/etc/postfix/virtual
{% endif %}
{# Accept arbitrary parameters -#}
{% for parameter in config -%}
{% if parameter not in processed_parameters -%}
{{ set_parameter(parameter) }}
{% endif -%}
{% endfor -%}