The Postfix package contains a Mail Transport Agent (MTA). This is useful for sending email to other users of your host machine. It can also be configured to be a central mail server for your domain, a mail relay agent or simply a mail delivery agent to your local Internet Service Provider (ISP).
Download (HTTP): http://www.mirrorspace.org/postfix/official/postfix-2.3.3.tar.gz
Download (FTP): ftp://ftp.porcupine.org/mirrors/postfix-release/official/postfix-2.3.3.tar.gz
Download MD5 sum: f957e9319428be81c724b606fe060cc7
Download size: 2.6 MB
Estimated disk space required: 85 MB
Estimated build time: 0.5 SBU
PCRE-7.0, MySQL-5.0.37, PostgreSQL-8.2.3, OpenLDAP-2.3.34, OpenSSL-0.9.8e, Cyrus SASL-2.1.21, and cdb or TinyCDB
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/postfix
The Postfix source tree does not
contain a configure script, rather
the makefile in the top-level directory contains a makefiles target that regenerates all the other
makefiles in the build tree. If you wish to use additional
software such as a database back-end for virtual users, or
TLS/SSL authentication, you will need to regenerate the makefiles
using one or more of the appropriate CCARGS and AUXLIBS
settings listed below.
Here is an example that combines the TLS and Cyrus-SASL arguments:
make makefiles \
CCARGS='-DUSE_TLS -DUSE_SASL_AUTH -DUSE_CYRUS_SASL \
-DDEF_DAEMON_DIR=\"/usr/lib/postfix\" \
-DDEF_MANPAGE_DIR=\"/usr/share/man\" \
-DDEF_HTML_DIR=\"/usr/share/doc/postfix-2.3.3/html\" \
-DDEF_README_DIR=\"/usr/share/doc/postfix-2.3.3/README\" \
-I/usr/include/openssl -I/usr/include/sasl' \
AUXLIBS='-L/usr/lib -lssl -lcrypto -lsasl2'
To use TLS authentication with postfix you will need to pass the following values to the make makefiles command:
CCARGS='-DUSE_TLS -I/usr/include/openssl'
AUXLIBS='-L/usr/lib -lssl -lcrypto'
To use TLS you will also need Cyrus SASL-2.1.21.
To use Cyrus-SASL with Postfix, use the following arguments:
CCARGS='-DUSE_SASL_AUTH -DUSE_CYRUS_SASL -I/usr/include/sasl'
AUXLIBS='-L/usr/lib -lsasl2'
To use OpenLDAP with Postfix, use the following arguments:
CCARGS='-I/usr/include -DHAS_LDAP'
AUXLIBS='-L/usr/lib -lldap -llber'
To use MySQL with Postfix, use the following arguments:
CCARGS='-DHAS_MYSQL -I/usr/include/mysql'
AUXLIBS='-L/usr/lib -lmysqlclient -lz -lm'
To use PostgreSQL with Postfix, use the following arguments:
CCARGS='-DHAS_PGSQL -I/usr/include/postgresql'
AUXLIBS='-L/usr/lib -lpq -lz -lm'
Before you compile the program, you need to create users and
groups that will be expected to be in place during the
installation. Add the users and groups with the following
commands issued by the root user:
groupadd -g 32 postfix &&
groupadd -g 33 postdrop &&
useradd -c "Postfix Daemon User" -d /dev/null -g postfix \
-s /bin/false -u 32 postfix &&
chown -v postfix:postfix /var/mail
Install Postfix by running the following commands:
make makefiles \
CCARGS='-DDEF_DAEMON_DIR=\"/usr/lib/postfix\" \
-DDEF_MANPAGE_DIR=\"/usr/share/man\" \
-DDEF_HTML_DIR=\"/usr/share/doc/postfix-2.3.3/html\" \
-DDEF_README_DIR=\"/usr/share/doc/postfix-2.3.3/README\" \
<additional args>' \
<AUXLIBS='additional args'> &&
make
This package does not come with a test suite.
Now, as the root user:
sh postfix-install -non-interactive
make makefiles: This
command rebuilds the makefiles throughout the source tree to use
the options contained in the CCARGS and
AUXLIBS variables.
sh postfix-install -non-interactive: This keeps the install script from asking any questions, thereby accepting default destination directories in all but the few cases mentioned in the 'make makefiles' command.
cat >> /etc/aliases << "EOF"
# Begin /etc/aliases
MAILER-DAEMON: postmaster
postmaster: root
root: LOGIN
# End /etc/aliases
EOF
To protect an existing /etc/aliases file, the above command
appends these aliases to it if it exists. This file should be
checked and duplicate aliases removed, if present.
The /etc/aliases file that was just
created or appended, the main.cf
and the master.cf must be
personalized for your system. The aliases file needs your non-root login identity
so mail addressed to root can be
forwarded to you at the user level. The main.cf file needs your fully qualified
hostname. All of these edits can be done with sed commands entered into the
console with appropriate substitutions of your non-root login
name for <user>
and your fully qualified hostname for <localhost.localdomain>.
You will find the main.cf file is
self documenting, so load it into your editor to make the changes
you need for your situation.
sed -i "s/LOGIN/<user>/" /etc/aliases && sed -i "s/#myhostname = host.domain.tld/myhostname = \<localhost.localdomain>/" /etc/postfix/main.cf && /usr/bin/newaliases
If you have an existing configuration, you can run the
postfix utility to
add any necessary definitions to your existing files. As the
root user:
/usr/sbin/postfix upgrade-configuration
Before starting Postfix, you
should check that your configuration and file permissions will
work properly. Run the following commands as the root user to check and start your
Postfix server:
/usr/sbin/postfix check && /usr/sbin/postfix start
To automate the running of Postfix at startup, install the
/etc/rc.d/init.d/postfix init
script included in the blfs-bootscripts-20060910 package.
make install-postfix
Last updated on 2007-04-04 21:42:53 +0200