from HTYP, the free directory anyone can edit if they can prove to me that they're not a spambot
Jump to navigation Jump to search


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.


  • /fixing: diagnosis of installations that aren't working right


Internal Apps

User Applets

Other Applets

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

Error Messages

Other Subpages

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


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".


To set up aliases, either edit the file specified by the alias_maps setting in (/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).


  • 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 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).

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.


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

The syntax for whereToSend is explained here.


  • luser_relay = $
    • forwards all email addressed to "" to ""
  • luser_relay =
    • forwards all email addressed to invalid users to "".

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 / 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 users to an archive address:

pages to index

Possibly useful pages: