Postfix
About
Postfix is an open source mail transfer agent (MTA) for POSIX systems. It is fully supported by Webmin/VirtualMin and is part of the Dovecot stack.
Pages
- /fixing: diagnosis of installations that aren't working right
Files
- /main.cf
- /master.cf: formatted list of transport helper applications
- /mail.log (typically found in /var/log)
Internal Apps
- /aliases (reference)
- /cleanup (reference)
- /lmtp (reference)
- /local (reference)
- /pickup (reference)
- /qmgr (reference)
- /smtpd (reference)
- /transport (reference)
- /trivial-rewrite (reference))
User Applets
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
Notes
After making changes to the Postfix configuration files, you don't actually have to stop and restart Postfix to load the changes; you can just type (as root) "postfix reload".
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 (Servers → Postfix Mail Server → "Mail Aliases" icon → "Create a new alias" link).
There is also a /etc/postfix/virtual
file for aliases in virtual domains; it can be edited manually, but you need to run postmap /etc/postfix/virtual
after modifying it.
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 –
- change: receive_override_options = no_address_mappings
- to this: receive_override_options =
– 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).
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 main.cf and set the following parameters:
- local_recipient_maps =
- luser_relay = 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".
This page mentions some other parameters but neglects the ones above.
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
Possibly useful pages:
- Setting Up Postfix As A Backup MX
- 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