Main Page

From postfix

Jump to: navigation, search

Welcome to postfix, the document collector that anyone can edit.

We are currently working on 4 articles.



About Postfix

What is Postfix? It is Wietse Venema's mailer that started life as an alternative to the widely-used Sendmail program.

Postfix attempts to be fast, easy to administer, and secure, while at the same time being sendmail compatible enough to not upset existing users. Thus, the outside has a sendmail-ish flavor, but the inside is completely different.

About Postfix Wiki

Postfix Wiki tries to collect all available documentation on Postfix. This seems like a big task, and without your help it's going to be.
So... Type along! :)

If you want to learn the wiki style please use this Sandbox and not the documents that are published.

Documentation

Postfix Manuals and Documentation

The online documentation at www.postfix.org is for the current official release. Postfix 2.x users should find the documents largely applicable to their systems, with features that require later releases noted in the tutorials or configuration parameter reference guide. Postfix 1.x users will more frequently find that the recipes in the tutorials require modifications or that the features described are not available.

When in doubt consult the documentation that is included with the source code of your release. This is typically installed with binary software packages. The location of the HTML documents is recorded in the "html_directory" configuration parameter. Postfix 1.x configuration samples were also found in the "sample_directory".

Everyone should be familiar with:

Then understand how Postfix rewrites addresses and selects the delivery method for each recipient:

Then choose a baseline configuration from one of the common cases:

Support for virtual domains is described in:

Support for client, sender, recipient restrictions:

Support for Variable Envelope Return Path addressing is described in:

To understand in more detail how the pieces fit together:

The documentation of each configuration parameter is at www.postfix.org/postconf.5.html#parameter_name

Keep it simple initially, don't build the complete configuration in one go, add a few features at a time and test. Use simple indexed files first, get used to the various tables that drive Postfix, and only then consider using LDAP, MySQL, PostgreSQL, ... to configure the tables:

If you run into trouble and need help, ask good questions:

Back-end options discussion.

Howtos

FAQs

Training

  • Guru Labs class GL275 covers Postfix, email theory, DNS, SMTP Auth, STARTTLS, SpamAssassin, POP3/IMAP4 daemons, and Webmail with Squirrelmail.

MS Exchange Integration

TLS

SASL

UCE/Virus

high performance tip: if you are getting just 20-25 process running of spamassassin or amavis but still have alot of resources to use, set the spamassassin_destination_concurrency_limit or amavis_destination_concurrency_limit (*_destination_concurrency_limit, whatever you defined in the master.cf that are using in the content_filter) to a higer value. If not defined, postfix uses the default of 20 parallel deliveries and so it will not create more process, even if you increased all other limites (program limits, master.cf maxproc, etc) and have more than enough resources.

POP/IMAP and the kitchen sink

Web-frontends and other GUI's

  • Atmail is a complete IMAP/POP3/TLS Webmail client compatible with Postfix. Includes Ajax functionality, advanced Webmail interface supporting 12 languages and multiple Webmail themes. Calendaring, Wireless and Outlook Sync integration included, allowing you to extend a vanilla Postfix installation with an improved Webmail client and groupware functionality.
  • WebCFG is an easy-to-install easy-to-use platform independent generic web front end for editing local/remote based text files (e.g. system configuration files simply in your web browser - there is no need for shell commands or Unix editors anymore. After modification is done, WebCFG executes local / remote commands/scripts forcing processing the new configuration (e.g. restart / reload a dependant service). Injecting special comment-tags like '# @WC tab / radiobuttons / combobox / textbox /...' to the text file will optimize and beautify the presentation in the web frontend for you or your customers. The free version of WebCFG includes an example for postfix managing aliases and virtual-files via webfrontend.

Mac OS X Specific

Resources

  1. Source Code Index
  2. 10.3.9 Source Code

Install

  1. Install Apple
  2. Upgrade SASL

Misc Scripts

  1. Automated Installation Script

Linux Specific

Resources

  1. Postfix as SMTP AUTH Client (Auth the smarthost)

Install

  1. Linux Standard Install
  2. Linux Other Install

Misc Scripts

  1. Basic SpamAssassin Integration with Postfix
  2. Postfix + SpamAssassin with SPAM Quarantine
  3. .forward with Reply to mail automatically (Vacation Reply)
  4. Making a mail responder in Postfix (a single address for testing email)
  5. Adding a Disclaimer to Email Messages

RedHat

iRedMail, Shell script set to install and setup Postfix mail server automatic on Red Hat(R) Enterprise Linux and CentOS 5.x.

  • iRedMail. Homepage, in Chinese.
    • Support both i386 and x86_64
    • Support both MySQL and OpenLDAP.
    • Full Open Source.
    • Full featues.

Resources


Install

  1. RedHat Standard Install
  2. RedHat Other Install

Misc Scripts

  1. Archiving Incoming and Outgoing Mail
  2. More INPUT NEEDED

FreeBSD Specific

Resources

Install

  1. Port
  2. Package

Tools

Template:FreeBSDTools toc

This is a BASH-script I wrote to recursively resolve aliases in a Postfix system.

This is an alternative to:

  • postmap -q user@domain file_type:file_name (only gives on resolve iteration) (reference)
  • sendmail -bv user@domain (no direct results on the command-line)

This script below will recursively search in 2 predefined databases.

name: alias-resolve.sh

#!/bin/bash

alias="$1"

count="$2"
let "count++"
if [ $count -gt 50 ]; then
 echo "died: to many iterations!"
 exit
fi
printf "(round %02d) " $count

hash="pcre:/etc/postfix/virtual-alias.pcre"
cmd="postmap -q $alias $hash"
resolve=`$cmd`

if [ "$resolve" == "" ]; then
 hash="mysql:/etc/postfix/mysql_virtual_alias_maps.cf"
 cmd="postmap -q $alias $hash"
 resolve=`$cmd`
fi

if [ "$resolve" == "" ]; then
  echo "alias '$alias' does not exist (can be REMOTE DELIVERY)"
  exit
else
  # multiple >> if containts a ","
  if [ `expr index "$resolve" ','` -gt 0 ]; then

   echo "alias '$alias' resolves to MULTIPLE ALIASES -> '$resolve'"

   resolve_multiple=$resolve
   resolve_one=${resolve_multiple%%,*}    # takes the first token
   until [ "$resolve_one" =  "$resolve_multiple" ]
   do
    resolve_one=${resolve_multiple%%,*}    # takes the first token
    resolve_multiple=${resolve_multiple#*,}    # chops that token from the string
    $0 "$resolve_one" $count
   done
  else
   if [ "$alias" != "$resolve" ]; then
    echo "alias '$alias' resolves to '$resolve'"
    $0 "$resolve" $count
   else
    echo "alias '$alias' resolves to self -> LOCAL DELIVERY"
   fi
  fi
fi

This is some example output:

Command: /etc/postfix/alias-resolve.sh user@example-domain.com;

Result:
(round 01) alias 'user@example-domain.com' resolves to MULTIPLE ALIASES -> 'another@target-domain.com,mailbox@example-domain.com'
(round 02) alias 'another@target-domain.com' does not exist (can be REMOTE DELIVERY)
(round 02) alias 'mailbox@example-domain.com' resolves to self -> LOCAL DELIVERY

--Jdgnl 00:20, 22 January 2008 (CET)


OpenBSD Specific

OpenBSD PostfixAdmin Guide

Personal tools