|MAKEMAP(8)||System Manager's Manual||MAKEMAP(8)|
makemapitself creates the database maps used by keyed map lookups specified in smtpd.conf(5).
makemap reads input from
file and writes data to a file whose name is made by
adding a “.db” suffix to file. The
current line can be extended over multiple lines using a backslash
(‘\’). Comments can be put anywhere in the file using a hash
mark (‘#’), and extend to the end of the current line. Care
should be taken when commenting out multi-line text: the comment is
effective until the end of the entire block. In all cases,
makemap reads lines consisting of words separated by
whitespace. The first word of a line is the database key; the remainder
represents the mapped value. The database key and value may optionally be
separated by the colon character.
The options are as follows:
- Specify the format of the database. Available formats are hash and btree. The default value is hash.
- Write the generated database to dbfile.
- Specify the format of the resulting map file. The default map format is
suitable for storing simple, unstructured, key-to-value string
associations. However, if the mapped value has special meaning, as in the
case of the virtual domains file, a suitable type
must be provided. The available output types are:
- The mapped value is a comma-separated list of mail destinations. This format can be used for building user aliases and user mappings for virtual domain files.
- There is no mapped value – a map of this type will only allow for the lookup of keys. This format can be used for building primary domain maps.
- Instead of generating a database map from text input, dump the contents of a database map as text with the key and value separated with a tab.
In addition to adding an entry to the primary domain map, one must add a filter rule that accepts mail for the domain map, for example:
table domains db:/etc/smtpd/domains.db action "local" mbox match for domain <domains> action "local"
Virtual domains expect a mapping of virtual users to real users in order to determine if a recipient is accepted or not. The mapping format is an extension to aliases(5), which allows the use of “email@example.com” to accept user only on the specified domain, “user” to accept the user for any of the virtual domains, “@domain.tld” to provide a catch-all for the specified domain and “@” to provide a global catch-all for all domains. smtpd(8) will perform the lookups in that specific order.
To create single virtual address, add “firstname.lastname@example.org user” to the users map. To handle all mail destined to any user at example.com, add “@example.com user” to the virtual map.
In addition to adding an entry to the virtual map, one must add a filter rule that accepts mail for virtual domains, for example:
table vdomains db:/etc/smtpd/vdomains.db table vusers db:/etc/smtpd/users.db action "local" mbox virtual <vusers> match for domain <vdomains> action "local" match for domain "example.org" action "local"
- List of user mail aliases.
- List of remote host credentials.
makemaputility exits 0 on success, and >0 if an error occurs.
makemapcommand first appeared in OpenBSD 4.6 as a replacement for the equivalent command shipped with sendmail.
|November 25, 2018||Linux 5.13.13-arch1-1|