From Nuclear Physics Group Documentation Pages
Jump to navigationJump to search

Postfix is a mail transfer agent that routes and delivers e-mail.


What you can do to check if postfix is working.

Centos 7 Postfix

We upgraded Einstein to Centos 7 and a newer version of postfix.

Configuration Specifics

To combat spam, we require any hosts that connect to postfix to have a resolvable DNS name. There is a specific exception to this rule for systems in the "client-access" list. This is needed for JLab, where you are not resolvable to outside systems.

In the /etc/postfix/ file:

 smtpd_client_restrictions = check_client_access hash:/etc/postfix/client_access, reject_unknown_reverse_client_hostname

the client_access file:    OK
  129.57.    OK
  bad.domain REJECT



Postfix stores its configuration files in the /etc/postfix/ directory. The following is a list of the more commonly used files:

Used for access control, this file specifies which hosts are allowed to connect to Postfix. Empty, except for comment documentation
A configurable list required by the mail protocol. Not present
The global Postfix configuration file. The majority of configuration options are specified in this file.
Specifies how Postfix interacts with various processes to accomplish mail delivery.
Maps email addresses to relay hosts. Has one significant line:

Basic Postfix Configuration

Make sure that you use the system-switch-mail or system-switch-mail-gnome program to select Postfix as the default MTA. If you don't, you'll thrash the mail system and lose mail!


Standard Postfix Configuration

Slightly more advanced configuration: README

From RedHat:

By default, Postfix does not accept network connections from any host other than the local host. Perform the following steps as root to enable mail delivery for other hosts on the network:

  1. Edit the /etc/postfix/ file with a text editor, such as vi.
  2. Uncomment the mydomain line by removing the hash mark (#), and replace domain.tld with the domain the mail server is servicing, such as
  3. Uncomment the myorigin = $mydomain line.
  4. Uncomment the myhostname line, and replace host.domain.tld with the hostname for the machine.
  5. Uncomment the mydestination = $myhostname, localhost.$mydomain line.
  6. Uncomment the mynetworks line, and replace with a valid network setting for hosts that can connect to the server.
  7. Uncomment the inet_interfaces = all line.
  8. Restart the postfix service.

Once these steps are complete, the host accepts outside emails for delivery.

However, much of this is actually unnecessary since Postfix has intellegent defaults (e.g. it can figure out the machine's hostname automatically). Follow the Postfix readme instead.

Database Configuration

Setting up Postfix to cooperate with LDAP: README


Postfix Architecture Overview

How Postfix recieves mail


We use smtpd. Yes, our "sendmail" isn't the real thing, but rather a Postfix component.

How Postfix delivers mail


External Information