diff --git a/REFERENCE.md b/REFERENCE.md
index 4fd3331..36a836d 100644
--- a/REFERENCE.md
+++ b/REFERENCE.md
@@ -73,9 +73,13 @@ The following parameters are available in the `exim` class:
* [`delay_warning`](#-exim--delay_warning)
* [`deliver_queue_load_max`](#-exim--deliver_queue_load_max)
* [`disable_ipv6`](#-exim--disable_ipv6)
+* [`dns_dnssec_ok`](#-exim--dns_dnssec_ok)
* [`errors_reply_to`](#-exim--errors_reply_to)
+* [`exim_path`](#-exim--exim_path)
* [`extract_addresses_remove_arguments`](#-exim--extract_addresses_remove_arguments)
* [`freeze_tell`](#-exim--freeze_tell)
+* [`gecos_name`](#-exim--gecos_name)
+* [`gecos_pattern`](#-exim--gecos_pattern)
* [`gnutls_compat_mode`](#-exim--gnutls_compat_mode)
* [`openssl_options`](#-exim--openssl_options)
* [`heavy`](#-exim--heavy)
@@ -86,6 +90,7 @@ The following parameters are available in the `exim` class:
* [`includes`](#-exim--includes)
* [`local_from_check`](#-exim--local_from_check)
* [`local_interfaces`](#-exim--local_interfaces)
+* [`local_sender_retain`](#-exim--local_sender_retain)
* [`log_lost_incoming_connection`](#-exim--log_lost_incoming_connection)
* [`log_retry_defer`](#-exim--log_retry_defer)
* [`log_sender_on_delivery`](#-exim--log_sender_on_delivery)
@@ -141,6 +146,8 @@ The following parameters are available in the `exim` class:
* [`message_size_limit`](#-exim--message_size_limit)
* [`mysql_servers`](#-exim--mysql_servers)
* [`never_users`](#-exim--never_users)
+* [`prdr_enable`](#-exim--prdr_enable)
+* [`primary_hostname`](#-exim--primary_hostname)
* [`qualify_domain`](#-exim--qualify_domain)
* [`queue_only_load`](#-exim--queue_only_load)
* [`queue_run_max`](#-exim--queue_run_max)
@@ -159,8 +166,10 @@ The following parameters are available in the `exim` class:
* [`smtp_receive_timeout`](#-exim--smtp_receive_timeout)
* [`smtp_reserve_hosts`](#-exim--smtp_reserve_hosts)
* [`smtp_return_error_details`](#-exim--smtp_return_error_details)
+* [`smtputf8_advertise_hosts`](#-exim--smtputf8_advertise_hosts)
* [`spamd_address`](#-exim--spamd_address)
* [`split_spool_directory`](#-exim--split_spool_directory)
+* [`spool_directory`](#-exim--spool_directory)
* [`syslog_timestamp`](#-exim--syslog_timestamp)
* [`system_filter`](#-exim--system_filter)
* [`timeout_frozen_after`](#-exim--timeout_frozen_after)
@@ -380,6 +389,15 @@ Data type: `Optional[Boolean]`
Do no IPv6 processing
Type: bool
+##### `dns_dnssec_ok`
+
+Data type: `Optional[Integer]`
+
+If this option is set to a non-negative number then Exim will initialise the
+DNS resolver library to either use or not use DNSSEC, overriding the system
+default. A value of 0 coerces DNSSEC off, a value of 1 coerces DNSSEC on.
+The Exim default is -1.
+
##### `errors_reply_to`
Data type: `Optional[String]`
@@ -388,6 +406,12 @@ This sets a mail-address to be used in the reply-to header of bounce-messages.
Type: String
Example: postmaster@example.com
+##### `exim_path`
+
+Data type: `Optional[String]`
+
+Path of the Exim binary.
+
##### `extract_addresses_remove_arguments`
Data type: `Optional[Boolean]`
@@ -402,6 +426,21 @@ Data type: `Optional[String]`
If a mail gets frozen, send a notification to the address defined here.
+##### `gecos_name`
+
+Data type: `Optional[String]`
+
+If gecos_name and gecos_pattern are set then gecos_pattern is treated as a regular
+expression that is to be applied to the gecos field and if it matches, gecos_name
+is expanded and used as the user's name. For example, $1 could be used to pick up
+the first sub-field that was matched by the gecos_pattern.
+
+##### `gecos_pattern`
+
+Data type: `Optional[String]`
+
+See gecos_name above.
+
##### `gnutls_compat_mode`
Data type: `Optional[Boolean]`
@@ -474,6 +513,13 @@ Data type: `Optional[Array[String]]`
Specifies the interfaces exim will listen on.
+##### `local_sender_retain`
+
+Data type: `Optional[Boolean]`
+
+If local_from_check is false, setting local_sender_retain to true will keep any
+existing Sender header line.
+
##### `log_lost_incoming_connection`
Data type: `Optional[Boolean]`
@@ -811,6 +857,21 @@ Data type: `Optional[Array[String]]`
Do not run deliverys as these users
Type: array
+##### `prdr_enable`
+
+Data type: `Optional[Boolean]`
+
+Enable the Per-Recipient Data Response extension to SMTP.
+
+##### `primary_hostname`
+
+Data type: `Optional[String]`
+
+This specifies the name of the current host. It is used in the default
+EHLO or HELO command for outgoing SMTP messages (changeable via the
+helo_data option in the smtp transport), and as the default for qualify_domain.
+Default is empty which exim should fill with the FQDN for the server.
+
##### `qualify_domain`
Data type: `Optional[String]`
@@ -931,6 +992,12 @@ Data type: `Optional[Boolean]`
Return more detailed SMTP error messages.
+##### `smtputf8_advertise_hosts`
+
+Data type: `Optional[String]`
+
+Advertise SMTPUTF8 to these hosts.
+
##### `spamd_address`
Data type: `Optional[String]`
@@ -944,6 +1011,12 @@ Data type: `Optional[Boolean]`
Use split spool configuration
Type: bool
+##### `spool_directory`
+
+Data type: `Optional[String]`
+
+Override compiled-in value.
+
##### `syslog_timestamp`
Data type: `Optional[Boolean]`
@@ -995,7 +1068,7 @@ If this option ist set to true code values of 128 and above are also considered
##### `untrusted_set_sender`
-Data type: `Optional[Boolean]`
+Data type: `Optional[Array[String]]`
This option allows you to permit untrusted users to set other envelope sender addresses in a controlled way.
diff --git a/data/common.yaml b/data/common.yaml
index def57bc..f35c02c 100644
--- a/data/common.yaml
+++ b/data/common.yaml
@@ -46,17 +46,22 @@ exim::daemon_smtp_ports: ~
exim::delay_warning: ~
exim::deliver_queue_load_max: ~
exim::disable_ipv6: ~
+exim::dns_dnssec_ok: ~
exim::errors_reply_to: ~
exim::exim_heavy_package: ~
exim::exim_light_package: ~
+exim::exim_path: ~
exim::extract_addresses_remove_arguments: ~
exim::freeze_tell: ~
+exim::gecos_name: ~
+exim::gecos_pattern: ~
exim::gnutls_compat_mode: ~
exim::helo_allow_chars: ~
exim::hosts_treat_as_local: ~
exim::ldap_default_servers: ~
exim::local_from_check: ~
exim::local_interfaces: ~
+exim::local_sender_retain: ~
exim::log_8bitmime: ~
exim::log_acl_warn_skipped: ~
exim::log_address_rewrite: ~
@@ -101,6 +106,8 @@ exim::message_logs: ~
exim::message_size_limit: ~
exim::mysql_servers: ~
exim::openssl_options: ~
+exim::prdr_enable: ~
+exim::primary_hostname: ~
exim::qualify_domain: ~
exim::queue_only_load: ~
exim::queue_run_max: ~
@@ -118,8 +125,10 @@ exim::smtp_banner: ~
exim::smtp_receive_timeout: ~
exim::smtp_reserve_hosts: ~
exim::smtp_return_error_details: ~
+exim::smtputf8_advertise_hosts: ~
exim::spamd_address: ~
exim::split_spool_directory: ~
+exim::spool_directory: ~
exim::syslog_timestamp: ~
exim::system_filter: ~
exim::tls_advertise_hosts: ~
diff --git a/manifests/init.pp b/manifests/init.pp
index 635425e..d7d2187 100644
--- a/manifests/init.pp
+++ b/manifests/init.pp
@@ -123,11 +123,22 @@
# Do no IPv6 processing
# Type: bool
#
+# @param dns_dnssec_ok
+# If this option is set to a non-negative number then Exim will initialise the
+# DNS resolver library to either use or not use DNSSEC, overriding the system
+# default. A value of 0 coerces DNSSEC off, a value of 1 coerces DNSSEC on.
+# The Exim default is -1.
+# Type: integer
+#
# @param errors_reply_to
# This sets a mail-address to be used in the reply-to header of bounce-messages.
# Type: String
# Example: postmaster@example.com
#
+# @param exim_path
+# Path of the Exim binary.
+# Type: string
+#
# @param extract_addresses_remove_arguments
# When using exims -t option, rcpts from the Mail-Headers are used, and rcpts given
# on the command-line are substracted, setting this to false will add the rcpts instead
@@ -136,6 +147,17 @@
# @param freeze_tell
# If a mail gets frozen, send a notification to the address defined here.
#
+# @param gecos_name
+# If gecos_name and gecos_pattern are set then gecos_pattern is treated as a regular
+# expression that is to be applied to the gecos field and if it matches, gecos_name
+# is expanded and used as the user's name. For example, $1 could be used to pick up
+# the first sub-field that was matched by the gecos_pattern.
+# Type: string
+#
+# @param gecos_pattern
+# See gecos_name above.
+# Type: string
+#
# @param gnutls_compat_mode
# This controls if gnutls is used in compatiblity mode.
# Set this to true to slightly reduce security, but improve compatiblity with older
@@ -178,6 +200,10 @@
# @param local_interfaces
# Specifies the interfaces exim will listen on.
#
+# @param local_sender_retain
+# If local_from_check is false, setting local_sender_retain to true will keep any
+# existing Sender header line.
+#
# @param log_lost_incoming_connection
# Configures the log_selector to log timeouting incomming connections
#
@@ -350,10 +376,22 @@
# Do not run deliverys as these users
# Type: array
#
+# @param prdr_enable
+# Enable the Per-Recipient Data Response extension to SMTP.
+# Type: boolean
+#
+# @param primary_hostname
+# This specifies the name of the current host. It is used in the default
+# EHLO or HELO command for outgoing SMTP messages (changeable via the
+# helo_data option in the smtp transport), and as the default for qualify_domain.
+# Default is empty which exim should fill with the FQDN for the server.
+# Type: string
+#
# @param qualify_domain
# configure the domain, which is automatically added to email addresses
# without a domain part. Default is empty, which exim treats as the
# primary hostname.
+# Type: string
#
# @param queue_only_load
# Do not run imediate deliveries if load is above this threshhold.
@@ -416,6 +454,10 @@
# @param smtp_return_error_details
# Return more detailed SMTP error messages.
#
+# @param smtputf8_advertise_hosts
+# Advertise SMTPUTF8 to these hosts.
+# Type: string
+#
# @param spamd_address
# Configure a spamd socket here.
#
@@ -423,6 +465,10 @@
# Use split spool configuration
# Type: bool
#
+# @param spool_directory
+# Override compiled-in value.
+# Type: string
+#
# @param syslog_timestamp
# Don't send timestamps to syslog.
#
@@ -450,6 +496,7 @@
#
# @param untrusted_set_sender
# This option allows you to permit untrusted users to set other envelope sender addresses in a controlled way.
+# Type: array
#
# @param tls_require_ciphers
# This option controls which ciphers can be used for incoming TLS connections.
@@ -505,9 +552,13 @@
Optional[Array[String]] $delay_warning,
Optional[Integer] $deliver_queue_load_max,
Optional[Boolean] $disable_ipv6,
+ Optional[Integer] $dns_dnssec_ok,
+ Optional[String] $exim_path,
Optional[String] $errors_reply_to,
Optional[Boolean] $extract_addresses_remove_arguments,
Optional[String] $freeze_tell,
+ Optional[String] $gecos_name,
+ Optional[String] $gecos_pattern,
Optional[Boolean] $gnutls_compat_mode,
Optional[String] $openssl_options,
Optional[Boolean] $heavy,
@@ -519,6 +570,7 @@
Optional[Array[String]] $ldap_default_servers,
Optional[Boolean] $local_from_check,
Optional[Array[String]] $local_interfaces,
+ Optional[Boolean] $local_sender_retain,
Optional[Array[String]] $log_file_path,
Optional[Boolean] $log_lost_incoming_connection,
Optional[Boolean] $log_retry_defer,
@@ -574,9 +626,11 @@
Optional[String] $message_size_limit,
Optional[Array[String]] $mysql_servers,
Optional[Array[String]] $never_users,
- Optional[Boolean] $untrusted_set_sender,
+ Optional[Array[String]] $untrusted_set_sender,
Optional[Boolean] $print_topbitchars,
Optional[String] $tls_require_ciphers,
+ Optional[Boolean] $prdr_enable,
+ Optional[String] $primary_hostname,
Optional[String] $qualify_domain,
Optional[Integer] $queue_only_load,
Optional[Integer] $queue_run_max,
@@ -595,8 +649,10 @@
Optional[String] $smtp_receive_timeout,
Optional[Array[String]] $smtp_reserve_hosts,
Optional[Boolean] $smtp_return_error_details,
+ Optional[String] $smtputf8_advertise_hosts,
Optional[String] $spamd_address,
Optional[Boolean] $split_spool_directory,
+ Optional[String] $spool_directory,
Optional[Boolean] $syslog_timestamp,
Optional[String] $system_filter,
Optional[String] $timeout_frozen_after,
diff --git a/manifests/router.pp b/manifests/router.pp
index ad2a09c..c9c56e6 100644
--- a/manifests/router.pp
+++ b/manifests/router.pp
@@ -32,6 +32,14 @@
# @param allow_filter
# If set to true, filters can be used.
#
+# @param check_ancestor
+# When set to true, if a generated address (including the domain) is the same as any ancestor of
+# the current address, it is replaced by a copy of the current address.
+#
+# @param check_local_user
+# If set to true, Exim checks that the local part of the recipient address (with affixes removed if relevant)
+# is the name of an account on the local system.
+#
# @param condition
# (Advanced) Conditions when this router should be used
#
@@ -41,6 +49,9 @@
# @param debug_print
# Used to print debug information
#
+# @param directory_transport
+# Set the directory_transport, used if the outcome of the router points to a directory.
+#
# @param domains
# Domains for which this router should be used.
#
@@ -50,6 +61,14 @@
# @param file
# Set the file that contains the filter rules.
#
+# @param forbid_smtp_code
+# If this option is set true, any SMTP error codes that are present at the start of messages specified for
+# :defer: or :fail: are quietly ignored, and the default codes (451 and 550, respectively) are always used.
+#
+# @param group
+# When a router queues an address for a transport, and the transport does not specify a group,
+# the group given here is used when running the delivery process.
+#
# @param headers_add
# Add these Headers to a message
#
@@ -81,6 +100,9 @@
# @param no_address_test
# Skip this router in address testing mode (exim -bt)
#
+# @param no_expn
+# Skip this router when running as a consequence of an SMTP EXPN command.
+#
# @param no_more
# If conditions are met for this router, but the router can't process
# this mail, the address fails instead of handeld down to the next router.
@@ -114,6 +136,16 @@
# @param senders
# If this option is set, the router is skipped unless the message’s sender address matches something on the list.
#
+# @param skip_syntax_errors
+# If skip_syntax_errors is set, syntactically malformed addresses in non-filter redirection data are skipped,
+# and each failing address is logged.
+#
+# @param syntax_errors_text
+# The contents of syntax_errors_text are expanded and placed at the head of the error message generated by syntax_errors_to.
+#
+# @param syntax_errors_to
+# If syntax_errors_to is set, a message is sent to the address it defines, giving details of the failures.
+#
# @param transport
# Which transport should be used to send mails.
#
@@ -136,47 +168,56 @@
#
define exim::router (
String $driver,
- Integer $order = 0,
- Optional[String] $address_data = undef,
- Boolean $allow_defer = false,
- Boolean $allow_fail = false,
- Boolean $allow_filter = false,
- Optional[Boolean] $caseful_local_part = undef,
- Optional[Boolean] $retry_use_local_part = undef,
- Optional[Array[String]] $comment = undef,
- Optional[String] $condition = undef,
- Optional[String] $data = undef,
- Optional[String] $debug_print = undef,
- Boolean $disable = false,
- Optional[Array[String]] $domains = undef,
- Optional[String] $file = undef,
- Optional[String] $file_transport = undef,
- Optional[Array[String]] $headers_add = undef,
- Optional[Array[String]] $headers_remove = undef,
- Optional[String] $host_find_failed = undef,
- Optional[Array[String]] $ignore_target_hosts = undef,
- Optional[String] $local_part_prefix = undef,
- Boolean $local_part_prefix_optional = false,
- Boolean $local_part_suffix_optional = false,
- Optional[String] $local_part_suffix = undef,
- Optional[Array[String]] $local_parts = undef,
- Boolean $no_address_test = false,
- Boolean $no_more = false,
- Boolean $no_verify = false,
- Optional[String] $pipe_transport = undef,
- Optional[String] $reply_transport = undef,
- Boolean $qualify_preserve_domain = false,
- Optional[String] $route_data = undef,
- Optional[String] $route_list = undef,
- Optional[Boolean] $same_domain_copy_routing = undef,
- Optional[String] $self = undef,
- Optional[Array[String]] $senders = undef,
- Optional[String] $transport = undef,
- Boolean $unseen = false,
- Optional[String] $user = undef,
+ Integer $order = 0,
+ Optional[String] $address_data = undef,
+ Boolean $allow_defer = false,
+ Boolean $allow_fail = false,
+ Boolean $allow_filter = false,
+ Optional[Boolean] $caseful_local_part = undef,
+ Optional[Boolean] $retry_use_local_part = undef,
+ Boolean $check_local_user = false,
+ Optional[Array[String]] $comment = undef,
+ Optional[String] $condition = undef,
+ Boolean $check_ancestor = false,
+ Optional[String] $data = undef,
+ Optional[String] $debug_print = undef,
+ Optional[String] $directory_transport = undef,
+ Boolean $disable = false,
+ Optional[Array[String]] $domains = undef,
+ Optional[String] $file = undef,
+ Optional[String] $file_transport = undef,
+ Boolean $forbid_smtp_code = false,
+ Optional[String] $group = undef,
+ Optional[Array[String]] $headers_add = undef,
+ Optional[Array[String]] $headers_remove = undef,
+ Optional[String] $host_find_failed = undef,
+ Optional[Array[String]] $ignore_target_hosts = undef,
+ Optional[String] $local_part_prefix = undef,
+ Boolean $local_part_prefix_optional = false,
+ Boolean $local_part_suffix_optional = false,
+ Optional[String] $local_part_suffix = undef,
+ Optional[Array[String]] $local_parts = undef,
+ Boolean $no_address_test = false,
+ Boolean $no_expn = false,
+ Boolean $no_more = false,
+ Boolean $no_verify = false,
+ Optional[String] $pipe_transport = undef,
+ Optional[String] $reply_transport = undef,
+ Boolean $qualify_preserve_domain = false,
+ Optional[String] $route_data = undef,
+ Optional[String] $route_list = undef,
+ Optional[Boolean] $same_domain_copy_routing = undef,
+ Optional[String] $self = undef,
+ Optional[Array[String]] $senders = undef,
+ Boolean $skip_syntax_errors = false,
+ Optional[String] $syntax_errors_text = undef,
+ Optional[String] $syntax_errors_to = undef,
+ Optional[String] $transport = undef,
+ Boolean $unseen = false,
+ Optional[String] $user = undef,
Optional[String] $errors_to = undef,
Optional[String] $cannot_route_message = undef,
- Optional[Array[String]] $require_files = undef,
+ Optional[Array[String]] $require_files = undef,
) {
include exim
diff --git a/manifests/transport.pp b/manifests/transport.pp
index 8aa48b5..61e7648 100644
--- a/manifests/transport.pp
+++ b/manifests/transport.pp
@@ -275,6 +275,10 @@
# @param mode
# If the output file is created, it is given this mode
#
+# @param mode_fail_narrower
+# Set to false to allow Exim to continue with the delivery attempt, using the existing
+# mode of the file.
+#
# @param socket
# This option must be set if command is not set. The result of expansion must
# be the name of a Unix domain socket
@@ -304,6 +308,16 @@
# @param serialize_hosts
# Array of hosts to serialize
#
+# @param check_string
+# As the transport writes the message, the start of each line is tested for matching check_string,
+# and if it does, the initial matching characters are replaced by the contents of escape_string,
+# provided both are set.
+#
+# @param escape_string
+# As the transport writes the message, the start of each line is tested for matching check_string,
+# and if it does, the initial matching characters are replaced by the contents of escape_string,
+# provided both are set
+#
define exim::transport (
Boolean $allow_localhost = false,
Boolean $delivery_date_add = false,
@@ -333,6 +347,7 @@
Optional[Integer] $dkim_strict = undef,
Optional[Integer] $port = undef,
Optional[Integer] $tls_dh_min_bits = undef,
+ Optional[String[1]] $check_string = undef,
Optional[String[1]] $command = undef,
Optional[Array[String]] $comment = undef,
Optional[String[1]] $connect_timeout = undef,
@@ -342,6 +357,7 @@
Optional[String[1]] $dkim_canon = undef,
Optional[String[1]] $dkim_selector = undef,
Optional[String[1]] $dkim_private_key = undef,
+ Optional[String[1]] $escape_string = undef,
Optional[String[1]] $file = undef,
Optional[String[1]] $from = undef,
Optional[String[1]] $group = undef,
@@ -350,11 +366,12 @@
Optional[String[1]] $home_directory = undef,
Optional[String[1]] $interface = undef,
Optional[String[1]] $maildir_tag = undef,
- Optional[String[1]] $message_prefix = undef,
- Optional[String[1]] $message_suffix = undef,
+ Optional[String] $message_prefix = undef,
+ Optional[String] $message_suffix = undef,
Optional[String[1]] $message_size_limit = undef,
Optional[Integer] $message_linelength_limit = undef,
Optional[String[1]] $mode = undef,
+ Boolean $mode_fail_narrower = true,
Optional[String[1]] $once = undef,
Optional[String[1]] $once_file_size = undef,
Optional[String[1]] $once_repeat = undef,
diff --git a/templates/base.erb b/templates/base.erb
index af5c3b5..b03bf04 100644
--- a/templates/base.erb
+++ b/templates/base.erb
@@ -22,6 +22,8 @@ keep_environment =
<% end -%>
<% unless @local_from_check.nil? -%>local_from_check = <%= @local_from_check %>
<% end -%>
+<% unless @local_sender_retain.nil? -%>local_sender_retain = <%= @local_sender_retain %>
+<% end -%>
<% unless @local_interfaces.nil? -%>local_interfaces = <; <%= @local_interfaces.join(" ; ") %>
<% end -%>
<% unless @daemon_smtp_ports.nil? -%>daemon_smtp_ports = <%= @daemon_smtp_ports.join(" : ") %>
@@ -118,7 +120,7 @@ log_selector = <% unless @log_lost_incoming_connection.nil? -%><%
<% end -%>
<% unless @host_lookup.nil? -%>host_lookup = <%= @host_lookup %>
<% end -%>
-<% unless @untrusted_set_sender.nil? -%>untrusted_set_sender = <%= @untrusted_set_sender %>
+<% unless @untrusted_set_sender.nil? -%>untrusted_set_sender = <%= @untrusted_set_sender.join(" : ") %>
<% end -%>
<% unless @print_topbitchars.nil? -%>print_topbitchars = <%= @print_topbitchars %>
<% end -%>
@@ -167,10 +169,16 @@ received_header_text = Received: \
received_header_text = <%= @received_header_text %>
<%- end -%>
+<% unless @exim_path.nil? -%>exim_path = <%= @exim_path %>
+<% end -%>
<% unless @errors_reply_to.nil? -%>errors_reply_to = <%= @errors_reply_to %>
<% end -%>
+<% unless @primary_hostname.nil? -%>primary_hostname = <%= @primary_hostname %>
+<% end -%>
<% unless @qualify_domain.nil? -%>qualify_domain = <%= @qualify_domain %>
<% end -%>
+<% unless @spool_directory.nil? -%>spool_directory = <%= @spool_directory %>
+<% end -%>
<% unless @tls_advertise_hosts.nil? -%>
tls_advertise_hosts = <%= @tls_advertise_hosts.join(" : ") %>
@@ -180,6 +188,12 @@ tls_certificate = <%= @tls_certificate %>
tls_privatekey = <%= @tls_privatekey %>
<% end -%>
+<% unless @prdr_enable.nil? -%>prdr_enable = <%= @prdr_enable %>
+<% end -%>
+<% unless @smtputf8_advertise_hosts.nil? -%>smtputf8_advertise_hosts = <%= @smtputf8_advertise_hosts %>
+<% end -%>
+<% unless @dns_dnssec_ok.nil? -%>dns_dnssec_ok = <%= @dns_dnssec_ok %>
+<% end -%>
<% unless @gnutls_compat_mode.nil? -%>gnutls_compat_mode = <%= @gnutls_compat_mode %>
<% end -%>
<% unless @openssl_options.nil? -%>openssl_options = <%= @openssl_options %>
@@ -220,3 +234,7 @@ tls_privatekey = <%= @tls_privatekey %>
<% end -%>
<% unless @mysql_servers.nil? -%>hide mysql_servers = <%= @mysql_servers.map{|i| i.gsub(':', '::')}.join(" : ") %>
<% end -%>
+<% unless @gecos_name.nil? -%>gecos_name = <%= @gecos_name %>
+<% end -%>
+<% unless @gecos_pattern.nil? -%>gecos_pattern = <%= @gecos_pattern %>
+<% end -%>
diff --git a/templates/router/router.erb b/templates/router/router.erb
index 3ea3c91..73749f9 100644
--- a/templates/router/router.erb
+++ b/templates/router/router.erb
@@ -89,9 +89,15 @@
<% unless @user.nil? -%>
user = <%= @user %>
<% end -%>
+<% unless @group.nil? -%>
+ group = <%= @group %>
+<% end -%>
<% if @no_verify -%>
no_verify
<% end -%>
+<% if @check_local_user -%>
+ check_local_user
+<% end -%>
<% if @no_address_test -%>
no_address_test
<% end -%>
@@ -119,4 +125,25 @@
<% if @unseen -%>
unseen
<% end -%>
+<% if @no_expn -%>
+ no_expn
+<% end -%>
+<% if @check_ancestor -%>
+ check_ancestor
+<% end -%>
+<% if @forbid_smtp_code -%>
+ forbid_smtp_code
+<% end -%>
+<% unless @directory_transport.nil? -%>
+ directory_transport = <%= @directory_transport %>
+<% end -%>
+<% if @skip_syntax_errors -%>
+ skip_syntax_errors
+<% end -%>
+<% unless @syntax_errors_to.nil? -%>
+ syntax_errors_to = <%= @syntax_errors_to %>
+<% end -%>
+<% unless @syntax_errors_text.nil? -%>
+ syntax_errors_text = <%= @syntax_errors_text %>
+<% end -%>
diff --git a/templates/transport/transport.erb b/templates/transport/transport.erb
index b6e93c1..9962639 100644
--- a/templates/transport/transport.erb
+++ b/templates/transport/transport.erb
@@ -56,6 +56,9 @@
<% unless @mode.nil? -%>
mode = <%= @mode %>
<% end -%>
+<% if @mode_fail_narrower == false -%>
+ mode_fail_narrower = false
+<% end -%>
<% unless @directory_mode.nil? -%>
directory_mode = <%= @directory_mode %>
<% end -%>
@@ -90,6 +93,12 @@
<% unless @headers_add.nil? -%>
headers_add = <%= @headers_add.join("\\n") %>
<% end -%>
+<% unless @check_string.nil? -%>
+ check_string = <%= @check_string %>
+<% end -%>
+<% unless @escape_string.nil? -%>
+ escape_string = <%= @escape_string %>
+<% end -%>
<% unless @message_prefix.nil? -%>
message_prefix = <%= @message_prefix %>
<% end -%>