A free form string that can define any ldap options to be passed through (ldap_table(5)).
Default: Undefined.
Example: 'start_tls = yes'.
##### `mail_user`
A string defining the mail user, and optionally group, to execute external commands as. This parameter maps to the user parameter (pipe(8)).
Default: 'vmail'.
Example: 'vmail:vmail'.
##### `mailman`
A Boolean defining whether to configure a basic smtp server that is able to work for the mailman mailing list manager.
Default: false.
##### `maincf_source`
A string defining the location of a skeleton main.cf file to be used. The default file supplied is blank. However, if the main.cf file already exists on the system the contents will **NOT** be replaced by the contents from maincf_source.
A string to define the smtp line in the /etc/postfix/master.cf file. If this is defined the smtp_listen parameter will be ignored.
Default: Undefined.
Example: 'smtp inet n - n - - smtpd'.
##### `master smtps`
A string to define the smtps line in the /etc/postfix/master.cf file.
Default: Undefined.
Example: 'smtps inet n - n - - smtpd'.
##### `master_submission`
A string to define the submission line in the /etc/postfix/master.cf file.
Default: Undefined.
Example: 'submission inet n - n - - smtpd'.
##### `master_entries`
Array of strings containing additional entries for the /etc/postfix/master.cf file.
Default: Undefined.
Example: 'submission inet n - n - - smtpd'.
##### `mta`
A Boolean to define whether to configure Postfix as a mail transfer agent. This option is mutually exclusive with the satellite Boolean.
Default: False.
##### `mydestination`
A string to define the mydestination parameter in main.cf (postconf(5)).
Default: The systems FQDN.
Example: 'example.com, foo.example.com'.
##### `mynetworks`
A string to define the mynetworks parameter that holds trusted remote smtp clients (postconf(5)).
Default: '127.0.0.0/8'.
Example: '127.0.0.0/8, [::1]/128'.
##### `myorigin`
A string to define the myorigin parameter that holds the domain name that mail appears to come from (postconf(5)).
Default: The FQDN of the host.
Example: 'example.com'
##### `relayhost`
A string to define the relayhost parameter (postconf(5)).
Default: Undefined.
Example: 'smtp.example.com'.
##### `root_mail_recipient`
A string to define the e-mail address to which all mail directed to root should go (aliases(5)).
Default: 'nobody'.
Example: 'root_catch@example.com'.
##### `chroot`
A boolean to define if postfix should be run in a chroot jail or not. If not defined, '-' is used (OS dependant)
Default: Undefined.
Example: true
##### `satellite`
A Boolean to define whether to configure postfix as a satellite relay host. This setting is mutually exclusive with the mta Boolean.
Default: False.
##### `smtp_listen`
A string or an array of strings to define the IPs on which to listen in master.cf. This can also be set to 'all' to listen on all interfaces. If master_smtp is defined smtp_listen will not be used.
Default: '127.0.0.1'.
Example: '::1'.
##### `use_amavisd`
A Boolean to define whether to configure master.cf to allow the use of the amavisd scanner.
Default: False.
##### `use_dovecot_lda`
A Boolean to define whether to configure master.cf to use dovecot as the local delivery agent.
Default: False.
##### `use_schleuder`
A Boolean to define whether to configure master.cf to use the Schleuder GPG-enabled mailing list.
Default: False.
##### `use_sympa`
A Boolean to define whether to configure master.cf to use the Sympa mailing list management software.
Add/alter/remove options in Postfix main configuration file (main.cf). This uses Augeas to do the editing of the configuration file, as such any configuration value can be used.
#### Parameters
##### `ensure`
A string whose value can be any of 'present', 'absent', 'blank'.
Default: present.
Example: blank.
##### `value`
A string that can contain any text to be used as the configuration value.
A string whose value is a location for the source file to be used. This parameter is mutually exclusive with the content parameter, one or the other must be present, but both cannot be present.
Manages content of the /etc/postfix/transport map.
#### Requirements
Augeas is, of course, required.
The following code is required to use transport maps.
```puppet
includepostfix
postfix::hash{'/etc/postfix/transport':
ensure=>present,
}
postfix::config{'transport_maps'
ensure=>present,
value=>'hash:/etc/postfix/transport',
}
```
#### Parameters
##### `ensure`
Defines whether the transport entry is present or not. Value can either be present or absent.
Default: present.
Example: absent.
##### `destination`
The destination to be delivered to (transport(5)).
Default: Undefined.
Example: 'mailman'.
##### `nexthop`
A string to define where and how to deliver the mail (transport(5)).
Default: Undefined.
Example: '[smtp.google.com]:25'.
#### Examples
### postfix::virtual
Manages the contents of the virtual map.
#### Requirements
Augeas is, of course, required.
The following code is necessary to make virtual maps work:
```puppet
includepostfix
postfix::hash{'/etc/postfix/virtual':
ensure=>present,
}
postfix::config{'virtual_alias_maps':
ensure=>present,
value=>'hash:/etc/postfix/virtual',
}
```
#### Parameters
##### `ensure`
A string whose valid values are present or absent.
Default: present.
Example: absent.
##### `file`
A string defining the location of the virtual map, pre hash.
Default: '/etc/postfix/virtual'.
Example: '/etc/postfix/my_virtual_map'.
##### `destination`
A string defining where the e-mails will be delivered to, (virtual(8)).
Default: Undefined.
Example: 'root'
#### Examples
##### Route mail bound for 'user@example.com' to root.
```puppet
postfix::virtual{'user@example.com':
ensure=>present,
destination=>'root',
}
```
### postfix::conffile
Manages postfix configuration files. With it, you could create configuration files (other than, main.cf, master.cf, etc.) restarting postfix when necessary.
#### Parameters
##### `ensure`
A string whose valid values are present, absent or directory.
Default: present.
Example: absent.
##### `source`
A string with the source of the file. This is the `source` parameter of the underlying file resource.
The content of the postfix configuration file. This is an alternative to the `source` parameter. If you don't provide `source` neither `content` parameters a default template is used and the content is created with values in the `options` hash.
Default: `undef`
##### `path`
Path where to create the configuration file.
Default: '/etc/postfix/${name}'
##### `mode`
Permissions of the configuration file. This option is useful if you want to create the file with specific permissions (for example, because you have passwords in it).
Default: '0644'
Example: '0640'
##### `options`
Hash with the options used in the default template that is used when neither `source` neither `content`parameters are provided.
Default: {}
Example:
```
postfix::conffile { 'ldapoptions.cf':
options => {
server_host => ldap.mydomain.com,
bind => 'yes',
bind_dn => 'cn=admin,dc=mydomain,dc=com',
bind_pw => 'password',
search_base => 'dc=example, dc=com',
query_filter => 'mail=%s',
result_attribute => 'uid',
}
}
```
Please see [REFERENCE.md](https://github.com/voxpupuli/puppet-postfix/blob/master/REFERENCE.md) for more details.