Configuration files and commands for postfix

Postfix is a popular mail transfer agent (MTA) used for routing and delivering email on Unix-like operating systems. Here’s a detailed guide to its configuration files and commands:

Configuration Files for Postfix

  1. /etc/postfix/main.cf

    • Purpose: The main configuration file for Postfix.

    • Key Settings:

      • myhostname: The fully qualified domain name (FQDN) of the mail server.

      • mydomain: The domain name of the mail server.

      • myorigin: The domain that email appears to come from.

      • inet_interfaces: Network interfaces to listen on (e.g., all, localhost).

      • relayhost: Host to relay outgoing mail.

      • mydestination: Domains for which the server will accept mail.

      • smtpd_recipient_restrictions: Restrictions for receiving mail.

    • Example:

      myhostname = mail.example.com
      mydomain = example.com
      myorigin = $mydomain
      inet_interfaces = all
      relayhost = [smtp.example.com]:587
      mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
      smtpd_recipient_restrictions = permit_mynetworks, reject_unauth_destination
  2. /etc/postfix/master.cf

    • Purpose: Configures the Postfix daemon services.

    • Key Settings:

      • Service Definitions: Configures various Postfix services like smtp, smtpd, and cleanup.

      • Process Configuration: Specifies how Postfix handles different mail processes.

    • Example:

      smtp      inet  n       -       y       -       -       smtpd
      submission inet n       -       y       -       -       smtpd
        -o syslog_name=postfix/submission
        -o smtpd_etrn_restrictions=reject
  3. /etc/postfix/sender_dependent_relayhost_maps

    • Purpose: Configures relay hosts based on the sender’s address.

    • Key Settings:

      • sender_dependent_relayhost_maps: Specifies the maps for sender-dependent relay.

    • Example:

      @example.com [smtp.example.com]:587
  4. /etc/postfix/virtual

    • Purpose: Manages virtual alias domains and addresses.

    • Key Settings:

      • Virtual Aliases: Redirects mail from virtual addresses to real addresses.

    • Example:

      postmaster@example.com postmaster
      webmaster@example.com webmaster
  5. /etc/postfix/transport

    • Purpose: Specifies transport rules for domains.

    • Key Settings:

      • Domain-specific Transport: Routes email to different transport agents based on the domain.

    • Example:

      example.com smtp:[smtp.example.com]:587
  6. /etc/postfix/main.cf

    • Purpose: The main configuration file for Postfix.

    • Key Settings:

      • smtpd_tls_cert_file and smtpd_tls_key_file: Specify the certificate and key files for TLS.

    • Example:

      smtpd_tls_cert_file = /etc/ssl/certs/postfix.pem
      smtpd_tls_key_file = /etc/ssl/private/postfix.key

Postfix Commands

  1. postfix start

    • Purpose: Start the Postfix service.

    • Command:

      sudo postfix start
  2. postfix stop

    • Purpose: Stop the Postfix service.

    • Command:

      sudo postfix stop
  3. postfix reload

    • Purpose: Reload the Postfix configuration without stopping the service.

    • Command:

      sudo postfix reload
  4. postfix flush

    • Purpose: Flush the mail queue.

    • Command:

      sudo postfix flush
  5. postfix check

    • Purpose: Check the configuration files for syntax errors.

    • Command:

      sudo postfix check
  6. postmap

    • Purpose: Create or update Postfix lookup tables (e.g., hash or btree maps).

    • Command:

      sudo postmap /etc/postfix/virtual
  7. postqueue

    • Purpose: Manage the Postfix mail queue.

    • Commands:

      • View the queue:

        sudo postqueue -p
      • Remove a specific message:

        sudo postqueue -d <queue_id>
  8. mailq

    • Purpose: Display the mail queue (alias for postqueue -p).

    • Command:

      mailq
  9. postfix set-permissions

    • Purpose: Set the correct permissions for Postfix files and directories.

    • Command:

      sudo postfix set-permissions

Example Workflow

  1. Edit Configuration Files:

    sudo nano /etc/postfix/main.cf
  2. Reload Configuration:

    sudo postfix reload
  3. Check for Errors:

    sudo postfix check
  4. Flush the Mail Queue:

    sudo postfix flush

Conclusion

Postfix is highly configurable through its various files and commands. Properly managing and understanding these configurations will ensure efficient and secure mail operations. Regularly check and adjust settings as needed to align with your mail system’s requirements and performance needs.

Last updated