Postfix

About
Postfix is an license::open source function::mail transfer agent (MTA) for POSIX systems. It is fully supported by Webmin and is part of the Dovecot stack.

Files

 * /main.cf
 * /master.cf: formatted list of transport helper applications

Internal Apps

 * /aliases (reference)
 * /cleanup (reference)
 * /lmtp (reference)
 * /local (reference)
 * /pickup (reference)
 * /qmgr (reference)
 * /smtpd (reference)
 * /transport (reference)
 * /trivial-rewrite (reference))

User Applets

 * /newaliases

Other Applets
These are installed as part of the postfix package; not sure how they should be classified:

Error Messages

 * 503 5.5.1 Error: authentication not enabled
 * Connect to private/dovecot-auth failed: No such file or directory

Other Subpages

 * /flow: the flow of messages across the various helper programs that make up Postfix
 * /SSL: Postfix and SSL

aliases
To set up aliases, either edit the file specified by the alias_maps setting in main.cf (/etc/aliases by default) and then run newaliases (or "postalias /etc/aliases") to update the database, or else use Webmin ("Mail Aliases" icon, then click on the "Create a new alias" link).

Notes:
 * Webmin seems to automatically run newaliases when you add or modify an individual alias, but not when you use it to edit the /etc/aliases file directly. Changes made to /etc/aliases will not take effect until the database is updated.
 * Stopping and starting the postfix daemon does not update from the aliases file; you still have to run newaliases.
 * see aliases for more information.

virtual users
By default, virtual aliases seem to get looked up only when email comes from the outside; locally generated emails are "returned" as undeliverable with the error message "Diagnostic-Code: x-unix; user unknown"

The following change in main.cf solves that problem – – but creates a new one, in that externally-sourced messages are now delivered twice (or four times if addressed directly to a virtual user instead of a virtual alias).
 * change: = no_address_mappings
 * to this: receive_override_options =

Someone who understands the internal structure of postfix could probably figure out what this means (and how to fix it), but I'm still working on it.

catch-all
To set up a catch-all address, edit and set the following parameters:
 * = whereToSend
 * = whereToSend

The syntax for whereToSend is explained here.

Examples:
 * luser_relay = $user@anotherdomain.org
 * forwards all email addressed to "invaliduser@firstdomain.org" to "invaliduser@anotherdomain.org"
 * luser_relay = youraddress@anotherdomain.org
 * forwards all email addressed to invalid users to "youraddress@anotherdomain.org".

automatic BCC
To automatically BCC outgoing mail from any given set of users, set sender_bcc_maps in /main.cf to hash:/etc/postfix/sender_bcc. (In Webmin: BCC Mapping: Sender BCC mapping lookup tables)

Each line in the /sender_bcc file will contain the sender (which can be user@domain, user, or @domain), one or more blanks, then the recipient (which can be one address or multiple addresses separated by commas).

Example -- BCCs all mail sent by vbz.com users to an archive address: @vbz.com archive2024@vbz.com

pages to index
I have these open in tabs, so they are probably relevant to something:
 * Postfix Address Rewriting
 * trivial-rewrite (manpage)
 * Postfix Configuration Parameters (includes /main.cf parameters)
 * Postfix After-Queue Content Filter
 * Group-Office Mailserver plugin: helps administer Postfix
 * Mail server using Postfix and Dovecot on Gentoo Linux

Official

 * home page

Reference

 * wiki
 * Relay recipient maps using LDAP against Active Directory
 * Relay recipient maps using LDAP against Active Directory