Version information
This version is compatible with:
- Puppet Enterprise 2023.2.x, 2023.1.x, 2023.0.x, 2021.7.x, 2021.6.x, 2021.5.x, 2021.4.x, 2021.3.x, 2021.2.x, 2021.1.x, 2021.0.x, 2019.8.x, 2019.7.x, 2019.5.x, 2019.4.x, 2019.3.x, 2019.2.x, 2019.1.x, 2019.0.x, 2018.1.x
- Puppet >=5.5.10 <8.0.0
- , , ,
Start using this module
Add this module to your Puppetfile:
mod 'bodgit-postfix', '3.1.2'
Learn more about managing modules with a PuppetfileDocumentation
postfix
Table of Contents
- Description
- Setup - The basics of getting started with postfix
- Usage - Configuration options and additional functionality
- Reference - An under-the-hood peek at what the module is doing and how
- Limitations - OS compatibility, etc.
- Development - Guide for contributing to the module
Description
This module manages Postfix.
CentOS, RHEL, Scientific and Oracle Enterprise Linux is supported using Puppet 5 or later.
Setup
Beginning with postfix
Configure Postfix with the defaults as shipped by the OS and managing any
aliases using the standard Puppet mailalias
resource type:
include postfix
postfix::lookup::database { '/etc/aliases':
type => 'hash',
}
Mailalias <||> -> Postfix::Lookup::Database['/etc/aliases']
Usage
Configure Postfix with an additional submission service running on TCP port 587:
include postfix
postfix::master { 'submission/inet':
private => 'n',
chroot => 'n',
command => 'smtpd -o smtpd_tls_security_level=encrypt -o smtpd_recipient_restrictions=permit_sasl_authenticated,reject',
}
Configure Postfix for virtual mailbox hosting using LDAP to provide the various lookup tables:
class { 'postfix':
virtual_mailbox_base => '/var/mail/vhosts',
virtual_mailbox_domains => ['ldap:/etc/postfix/virtualdomains.cf'],
virtual_mailbox_maps => ['ldap:/etc/postfix/virtualrecipients.cf'],
virtual_minimum_uid => 100,
virtual_uid_maps => 'static:5000',
virtual_gid_maps => 'static:5000',
}
# Specify connection defaults to enable sharing as per LDAP_README
Postfix::Lookup::Ldap {
server_host => ['ldap://192.0.2.1'],
search_base => 'dc=example,dc=com',
bind_dn => 'cn=Manager,dc=example,dc=com',
bind_pw => 'secret',
version => 3,
}
postfix::lookup::ldap { '/etc/postfix/virtualdomains.cf':
query_filter => '(associatedDomain=%s)',
result_attribute => ['associatedDomain'],
}
postfix::lookup::ldap { '/etc/postfix/virtualrecipients.cf':
query_filter => '(mail=%s)',
result_attribute => ['mail'],
}
Extend the above example to use dovecot-lda(1)
instead of virtual(8)
:
include dovecot
class { 'postfix':
virtual_transport => 'dovecot'
virtual_mailbox_domains => ['ldap:/etc/postfix/virtualdomains.cf'],
virtual_mailbox_maps => ['ldap:/etc/postfix/virtualrecipients.cf'],
}
postfix::main { 'dovecot_destination_recipient_limit':
value => 1,
}
postfix::master { 'dovecot/unix':
chroot => 'n',
command => 'pipe flags=DRhu user=vmail:vmail argv=/path/to/dovecot-lda -f ${sender} -d ${recipient}',
unprivileged => 'n',
require => Class['dovecot'],
}
# Specify connection defaults to enable sharing as per LDAP_README
Postfix::Lookup::Ldap {
server_host => ['ldap://192.0.2.1'],
search_base => 'dc=example,dc=com',
bind_dn => 'cn=Manager,dc=example,dc=com',
bind_pw => 'secret',
version => 3,
}
postfix::lookup::ldap { '/etc/postfix/virtualdomains.cf':
query_filter => '(associatedDomain=%s)',
result_attribute => ['associatedDomain'],
}
postfix::lookup::ldap { '/etc/postfix/virtualrecipients.cf':
query_filter => '(mail=%s)',
result_attribute => ['mail'],
}
Reference
The reference documentation is generated with puppet-strings and the latest version of the documentation is hosted at https://bodgit.github.io/puppet-postfix/ and available also in the REFERENCE.md.
Limitations
This module takes the (somewhat laborious) approach of creating parameters for
each main.cf
setting rather than just pass in a large hash of settings,
which should result in more control.
The only settings deliberately excluded are the following:
${transport}_delivery_slot_cost
${transport}_delivery_slot_discount
${transport}_delivery_slot_loan
${transport}_destination_concurrency_failed_cohort_limit
${transport}_destination_concurrency_limit
${transport}_destination_concurrency_negative_feedback
${transport}_destination_concurrency_positive_feedback
${transport}_destination_rate_delay
${transport}_destination_recipient_limit
${transport}_extra_recipient_limit
${transport}_minimum_delivery_slots
${transport}_recipient_limit
${transport}_recipient_refill_delay
${transport}_recipient_refill_limit
For these, use the postfix::main
defined type.
Because Postfix allows you to recursively define parameters in terms of other parameters it makes validating values impossible unless that convention is forbidden. Currently this module allows recursive parameter expansion and so only validates that values are either strings or arrays (of strings).
Any setting that accepts a boolean yes
/no
value also accepts native Puppet
boolean values. Any multi-valued setting accepts an array of values.
For referring to other settings, ensure that the $
is escaped appropriately
using either \
or ''
to prevent Puppet expanding the variable itself.
This module has been built on and tested against Puppet 5 and higher.
The module has been tested on:
- Red Hat/CentOS Enterprise Linux 6/7/8
Development
The module relies on PDK and has both rspec-puppet and Litmus tests. Run them with:
$ bundle exec rake spec
$ bundle exec rake litmus:*
Please log issues or pull requests at github.
Reference
Table of Contents
Classes
postfix
: Manage Postfix.postfix::config
postfix::install
postfix::service
Defined types
postfix::lookup::database
: Define lookup tables using static database files.postfix::lookup::ldap
: Define an LDAP lookup table.postfix::lookup::memcache
: Define a Memcache lookup table.postfix::lookup::mysql
: Define a MySQL lookup table.postfix::lookup::pgsql
: Define a PostgreSQL lookup table.postfix::lookup::sqlite
: Define an SQLite lookup table.postfix::main
: Define additional Postfix settings. Any settings not (yet) implemented in the main class or per-transport settings can be defined here.postfix::master
: Define additional Postfix services.
Resource types
postfix_main
: Manages Postfix settings. The resource name can be used as a shortcut for specifying the setting parameter.postfix_master
: Manages Postfix services. The resource name can be used as a shortcut for specifying the service and type parameters by using the form `<ser
Functions
postfix::flatten_host
: Flatten a host structure to a string.postfix::flatten_hosts
: Flatten an array of host structures to an array of strings.
Data types
Postfix::Type::Lookup
Postfix::Type::Lookup::Database
Postfix::Type::Lookup::Database::Flat
Postfix::Type::Lookup::Database::Hashed
Postfix::Type::Lookup::LDAP::Host
Postfix::Type::Lookup::Memcache::Host
Postfix::Type::Lookup::MySQL::Host
Postfix::Type::Lookup::PgSQL::Host
Classes
postfix
Manage Postfix.
-
Since 1.0.0
-
See also
- puppet_defined_types::postfix::main
- postfix::main
- puppet_defined_types::postfix::master
- postfix::master
- puppet_defined_types::postfix::lookup::database
- postfix::lookup::database
- puppet_defined_types::postfix::lookup::ldap
- postfix::lookup::ldap
- puppet_defined_types::postfix::lookup::memcache
- postfix::lookup::memcache
- puppet_defined_types::postfix::lookup::mysql
- postfix::lookup::mysql
- puppet_defined_types::postfix::lookup::pgsql
- postfix::lookup::pgsql
- puppet_defined_types::postfix::lookup::sqlite
- postfix::lookup::sqlite
- puppet_defined_types::postfix::main
Examples
Configure Postfix with the defaults as shipped by the OS and managing any aliases using the standard Puppet mailalias
resource type
include postfix
postfix::lookup::database { '/etc/aliases':
type => 'hash',
}
Mailalias <||> -> Postfix::Lookup::Database['/etc/aliases']
Configure Postfix with an additional submission service running on TCP port 587
include postfix
postfix::master { 'submission/inet':
private => 'n',
chroot => 'n',
command => 'smtpd -o smtpd_tls_security_level=encrypt -o smtpd_recipient_restrictions=permit_sasl_authenticated,reject',
}
Configure Postfix for virtual mailbox hosting using LDAP to provide the various lookup tables
class { 'postfix':
virtual_mailbox_base => '/var/mail/vhosts',
virtual_mailbox_domains => ['ldap:/etc/postfix/virtualdomains.cf'],
virtual_mailbox_maps => ['ldap:/etc/postfix/virtualrecipients.cf'],
virtual_minimum_uid => 100,
virtual_uid_maps => 'static:5000',
virtual_gid_maps => 'static:5000',
}
# Specify connection defaults to enable sharing as per LDAP_README
Postfix::Lookup::Ldap {
server_host => ['ldap://192.0.2.1'],
search_base => 'dc=example,dc=com',
bind_dn => 'cn=Manager,dc=example,dc=com',
bind_pw => 'secret',
version => 3,
}
postfix::lookup::ldap { '/etc/postfix/virtualdomains.cf':
query_filter => '(associatedDomain=%s)',
result_attribute => ['associatedDomain'],
}
postfix::lookup::ldap { '/etc/postfix/virtualrecipients.cf':
query_filter => '(mail=%s)',
result_attribute => ['mail'],
}
Parameters
The following parameters are available in the postfix
class:
conf_dir
services
lookup_packages
package_name
service_name
twobounce_notice_recipient
access_map_defer_code
access_map_reject_code
address_verify_cache_cleanup_interval
address_verify_default_transport
address_verify_local_transport
address_verify_map
address_verify_negative_cache
address_verify_negative_expire_time
address_verify_negative_refresh_time
address_verify_poll_count
address_verify_poll_delay
address_verify_positive_expire_time
address_verify_positive_refresh_time
address_verify_relay_transport
address_verify_relayhost
address_verify_sender
address_verify_sender_dependent_default_transport_maps
address_verify_sender_dependent_relayhost_maps
address_verify_sender_ttl
address_verify_service_name
address_verify_transport_maps
address_verify_virtual_transport
alias_database
alias_maps
allow_mail_to_commands
allow_mail_to_files
allow_min_user
allow_percent_hack
allow_untrusted_routing
alternate_config_directories
always_add_missing_headers
always_bcc
anvil_rate_time_unit
anvil_status_update_time
append_at_myorigin
append_dot_mydomain
application_event_drain_time
authorized_flush_users
authorized_mailq_users
authorized_submit_users
backwards_bounce_logfile_compatibility
berkeley_db_create_buffer_size
berkeley_db_read_buffer_size
best_mx_transport
biff
body_checks
body_checks_size_limit
bounce_notice_recipient
bounce_queue_lifetime
bounce_service_name
bounce_size_limit
bounce_template_file
broken_sasl_auth_clients
canonical_classes
canonical_maps
cleanup_service_name
command_directory
command_execution_directory
command_expansion_filter
command_time_limit
compatibility_level
config_directory
connection_cache_protocol_timeout
connection_cache_service_name
connection_cache_status_update_time
connection_cache_ttl_limit
content_filter
cyrus_sasl_config_path
daemon_directory
daemon_table_open_error_is_fatal
daemon_timeout
data_directory
debug_peer_level
debug_peer_list
debugger_command
default_database_type
default_delivery_slot_cost
default_delivery_slot_discount
default_delivery_slot_loan
default_destination_concurrency_failed_cohort_limit
default_destination_concurrency_limit
default_destination_concurrency_negative_feedback
default_destination_concurrency_positive_feedback
default_destination_rate_delay
default_destination_recipient_limit
default_extra_recipient_limit
default_filter_nexthop
default_minimum_delivery_slots
default_privs
default_process_limit
default_rbl_reply
default_recipient_limit
default_recipient_refill_delay
default_recipient_refill_limit
default_transport
default_verp_delimiters
defer_code
defer_service_name
defer_transports
delay_logging_resolution_limit
delay_notice_recipient
delay_warning_time
deliver_lock_attempts
deliver_lock_delay
destination_concurrency_feedback_debug
detect_8bit_encoding_header
disable_dns_lookups
disable_mime_input_processing
disable_mime_output_conversion
disable_verp_bounces
disable_vrfy_command
dnsblog_reply_delay
dnsblog_service_name
dont_remove
double_bounce_sender
duplicate_filter_limit
empty_address_default_transport_maps_lookup_key
empty_address_recipient
empty_address_relayhost_maps_lookup_key
enable_long_queue_ids
enable_original_recipient
error_notice_recipient
error_service_name
execution_directory_expansion_filter
expand_owner_alias
export_environment
fallback_transport
fallback_transport_maps
fast_flush_domains
fast_flush_purge_time
fast_flush_refresh_time
fault_injection_code
flush_service_name
fork_attempts
fork_delay
forward_expansion_filter
forward_path
frozen_delivered_to
hash_queue_depth
hash_queue_names
header_address_token_limit
header_checks
header_size_limit
helpful_warnings
home_mailbox
hopcount_limit
html_directory
ignore_mx_lookup_error
import_environment
in_flow_delay
inet_interfaces
inet_protocols
initial_destination_concurrency
internal_mail_filter_classes
invalid_hostname_reject_code
ipc_idle
ipc_timeout
ipc_ttl
line_length_limit
lmtp_address_preference
lmtp_assume_final
lmtp_bind_address
lmtp_bind_address6
lmtp_body_checks
lmtp_cname_overrides_servername
lmtp_connect_timeout
lmtp_connection_cache_destinations
lmtp_connection_cache_on_demand
lmtp_connection_cache_time_limit
lmtp_connection_reuse_time_limit
lmtp_data_done_timeout
lmtp_data_init_timeout
lmtp_data_xfer_timeout
lmtp_defer_if_no_mx_address_found
lmtp_discard_lhlo_keyword_address_maps
lmtp_discard_lhlo_keywords
lmtp_dns_resolver_options
lmtp_enforce_tls
lmtp_generic_maps
lmtp_header_checks
lmtp_host_lookup
lmtp_lhlo_name
lmtp_lhlo_timeout
lmtp_line_length_limit
lmtp_mail_timeout
lmtp_mime_header_checks
lmtp_mx_address_limit
lmtp_mx_session_limit
lmtp_nested_header_checks
lmtp_per_record_deadline
lmtp_pix_workaround_delay_time
lmtp_pix_workaround_maps
lmtp_pix_workaround_threshold_time
lmtp_pix_workarounds
lmtp_quit_timeout
lmtp_quote_rfc821_envelope
lmtp_randomize_addresses
lmtp_rcpt_timeout
lmtp_reply_filter
lmtp_rset_timeout
lmtp_sasl_auth_cache_name
lmtp_sasl_auth_cache_time
lmtp_sasl_auth_enable
lmtp_sasl_auth_soft_bounce
lmtp_sasl_mechanism_filter
lmtp_sasl_password_maps
lmtp_sasl_path
lmtp_sasl_security_options
lmtp_sasl_tls_security_options
lmtp_sasl_tls_verified_security_options
lmtp_sasl_type
lmtp_send_dummy_mail_auth
lmtp_send_xforward_command
lmtp_sender_dependent_authentication
lmtp_skip_5xx_greeting
lmtp_skip_quit_response
lmtp_starttls_timeout
lmtp_tcp_port
lmtp_tls_cafile
lmtp_tls_capath
lmtp_tls_block_early_mail_reply
lmtp_tls_cert_file
lmtp_tls_ciphers
lmtp_tls_dcert_file
lmtp_tls_dkey_file
lmtp_tls_eccert_file
lmtp_tls_eckey_file
lmtp_tls_enforce_peername
lmtp_tls_exclude_ciphers
lmtp_tls_fingerprint_cert_match
lmtp_tls_fingerprint_digest
lmtp_tls_key_file
lmtp_tls_loglevel
lmtp_tls_mandatory_ciphers
lmtp_tls_mandatory_exclude_ciphers
lmtp_tls_mandatory_protocols
lmtp_tls_note_starttls_offer
lmtp_tls_per_site
lmtp_tls_policy_maps
lmtp_tls_protocols
lmtp_tls_scert_verifydepth
lmtp_tls_secure_cert_match
lmtp_tls_security_level
lmtp_tls_session_cache_database
lmtp_tls_session_cache_timeout
lmtp_tls_verify_cert_match
lmtp_use_tls
lmtp_xforward_timeout
local_command_shell
local_header_rewrite_clients
local_recipient_maps
local_transport
luser_relay
mail_name
mail_owner
mail_release_date
mail_spool_directory
mail_version
mailbox_command
mailbox_command_maps
mailbox_delivery_lock
mailbox_size_limit
mailbox_transport
mailbox_transport_maps
mailq_path
manpage_directory
maps_rbl_domains
maps_rbl_reject_code
masquerade_classes
masquerade_domains
masquerade_exceptions
master_service_disable
max_idle
max_use
maximal_backoff_time
maximal_queue_lifetime
message_reject_characters
message_size_limit
message_strip_characters
meta_directory
milter_command_timeout
milter_connect_macros
milter_connect_timeout
milter_content_timeout
milter_data_macros
milter_default_action
milter_end_of_data_macros
milter_end_of_header_macros
milter_header_checks
milter_helo_macros
milter_macro_daemon_name
milter_macro_v
milter_mail_macros
milter_protocol
milter_rcpt_macros
milter_unknown_command_macros
mime_boundary_length_limit
mime_header_checks
mime_nesting_limit
minimal_backoff_time
multi_instance_directories
multi_instance_enable
multi_instance_group
multi_instance_name
multi_instance_wrapper
multi_recipient_bounce_reject_code
mydestination
mydomain
myhostname
mynetworks
mynetworks_style
myorigin
nested_header_checks
newaliases_path
non_fqdn_reject_code
non_smtpd_milters
notify_classes
owner_request_special
parent_domain_matches_subdomains
permit_mx_backup_networks
pickup_service_name
plaintext_reject_code
postmulti_control_commands
postmulti_start_commands
postmulti_stop_commands
postscreen_access_list
postscreen_bare_newline_action
postscreen_bare_newline_enable
postscreen_bare_newline_ttl
postscreen_blacklist_action
postscreen_cache_cleanup_interval
postscreen_cache_map
postscreen_cache_retention_time
postscreen_client_connection_count_limit
postscreen_command_count_limit
postscreen_command_filter
postscreen_command_time_limit
postscreen_disable_vrfy_command
postscreen_discard_ehlo_keyword_address_maps
postscreen_discard_ehlo_keywords
postscreen_dnsbl_action
postscreen_dnsbl_reply_map
postscreen_dnsbl_sites
postscreen_dnsbl_threshold
postscreen_dnsbl_ttl
postscreen_enforce_tls
postscreen_expansion_filter
postscreen_forbidden_commands
postscreen_greet_action
postscreen_greet_banner
postscreen_greet_ttl
postscreen_greet_wait
postscreen_helo_required
postscreen_non_smtp_command_action
postscreen_non_smtp_command_enable
postscreen_non_smtp_command_ttl
postscreen_pipelining_action
postscreen_pipelining_enable
postscreen_pipelining_ttl
postscreen_post_queue_limit
postscreen_pre_queue_limit
postscreen_reject_footer
postscreen_tls_security_level
postscreen_upstream_proxy_protocol
postscreen_upstream_proxy_timeout
postscreen_use_tls
postscreen_watchdog_timeout
postscreen_whitelist_interfaces
prepend_delivered_header
process_id_directory
propagate_unmatched_extensions
proxy_interfaces
proxy_read_maps
proxy_write_maps
proxymap_service_name
proxywrite_service_name
qmgr_clog_warn_time
qmgr_daemon_timeout
qmgr_fudge_factor
qmgr_ipc_timeout
qmgr_message_active_limit
qmgr_message_recipient_limit
qmgr_message_recipient_minimum
qmqpd_authorized_clients
qmqpd_client_port_logging
qmqpd_error_delay
qmqpd_timeout
queue_directory
queue_file_attribute_count_limit
queue_minfree
queue_run_delay
queue_service_name
rbl_reply_maps
readme_directory
receive_override_options
recipient_bcc_maps
recipient_canonical_classes
recipient_canonical_maps
recipient_delimiter
reject_code
reject_tempfail_action
relay_clientcerts
relay_domains
relay_domains_reject_code
relay_recipient_maps
relay_transport
relayhost
relocated_maps
remote_header_rewrite_domain
require_home_directory
reset_owner_alias
resolve_dequoted_address
resolve_null_domain
resolve_numeric_domain
rewrite_service_name
sample_directory
send_cyrus_sasl_authzid
sender_bcc_maps
sender_canonical_classes
sender_canonical_maps
sender_dependent_default_transport_maps
sender_dependent_relayhost_maps
sendmail_fix_line_endings
sendmail_path
service_throttle_time
setgid_group
shlib_directory
show_user_unknown_table_name
showq_service_name
smtp_address_preference
smtp_always_send_ehlo
smtp_bind_address
smtp_bind_address6
smtp_body_checks
smtp_cname_overrides_servername
smtp_connect_timeout
smtp_connection_cache_destinations
smtp_connection_cache_on_demand
smtp_connection_cache_time_limit
smtp_connection_reuse_time_limit
smtp_data_done_timeout
smtp_data_init_timeout
smtp_data_xfer_timeout
smtp_defer_if_no_mx_address_found
smtp_discard_ehlo_keyword_address_maps
smtp_discard_ehlo_keywords
smtp_dns_resolver_options
smtp_enforce_tls
smtp_fallback_relay
smtp_generic_maps
smtp_header_checks
smtp_helo_name
smtp_helo_timeout
smtp_host_lookup
smtp_line_length_limit
smtp_mail_timeout
smtp_mime_header_checks
smtp_mx_address_limit
smtp_mx_session_limit
smtp_nested_header_checks
smtp_never_send_ehlo
smtp_per_record_deadline
smtp_pix_workaround_delay_time
smtp_pix_workaround_maps
smtp_pix_workaround_threshold_time
smtp_pix_workarounds
smtp_quit_timeout
smtp_quote_rfc821_envelope
smtp_randomize_addresses
smtp_rcpt_timeout
smtp_reply_filter
smtp_rset_timeout
smtp_sasl_auth_cache_name
smtp_sasl_auth_cache_time
smtp_sasl_auth_enable
smtp_sasl_auth_soft_bounce
smtp_sasl_mechanism_filter
smtp_sasl_password_maps
smtp_sasl_path
smtp_sasl_security_options
smtp_sasl_tls_security_options
smtp_sasl_tls_verified_security_options
smtp_sasl_type
smtp_send_dummy_mail_auth
smtp_send_xforward_command
smtp_sender_dependent_authentication
smtp_skip_5xx_greeting
smtp_skip_quit_response
smtp_starttls_timeout
smtp_tls_cafile
smtp_tls_capath
smtp_tls_block_early_mail_reply
smtp_tls_cert_file
smtp_tls_ciphers
smtp_tls_dcert_file
smtp_tls_dkey_file
smtp_tls_eccert_file
smtp_tls_eckey_file
smtp_tls_enforce_peername
smtp_tls_exclude_ciphers
smtp_tls_fingerprint_cert_match
smtp_tls_fingerprint_digest
smtp_tls_key_file
smtp_tls_loglevel
smtp_tls_mandatory_ciphers
smtp_tls_mandatory_exclude_ciphers
smtp_tls_mandatory_protocols
smtp_tls_note_starttls_offer
smtp_tls_per_site
smtp_tls_policy_maps
smtp_tls_protocols
smtp_tls_scert_verifydepth
smtp_tls_secure_cert_match
smtp_tls_security_level
smtp_tls_session_cache_database
smtp_tls_session_cache_timeout
smtp_tls_verify_cert_match
smtp_use_tls
smtp_xforward_timeout
smtpd_authorized_verp_clients
smtpd_authorized_xclient_hosts
smtpd_authorized_xforward_hosts
smtpd_banner
smtpd_client_connection_count_limit
smtpd_client_connection_rate_limit
smtpd_client_event_limit_exceptions
smtpd_client_message_rate_limit
smtpd_client_new_tls_session_rate_limit
smtpd_client_port_logging
smtpd_client_recipient_rate_limit
smtpd_client_restrictions
smtpd_command_filter
smtpd_data_restrictions
smtpd_delay_open_until_valid_rcpt
smtpd_delay_reject
smtpd_discard_ehlo_keyword_address_maps
smtpd_discard_ehlo_keywords
smtpd_end_of_data_restrictions
smtpd_enforce_tls
smtpd_error_sleep_time
smtpd_etrn_restrictions
smtpd_expansion_filter
smtpd_forbidden_commands
smtpd_hard_error_limit
smtpd_helo_required
smtpd_helo_restrictions
smtpd_history_flush_threshold
smtpd_junk_command_limit
smtpd_log_access_permit_actions
smtpd_milters
smtpd_noop_commands
smtpd_null_access_lookup_key
smtpd_peername_lookup
smtpd_per_record_deadline
smtpd_policy_service_max_idle
smtpd_policy_service_max_ttl
smtpd_policy_service_timeout
smtpd_proxy_ehlo
smtpd_proxy_filter
smtpd_proxy_options
smtpd_proxy_timeout
smtpd_recipient_limit
smtpd_recipient_overshoot_limit
smtpd_recipient_restrictions
smtpd_reject_footer
smtpd_reject_unlisted_recipient
smtpd_reject_unlisted_sender
smtpd_relay_restrictions
smtpd_restriction_classes
smtpd_sasl_auth_enable
smtpd_sasl_authenticated_header
smtpd_sasl_exceptions_networks
smtpd_sasl_local_domain
smtpd_sasl_path
smtpd_sasl_security_options
smtpd_sasl_tls_security_options
smtpd_sasl_type
smtpd_sender_login_maps
smtpd_sender_restrictions
smtpd_service_name
smtpd_soft_error_limit
smtpd_starttls_timeout
smtpd_timeout
smtpd_tls_cafile
smtpd_tls_capath
smtpd_tls_always_issue_session_ids
smtpd_tls_ask_ccert
smtpd_tls_auth_only
smtpd_tls_ccert_verifydepth
smtpd_tls_cert_file
smtpd_tls_ciphers
smtpd_tls_dcert_file
smtpd_tls_dh1024_param_file
smtpd_tls_dh512_param_file
smtpd_tls_dkey_file
smtpd_tls_eccert_file
smtpd_tls_eckey_file
smtpd_tls_eecdh_grade
smtpd_tls_exclude_ciphers
smtpd_tls_fingerprint_digest
smtpd_tls_key_file
smtpd_tls_loglevel
smtpd_tls_mandatory_ciphers
smtpd_tls_mandatory_exclude_ciphers
smtpd_tls_mandatory_protocols
smtpd_tls_protocols
smtpd_tls_received_header
smtpd_tls_req_ccert
smtpd_tls_security_level
smtpd_tls_session_cache_database
smtpd_tls_session_cache_timeout
smtpd_tls_wrappermode
smtpd_upstream_proxy_protocol
smtpd_upstream_proxy_timeout
smtpd_use_tls
soft_bounce
stale_lock_time
strict_7bit_headers
strict_8bitmime
strict_8bitmime_body
strict_mailbox_ownership
strict_mime_encoding_domain
strict_rfc821_envelopes
sun_mailtool_compatibility
swap_bangpath
syslog_facility
syslog_name
tcp_windowsize
tls_append_default_ca
tls_daemon_random_bytes
tls_disable_workarounds
tls_eecdh_strong_curve
tls_eecdh_ultra_curve
tls_export_cipherlist
tls_high_cipherlist
tls_legacy_public_key_fingerprints
tls_low_cipherlist
tls_medium_cipherlist
tls_null_cipherlist
tls_preempt_cipherlist
tls_random_bytes
tls_random_exchange_name
tls_random_prng_update_period
tls_random_reseed_period
tls_random_source
tlsproxy_enforce_tls
tlsproxy_service_name
tlsproxy_tls_cafile
tlsproxy_tls_capath
tlsproxy_tls_always_issue_session_ids
tlsproxy_tls_ask_ccert
tlsproxy_tls_ccert_verifydepth
tlsproxy_tls_cert_file
tlsproxy_tls_ciphers
tlsproxy_tls_dcert_file
tlsproxy_tls_dh1024_param_file
tlsproxy_tls_dh512_param_file
tlsproxy_tls_dkey_file
tlsproxy_tls_eccert_file
tlsproxy_tls_eckey_file
tlsproxy_tls_eecdh_grade
tlsproxy_tls_exclude_ciphers
tlsproxy_tls_fingerprint_digest
tlsproxy_tls_key_file
tlsproxy_tls_loglevel
tlsproxy_tls_mandatory_ciphers
tlsproxy_tls_mandatory_exclude_ciphers
tlsproxy_tls_mandatory_protocols
tlsproxy_tls_protocols
tlsproxy_tls_req_ccert
tlsproxy_tls_security_level
tlsproxy_tls_session_cache_timeout
tlsproxy_use_tls
tlsproxy_watchdog_timeout
trace_service_name
transport_maps
transport_retry_time
trigger_timeout
undisclosed_recipients_header
unknown_address_reject_code
unknown_address_tempfail_action
unknown_client_reject_code
unknown_helo_hostname_tempfail_action
unknown_hostname_reject_code
unknown_local_recipient_reject_code
unknown_relay_recipient_reject_code
unknown_virtual_alias_reject_code
unknown_virtual_mailbox_reject_code
unverified_recipient_defer_code
unverified_recipient_reject_code
unverified_recipient_reject_reason
unverified_recipient_tempfail_action
unverified_sender_defer_code
unverified_sender_reject_code
unverified_sender_reject_reason
unverified_sender_tempfail_action
verp_delimiter_filter
virtual_alias_domains
virtual_alias_expansion_limit
virtual_alias_maps
virtual_alias_recursion_limit
virtual_gid_maps
virtual_mailbox_base
virtual_mailbox_domains
virtual_mailbox_limit
virtual_mailbox_lock
virtual_mailbox_maps
virtual_minimum_uid
virtual_transport
virtual_uid_maps
conf_dir
Data type: Stdlib::Absolutepath
services
Data type: Hash[String, Hash[String, Any]]
lookup_packages
Data type: Hash[Postfix::Type::Lookup, String]
package_name
Data type: String
service_name
Data type: String
twobounce_notice_recipient
Data type: Optional[String]
2bounce_notice_recipient
is a violation
of Puppet variable naming conventions.
access_map_defer_code
Data type: Optional[String]
access_map_reject_code
Data type: Optional[String]
address_verify_cache_cleanup_interval
Data type: Optional[String]
address_verify_default_transport
Data type: Optional[String]
address_verify_local_transport
Data type: Optional[String]
address_verify_map
Data type: Optional[String]
address_verify_negative_cache
Data type: Optional[Variant[Boolean, String]]
address_verify_negative_expire_time
Data type: Optional[String]
address_verify_negative_refresh_time
Data type: Optional[String]
address_verify_poll_count
Data type: Optional[String]
address_verify_poll_delay
Data type: Optional[String]
address_verify_positive_expire_time
Data type: Optional[String]
address_verify_positive_refresh_time
Data type: Optional[String]
address_verify_relay_transport
Data type: Optional[String]
address_verify_relayhost
Data type: Optional[String]
address_verify_sender
Data type: Optional[String]
address_verify_sender_dependent_default_transport_maps
Data type: Optional[Array[String, 1]]
address_verify_sender_dependent_relayhost_maps
Data type: Optional[Array[String, 1]]
address_verify_sender_ttl
Data type: Optional[String]
address_verify_service_name
Data type: Optional[String]
address_verify_transport_maps
Data type: Optional[Array[String, 1]]
address_verify_virtual_transport
Data type: Optional[String]
alias_database
Data type: Optional[Array[String, 1]]
alias_maps
Data type: Optional[Array[String, 1]]
allow_mail_to_commands
Data type: Optional[Array[String, 1]]
allow_mail_to_files
Data type: Optional[Array[String, 1]]
allow_min_user
Data type: Optional[Variant[Boolean, String]]
allow_percent_hack
Data type: Optional[Variant[Boolean, String]]
allow_untrusted_routing
Data type: Optional[Variant[Boolean, String]]
alternate_config_directories
Data type: Optional[Array[String, 1]]
always_add_missing_headers
Data type: Optional[Variant[Boolean, String]]
always_bcc
Data type: Optional[String]
anvil_rate_time_unit
Data type: Optional[String]
anvil_status_update_time
Data type: Optional[String]
append_at_myorigin
Data type: Optional[Variant[Boolean, String]]
append_dot_mydomain
Data type: Optional[Variant[Boolean, String]]
application_event_drain_time
Data type: Optional[String]
authorized_flush_users
Data type: Optional[Array[String, 1]]
authorized_mailq_users
Data type: Optional[Array[String, 1]]
authorized_submit_users
Data type: Optional[Array[String, 1]]
backwards_bounce_logfile_compatibility
Data type: Optional[Variant[Boolean, String]]
berkeley_db_create_buffer_size
Data type: Optional[String]
berkeley_db_read_buffer_size
Data type: Optional[String]
best_mx_transport
Data type: Optional[String]
biff
Data type: Optional[Variant[Boolean, String]]
body_checks
Data type: Optional[Array[String, 1]]
body_checks_size_limit
Data type: Optional[String]
bounce_notice_recipient
Data type: Optional[String]
bounce_queue_lifetime
Data type: Optional[String]
bounce_service_name
Data type: Optional[String]
bounce_size_limit
Data type: Optional[String]
bounce_template_file
Data type: Optional[String]
broken_sasl_auth_clients
Data type: Optional[Variant[Boolean, String]]
canonical_classes
Data type: Optional[Array[String, 1]]
canonical_maps
Data type: Optional[Array[String, 1]]
cleanup_service_name
Data type: Optional[String]
command_directory
Data type: Optional[String]
command_execution_directory
Data type: Optional[String]
command_expansion_filter
Data type: Optional[String]
command_time_limit
Data type: Optional[String]
compatibility_level
Data type: Optional[String]
config_directory
Data type: Optional[String]
connection_cache_protocol_timeout
Data type: Optional[String]
connection_cache_service_name
Data type: Optional[String]
connection_cache_status_update_time
Data type: Optional[String]
connection_cache_ttl_limit
Data type: Optional[String]
content_filter
Data type: Optional[String]
cyrus_sasl_config_path
Data type: Optional[Array[String, 1]]
daemon_directory
Data type: Optional[String]
daemon_table_open_error_is_fatal
Data type: Optional[Variant[Boolean, String]]
daemon_timeout
Data type: Optional[String]
data_directory
Data type: Optional[String]
debug_peer_level
Data type: Optional[String]
debug_peer_list
Data type: Optional[Array[String, 1]]
debugger_command
Data type: Optional[String]
default_database_type
Data type: Postfix::Type::Lookup::Database
default_delivery_slot_cost
Data type: Optional[String]
default_delivery_slot_discount
Data type: Optional[String]
default_delivery_slot_loan
Data type: Optional[String]
default_destination_concurrency_failed_cohort_limit
Data type: Optional[String]
default_destination_concurrency_limit
Data type: Optional[String]
default_destination_concurrency_negative_feedback
Data type: Optional[String]
default_destination_concurrency_positive_feedback
Data type: Optional[String]
default_destination_rate_delay
Data type: Optional[String]
default_destination_recipient_limit
Data type: Optional[String]
default_extra_recipient_limit
Data type: Optional[String]
default_filter_nexthop
Data type: Optional[String]
default_minimum_delivery_slots
Data type: Optional[String]
default_privs
Data type: Optional[String]
default_process_limit
Data type: Optional[String]
default_rbl_reply
Data type: Optional[String]
default_recipient_limit
Data type: Optional[String]
default_recipient_refill_delay
Data type: Optional[String]
default_recipient_refill_limit
Data type: Optional[String]
default_transport
Data type: Optional[String]
default_verp_delimiters
Data type: Optional[String]
defer_code
Data type: Optional[String]
defer_service_name
Data type: Optional[String]
defer_transports
Data type: Optional[Array[String, 1]]
delay_logging_resolution_limit
Data type: Optional[String]
delay_notice_recipient
Data type: Optional[String]
delay_warning_time
Data type: Optional[String]
deliver_lock_attempts
Data type: Optional[String]
deliver_lock_delay
Data type: Optional[String]
destination_concurrency_feedback_debug
Data type: Optional[Variant[Boolean, String]]
detect_8bit_encoding_header
Data type: Optional[Variant[Boolean, String]]
disable_dns_lookups
Data type: Optional[Variant[Boolean, String]]
disable_mime_input_processing
Data type: Optional[Variant[Boolean, String]]
disable_mime_output_conversion
Data type: Optional[Variant[Boolean, String]]
disable_verp_bounces
Data type: Optional[Variant[Boolean, String]]
disable_vrfy_command
Data type: Optional[Variant[Boolean, String]]
dnsblog_reply_delay
Data type: Optional[String]
dnsblog_service_name
Data type: Optional[String]
dont_remove
Data type: Optional[String]
double_bounce_sender
Data type: Optional[String]
duplicate_filter_limit
Data type: Optional[String]
empty_address_default_transport_maps_lookup_key
Data type: Optional[String]
empty_address_recipient
Data type: Optional[String]
empty_address_relayhost_maps_lookup_key
Data type: Optional[String]
enable_long_queue_ids
Data type: Optional[Variant[Boolean, String]]
enable_original_recipient
Data type: Optional[Variant[Boolean, String]]
error_notice_recipient
Data type: Optional[String]
error_service_name
Data type: Optional[String]
execution_directory_expansion_filter
Data type: Optional[String]
expand_owner_alias
Data type: Optional[Variant[Boolean, String]]
export_environment
Data type: Optional[Array[String, 1]]
fallback_transport
Data type: Optional[String]
fallback_transport_maps
Data type: Optional[Array[String, 1]]
fast_flush_domains
Data type: Optional[Array[String, 1]]
fast_flush_purge_time
Data type: Optional[String]
fast_flush_refresh_time
Data type: Optional[String]
fault_injection_code
Data type: Optional[String]
flush_service_name
Data type: Optional[String]
fork_attempts
Data type: Optional[String]
fork_delay
Data type: Optional[String]
forward_expansion_filter
Data type: Optional[String]
forward_path
Data type: Optional[Array[String, 1]]
frozen_delivered_to
Data type: Optional[Variant[Boolean, String]]
hash_queue_depth
Data type: Optional[String]
hash_queue_names
Data type: Optional[Array[String, 1]]
header_address_token_limit
Data type: Optional[String]
header_checks
Data type: Optional[Array[String, 1]]
header_size_limit
Data type: Optional[String]
helpful_warnings
Data type: Optional[Variant[Boolean, String]]
home_mailbox
Data type: Optional[String]
hopcount_limit
Data type: Optional[String]
html_directory
Data type: Optional[Variant[Boolean, String]]
ignore_mx_lookup_error
Data type: Optional[Variant[Boolean, String]]
import_environment
Data type: Optional[Array[String, 1]]
in_flow_delay
Data type: Optional[String]
inet_interfaces
Data type: Optional[Array[String, 1]]
inet_protocols
Data type: Optional[Array[String, 1]]
initial_destination_concurrency
Data type: Optional[String]
internal_mail_filter_classes
Data type: Optional[Array[String, 1]]
invalid_hostname_reject_code
Data type: Optional[String]
ipc_idle
Data type: Optional[String]
ipc_timeout
Data type: Optional[String]
ipc_ttl
Data type: Optional[String]
line_length_limit
Data type: Optional[String]
lmtp_address_preference
Data type: Optional[String]
lmtp_assume_final
Data type: Optional[Variant[Boolean, String]]
lmtp_bind_address
Data type: Optional[String]
lmtp_bind_address6
Data type: Optional[String]
lmtp_body_checks
Data type: Optional[Array[String, 1]]
lmtp_cname_overrides_servername
Data type: Optional[Variant[Boolean, String]]
lmtp_connect_timeout
Data type: Optional[String]
lmtp_connection_cache_destinations
Data type: Optional[Array[String, 1]]
lmtp_connection_cache_on_demand
Data type: Optional[Variant[Boolean, String]]
lmtp_connection_cache_time_limit
Data type: Optional[String]
lmtp_connection_reuse_time_limit
Data type: Optional[String]
lmtp_data_done_timeout
Data type: Optional[String]
lmtp_data_init_timeout
Data type: Optional[String]
lmtp_data_xfer_timeout
Data type: Optional[String]
lmtp_defer_if_no_mx_address_found
Data type: Optional[Variant[Boolean, String]]
lmtp_discard_lhlo_keyword_address_maps
Data type: Optional[Array[String, 1]]
lmtp_discard_lhlo_keywords
Data type: Optional[Array[String, 1]]
lmtp_dns_resolver_options
Data type: Optional[Array[String, 1]]
lmtp_enforce_tls
Data type: Optional[Variant[Boolean, String]]
lmtp_generic_maps
Data type: Optional[Array[String, 1]]
lmtp_header_checks
Data type: Optional[Array[String, 1]]
lmtp_host_lookup
Data type: Optional[Array[String, 1]]
lmtp_lhlo_name
Data type: Optional[String]
lmtp_lhlo_timeout
Data type: Optional[String]
lmtp_line_length_limit
Data type: Optional[String]
lmtp_mail_timeout
Data type: Optional[String]
lmtp_mime_header_checks
Data type: Optional[Array[String, 1]]
lmtp_mx_address_limit
Data type: Optional[String]
lmtp_mx_session_limit
Data type: Optional[String]
lmtp_nested_header_checks
Data type: Optional[Array[String, 1]]
lmtp_per_record_deadline
Data type: Optional[Variant[Boolean, String]]
lmtp_pix_workaround_delay_time
Data type: Optional[String]
lmtp_pix_workaround_maps
Data type: Optional[Array[String, 1]]
lmtp_pix_workaround_threshold_time
Data type: Optional[String]
lmtp_pix_workarounds
Data type: Optional[Array[String, 1]]
lmtp_quit_timeout
Data type: Optional[String]
lmtp_quote_rfc821_envelope
Data type: Optional[Variant[Boolean, String]]
lmtp_randomize_addresses
Data type: Optional[Variant[Boolean, String]]
lmtp_rcpt_timeout
Data type: Optional[String]
lmtp_reply_filter
Data type: Optional[String]
lmtp_rset_timeout
Data type: Optional[String]
lmtp_sasl_auth_cache_name
Data type: Optional[String]
lmtp_sasl_auth_cache_time
Data type: Optional[String]
lmtp_sasl_auth_enable
Data type: Optional[Variant[Boolean, String]]
lmtp_sasl_auth_soft_bounce
Data type: Optional[Variant[Boolean, String]]
lmtp_sasl_mechanism_filter
Data type: Optional[Array[String, 1]]
lmtp_sasl_password_maps
Data type: Optional[Array[String, 1]]
lmtp_sasl_path
Data type: Optional[String]
lmtp_sasl_security_options
Data type: Optional[Array[String, 1]]
lmtp_sasl_tls_security_options
Data type: Optional[Array[String, 1]]
lmtp_sasl_tls_verified_security_options
Data type: Optional[Array[String, 1]]
lmtp_sasl_type
Data type: Optional[String]
lmtp_send_dummy_mail_auth
Data type: Optional[Variant[Boolean, String]]
lmtp_send_xforward_command
Data type: Optional[Variant[Boolean, String]]
lmtp_sender_dependent_authentication
Data type: Optional[Variant[Boolean, String]]
lmtp_skip_5xx_greeting
Data type: Optional[Variant[Boolean, String]]
lmtp_skip_quit_response
Data type: Optional[Variant[Boolean, String]]
lmtp_starttls_timeout
Data type: Optional[String]
lmtp_tcp_port
Data type: Optional[String]
lmtp_tls_cafile
Data type: Optional[String]
lmtp_tls_capath
Data type: Optional[String]
lmtp_tls_block_early_mail_reply
Data type: Optional[Variant[Boolean, String]]
lmtp_tls_cert_file
Data type: Optional[String]
lmtp_tls_ciphers
Data type: Optional[String]
lmtp_tls_dcert_file
Data type: Optional[String]
lmtp_tls_dkey_file
Data type: Optional[String]
lmtp_tls_eccert_file
Data type: Optional[String]
lmtp_tls_eckey_file
Data type: Optional[String]
lmtp_tls_enforce_peername
Data type: Optional[Variant[Boolean, String]]
lmtp_tls_exclude_ciphers
Data type: Optional[Array[String, 1]]
lmtp_tls_fingerprint_cert_match
Data type: Optional[Array[String, 1]]
lmtp_tls_fingerprint_digest
Data type: Optional[String]
lmtp_tls_key_file
Data type: Optional[String]
lmtp_tls_loglevel
Data type: Optional[String]
lmtp_tls_mandatory_ciphers
Data type: Optional[String]
lmtp_tls_mandatory_exclude_ciphers
Data type: Optional[Array[String, 1]]
lmtp_tls_mandatory_protocols
Data type: Optional[Array[String, 1]]
lmtp_tls_note_starttls_offer
Data type: Optional[Variant[Boolean, String]]
lmtp_tls_per_site
Data type: Optional[Array[String, 1]]
lmtp_tls_policy_maps
Data type: Optional[Array[String, 1]]
lmtp_tls_protocols
Data type: Optional[Array[String, 1]]
lmtp_tls_scert_verifydepth
Data type: Optional[String]
lmtp_tls_secure_cert_match
Data type: Optional[Array[String, 1]]
lmtp_tls_security_level
Data type: Optional[String]
lmtp_tls_session_cache_database
Data type: Optional[String]
lmtp_tls_session_cache_timeout
Data type: Optional[String]
lmtp_tls_verify_cert_match
Data type: Optional[Array[String, 1]]
lmtp_use_tls
Data type: Optional[Variant[Boolean, String]]
lmtp_xforward_timeout
Data type: Optional[String]
local_command_shell
Data type: Optional[String]
local_header_rewrite_clients
Data type: Optional[Array[String, 1]]
local_recipient_maps
Data type: Optional[Array[String, 1]]
local_transport
Data type: Optional[String]
luser_relay
Data type: Optional[String]
mail_name
Data type: Optional[String]
mail_owner
Data type: Optional[String]
mail_release_date
Data type: Optional[String]
mail_spool_directory
Data type: Optional[String]
mail_version
Data type: Optional[String]
mailbox_command
Data type: Optional[String]
mailbox_command_maps
Data type: Optional[Array[String, 1]]
mailbox_delivery_lock
Data type: Optional[Array[String, 1]]
mailbox_size_limit
Data type: Optional[String]
mailbox_transport
Data type: Optional[String]
mailbox_transport_maps
Data type: Optional[Array[String, 1]]
mailq_path
Data type: Optional[String]
manpage_directory
Data type: Optional[String]
maps_rbl_domains
Data type: Optional[Array[String, 1]]
maps_rbl_reject_code
Data type: Optional[String]
masquerade_classes
Data type: Optional[Array[String, 1]]
masquerade_domains
Data type: Optional[Array[String, 1]]
masquerade_exceptions
Data type: Optional[Array[String, 1]]
master_service_disable
Data type: Optional[Array[String, 1]]
max_idle
Data type: Optional[String]
max_use
Data type: Optional[String]
maximal_backoff_time
Data type: Optional[String]
maximal_queue_lifetime
Data type: Optional[String]
message_reject_characters
Data type: Optional[String]
message_size_limit
Data type: Optional[String]
message_strip_characters
Data type: Optional[String]
meta_directory
Data type: Optional[String]
milter_command_timeout
Data type: Optional[String]
milter_connect_macros
Data type: Optional[String]
milter_connect_timeout
Data type: Optional[String]
milter_content_timeout
Data type: Optional[String]
milter_data_macros
Data type: Optional[String]
milter_default_action
Data type: Optional[String]
milter_end_of_data_macros
Data type: Optional[String]
milter_end_of_header_macros
Data type: Optional[String]
milter_header_checks
Data type: Optional[Array[String, 1]]
milter_helo_macros
Data type: Optional[String]
milter_macro_daemon_name
Data type: Optional[String]
milter_macro_v
Data type: Optional[String]
milter_mail_macros
Data type: Optional[String]
milter_protocol
Data type: Optional[String]
milter_rcpt_macros
Data type: Optional[String]
milter_unknown_command_macros
Data type: Optional[String]
mime_boundary_length_limit
Data type: Optional[String]
mime_header_checks
Data type: Optional[Array[String, 1]]
mime_nesting_limit
Data type: Optional[String]
minimal_backoff_time
Data type: Optional[String]
multi_instance_directories
Data type: Optional[Array[String, 1]]
multi_instance_enable
Data type: Optional[Variant[Boolean, String]]
multi_instance_group
Data type: Optional[String]
multi_instance_name
Data type: Optional[String]
multi_instance_wrapper
Data type: Optional[String]
multi_recipient_bounce_reject_code
Data type: Optional[String]
mydestination
Data type: Optional[Array[String, 1]]
mydomain
Data type: Optional[String]
myhostname
Data type: Optional[String]
mynetworks
Data type: Optional[Array[String, 1]]
mynetworks_style
Data type: Optional[String]
myorigin
Data type: Optional[String]
nested_header_checks
Data type: Optional[Array[String, 1]]
newaliases_path
Data type: Optional[String]
non_fqdn_reject_code
Data type: Optional[String]
non_smtpd_milters
Data type: Optional[Array[String, 1]]
notify_classes
Data type: Optional[Array[String, 1]]
owner_request_special
Data type: Optional[Variant[Boolean, String]]
parent_domain_matches_subdomains
Data type: Optional[Array[String, 1]]
permit_mx_backup_networks
Data type: Optional[Array[String, 1]]
pickup_service_name
Data type: Optional[String]
plaintext_reject_code
Data type: Optional[String]
postmulti_control_commands
Data type: Optional[Array[String, 1]]
postmulti_start_commands
Data type: Optional[Array[String, 1]]
postmulti_stop_commands
Data type: Optional[Array[String, 1]]
postscreen_access_list
Data type: Optional[Array[String, 1]]
postscreen_bare_newline_action
Data type: Optional[String]
postscreen_bare_newline_enable
Data type: Optional[Variant[Boolean, String]]
postscreen_bare_newline_ttl
Data type: Optional[String]
postscreen_blacklist_action
Data type: Optional[String]
postscreen_cache_cleanup_interval
Data type: Optional[String]
postscreen_cache_map
Data type: Optional[String]
postscreen_cache_retention_time
Data type: Optional[String]
postscreen_client_connection_count_limit
Data type: Optional[String]
postscreen_command_count_limit
Data type: Optional[String]
postscreen_command_filter
Data type: Optional[String]
postscreen_command_time_limit
Data type: Optional[String]
postscreen_disable_vrfy_command
Data type: Optional[Variant[Boolean, String]]
postscreen_discard_ehlo_keyword_address_maps
Data type: Optional[Array[String, 1]]
postscreen_discard_ehlo_keywords
Data type: Optional[Array[String, 1]]
postscreen_dnsbl_action
Data type: Optional[String]
postscreen_dnsbl_reply_map
Data type: Optional[String]
postscreen_dnsbl_sites
Data type: Optional[Array[String, 1]]
postscreen_dnsbl_threshold
Data type: Optional[String]
postscreen_dnsbl_ttl
Data type: Optional[String]
postscreen_enforce_tls
Data type: Optional[Variant[Boolean, String]]
postscreen_expansion_filter
Data type: Optional[String]
postscreen_forbidden_commands
Data type: Optional[Array[String, 1]]
postscreen_greet_action
Data type: Optional[String]
postscreen_greet_banner
Data type: Optional[String]
postscreen_greet_ttl
Data type: Optional[String]
postscreen_greet_wait
Data type: Optional[String]
postscreen_helo_required
Data type: Optional[Variant[Boolean, String]]
postscreen_non_smtp_command_action
Data type: Optional[String]
postscreen_non_smtp_command_enable
Data type: Optional[Variant[Boolean, String]]
postscreen_non_smtp_command_ttl
Data type: Optional[String]
postscreen_pipelining_action
Data type: Optional[String]
postscreen_pipelining_enable
Data type: Optional[Variant[Boolean, String]]
postscreen_pipelining_ttl
Data type: Optional[String]
postscreen_post_queue_limit
Data type: Optional[String]
postscreen_pre_queue_limit
Data type: Optional[String]
postscreen_reject_footer
Data type: Optional[String]
postscreen_tls_security_level
Data type: Optional[String]
postscreen_upstream_proxy_protocol
Data type: Optional[String]
postscreen_upstream_proxy_timeout
Data type: Optional[String]
postscreen_use_tls
Data type: Optional[Variant[Boolean, String]]
postscreen_watchdog_timeout
Data type: Optional[String]
postscreen_whitelist_interfaces
Data type: Optional[Array[String, 1]]
prepend_delivered_header
Data type: Optional[Array[String, 1]]
process_id_directory
Data type: Optional[String]
propagate_unmatched_extensions
Data type: Optional[Array[String, 1]]
proxy_interfaces
Data type: Optional[Array[String, 1]]
proxy_read_maps
Data type: Optional[Array[String, 1]]
proxy_write_maps
Data type: Optional[Array[String, 1]]
proxymap_service_name
Data type: Optional[String]
proxywrite_service_name
Data type: Optional[String]
qmgr_clog_warn_time
Data type: Optional[String]
qmgr_daemon_timeout
Data type: Optional[String]
qmgr_fudge_factor
Data type: Optional[String]
qmgr_ipc_timeout
Data type: Optional[String]
qmgr_message_active_limit
Data type: Optional[String]
qmgr_message_recipient_limit
Data type: Optional[String]
qmgr_message_recipient_minimum
Data type: Optional[String]
qmqpd_authorized_clients
Data type: Optional[Array[String, 1]]
qmqpd_client_port_logging
Data type: Optional[Variant[Boolean, String]]
qmqpd_error_delay
Data type: Optional[String]
qmqpd_timeout
Data type: Optional[String]
queue_directory
Data type: Optional[String]
queue_file_attribute_count_limit
Data type: Optional[String]
queue_minfree
Data type: Optional[String]
queue_run_delay
Data type: Optional[String]
queue_service_name
Data type: Optional[String]
rbl_reply_maps
Data type: Optional[Array[String, 1]]
readme_directory
Data type: Optional[Variant[Boolean, String]]
receive_override_options
Data type: Optional[Array[String, 1]]
recipient_bcc_maps
Data type: Optional[Array[String, 1]]
recipient_canonical_classes
Data type: Optional[Array[String, 1]]
recipient_canonical_maps
Data type: Optional[Array[String, 1]]
recipient_delimiter
Data type: Optional[String]
reject_code
Data type: Optional[String]
reject_tempfail_action
Data type: Optional[String]
relay_clientcerts
Data type: Optional[Array[String, 1]]
relay_domains
Data type: Optional[Array[String, 1]]
relay_domains_reject_code
Data type: Optional[String]
relay_recipient_maps
Data type: Optional[Array[String, 1]]
relay_transport
Data type: Optional[String]
relayhost
Data type: Optional[String]
relocated_maps
Data type: Optional[Array[String, 1]]
remote_header_rewrite_domain
Data type: Optional[String]
require_home_directory
Data type: Optional[Variant[Boolean, String]]
reset_owner_alias
Data type: Optional[Variant[Boolean, String]]
resolve_dequoted_address
Data type: Optional[Variant[Boolean, String]]
resolve_null_domain
Data type: Optional[Variant[Boolean, String]]
resolve_numeric_domain
Data type: Optional[Variant[Boolean, String]]
rewrite_service_name
Data type: Optional[String]
sample_directory
Data type: Optional[String]
send_cyrus_sasl_authzid
Data type: Optional[Variant[Boolean, String]]
sender_bcc_maps
Data type: Optional[Array[String, 1]]
sender_canonical_classes
Data type: Optional[Array[String, 1]]
sender_canonical_maps
Data type: Optional[Array[String, 1]]
sender_dependent_default_transport_maps
Data type: Optional[Array[String, 1]]
sender_dependent_relayhost_maps
Data type: Optional[Array[String, 1]]
sendmail_fix_line_endings
Data type: Optional[String]
sendmail_path
Data type: Optional[String]
service_throttle_time
Data type: Optional[String]
setgid_group
Data type: Optional[String]
shlib_directory
Data type: Optional[Variant[Boolean, String]]
show_user_unknown_table_name
Data type: Optional[Variant[Boolean, String]]
showq_service_name
Data type: Optional[String]
smtp_address_preference
Data type: Optional[String]
smtp_always_send_ehlo
Data type: Optional[Variant[Boolean, String]]
smtp_bind_address
Data type: Optional[String]
smtp_bind_address6
Data type: Optional[String]
smtp_body_checks
Data type: Optional[Array[String, 1]]
smtp_cname_overrides_servername
Data type: Optional[Variant[Boolean, String]]
smtp_connect_timeout
Data type: Optional[String]
smtp_connection_cache_destinations
Data type: Optional[Array[String, 1]]
smtp_connection_cache_on_demand
Data type: Optional[Variant[Boolean, String]]
smtp_connection_cache_time_limit
Data type: Optional[String]
smtp_connection_reuse_time_limit
Data type: Optional[String]
smtp_data_done_timeout
Data type: Optional[String]
smtp_data_init_timeout
Data type: Optional[String]
smtp_data_xfer_timeout
Data type: Optional[String]
smtp_defer_if_no_mx_address_found
Data type: Optional[Variant[Boolean, String]]
smtp_discard_ehlo_keyword_address_maps
Data type: Optional[Array[String, 1]]
smtp_discard_ehlo_keywords
Data type: Optional[Array[String, 1]]
smtp_dns_resolver_options
Data type: Optional[Array[String, 1]]
smtp_enforce_tls
Data type: Optional[Variant[Boolean, String]]
smtp_fallback_relay
Data type: Optional[Array[String, 1]]
smtp_generic_maps
Data type: Optional[Array[String, 1]]
smtp_header_checks
Data type: Optional[Array[String, 1]]
smtp_helo_name
Data type: Optional[String]
smtp_helo_timeout
Data type: Optional[String]
smtp_host_lookup
Data type: Optional[Array[String, 1]]
smtp_line_length_limit
Data type: Optional[String]
smtp_mail_timeout
Data type: Optional[String]
smtp_mime_header_checks
Data type: Optional[Array[String, 1]]
smtp_mx_address_limit
Data type: Optional[String]
smtp_mx_session_limit
Data type: Optional[String]
smtp_nested_header_checks
Data type: Optional[Array[String, 1]]
smtp_never_send_ehlo
Data type: Optional[Variant[Boolean, String]]
smtp_per_record_deadline
Data type: Optional[Variant[Boolean, String]]
smtp_pix_workaround_delay_time
Data type: Optional[String]
smtp_pix_workaround_maps
Data type: Optional[Array[String, 1]]
smtp_pix_workaround_threshold_time
Data type: Optional[String]
smtp_pix_workarounds
Data type: Optional[Array[String, 1]]
smtp_quit_timeout
Data type: Optional[String]
smtp_quote_rfc821_envelope
Data type: Optional[Variant[Boolean, String]]
smtp_randomize_addresses
Data type: Optional[Variant[Boolean, String]]
smtp_rcpt_timeout
Data type: Optional[String]
smtp_reply_filter
Data type: Optional[String]
smtp_rset_timeout
Data type: Optional[String]
smtp_sasl_auth_cache_name
Data type: Optional[String]
smtp_sasl_auth_cache_time
Data type: Optional[String]
smtp_sasl_auth_enable
Data type: Optional[Variant[Boolean, String]]
smtp_sasl_auth_soft_bounce
Data type: Optional[Variant[Boolean, String]]
smtp_sasl_mechanism_filter
Data type: Optional[Array[String, 1]]
smtp_sasl_password_maps
Data type: Optional[Array[String, 1]]
smtp_sasl_path
Data type: Optional[String]
smtp_sasl_security_options
Data type: Optional[Array[String, 1]]
smtp_sasl_tls_security_options
Data type: Optional[Array[String, 1]]
smtp_sasl_tls_verified_security_options
Data type: Optional[Array[String, 1]]
smtp_sasl_type
Data type: Optional[String]
smtp_send_dummy_mail_auth
Data type: Optional[Variant[Boolean, String]]
smtp_send_xforward_command
Data type: Optional[Variant[Boolean, String]]
smtp_sender_dependent_authentication
Data type: Optional[Variant[Boolean, String]]
smtp_skip_5xx_greeting
Data type: Optional[Variant[Boolean, String]]
smtp_skip_quit_response
Data type: Optional[Variant[Boolean, String]]
smtp_starttls_timeout
Data type: Optional[String]
smtp_tls_cafile
Data type: Optional[String]
smtp_tls_capath
Data type: Optional[String]
smtp_tls_block_early_mail_reply
Data type: Optional[Variant[Boolean, String]]
smtp_tls_cert_file
Data type: Optional[String]
smtp_tls_ciphers
Data type: Optional[String]
smtp_tls_dcert_file
Data type: Optional[String]
smtp_tls_dkey_file
Data type: Optional[String]
smtp_tls_eccert_file
Data type: Optional[String]
smtp_tls_eckey_file
Data type: Optional[String]
smtp_tls_enforce_peername
Data type: Optional[Variant[Boolean, String]]
smtp_tls_exclude_ciphers
Data type: Optional[Array[String, 1]]
smtp_tls_fingerprint_cert_match
Data type: Optional[Array[String, 1]]
smtp_tls_fingerprint_digest
Data type: Optional[String]
smtp_tls_key_file
Data type: Optional[String]
smtp_tls_loglevel
Data type: Optional[String]
smtp_tls_mandatory_ciphers
Data type: Optional[String]
smtp_tls_mandatory_exclude_ciphers
Data type: Optional[Array[String, 1]]
smtp_tls_mandatory_protocols
Data type: Optional[Array[String, 1]]
smtp_tls_note_starttls_offer
Data type: Optional[Variant[Boolean, String]]
Change log
All notable changes to this project will be documented in this file. The format is based on Keep a Changelog and this project adheres to Semantic Versioning.
v3.1.2 (2021-12-16)
Added
- Allow stdlib v8 #27 (sazzle2611)
v3.1.1 (2021-07-16)
Fixed
v3.1.0 (2021-07-07)
Added
- Update dependencies #23 (bodgit)
- Support Puppet 7.x #22 (bodgit)
- Convert to Hiera #21 (bodgit)
- Add support for EL8 #20 (bodgit)
- Convert to Litmus #19 (bodgit)
v3.0.1 (2020-11-09)
Fixed
v3.0.0 (2020-11-07)
Changed
Added
v2.0.0 (2018-07-28)
Changed
v1.0.2 (2017-10-15)
v1.0.1 (2016-07-26)
v1.0.0 (2016-06-30)
* This Changelog was automatically generated by github_changelog_generator
Dependencies
- puppetlabs/stdlib (>=4.13.0 <9.0.0)
- bodgit/bodgitlib (>=1.7.0 <4.0.0)
- herculesteam/augeasproviders_core (>=2.1.0 <3.0.0)
- camptocamp/augeas (>=1.0.0 <2.0.0)
Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 1. Definitions. "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and (b) You must cause any modified files to carry prominent notices stating that You changed the files; and (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. END OF TERMS AND CONDITIONS APPENDIX: How to apply the Apache License to your work. To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "[]" replaced with your own identifying information. (Don't include the brackets!) The text should be enclosed in the appropriate comment syntax for the file format. We also recommend that a file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. Copyright 2013 Puppet Labs Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.