]> git.ipfire.org Git - thirdparty/postfix.git/commitdiff
postfix-2.5-20070328
authorWietse Venema <wietse@porcupine.org>
Wed, 28 Mar 2007 05:00:00 +0000 (00:00 -0500)
committerViktor Dukhovni <viktor@dukhovni.org>
Tue, 5 Feb 2013 06:33:05 +0000 (06:33 +0000)
87 files changed:
postfix/HISTORY
postfix/README_FILES/BACKSCATTER_README
postfix/README_FILES/INSTALL
postfix/README_FILES/MILTER_README
postfix/README_FILES/OVERVIEW
postfix/RELEASE_NOTES
postfix/RELEASE_NOTES-2.3 [moved from postfix/RELEASE_NOTES_2.3 with 100% similarity]
postfix/RELEASE_NOTES-2.4 [new file with mode: 0644]
postfix/conf/access
postfix/conf/canonical
postfix/conf/generic
postfix/conf/header_checks
postfix/conf/relocated
postfix/conf/transport
postfix/conf/virtual
postfix/html/BACKSCATTER_README.html
postfix/html/INSTALL.html
postfix/html/MILTER_README.html
postfix/html/OVERVIEW.html
postfix/html/access.5.html
postfix/html/bounce.5.html
postfix/html/canonical.5.html
postfix/html/generic.5.html
postfix/html/header_checks.5.html
postfix/html/ldap_table.5.html
postfix/html/mysql_table.5.html
postfix/html/nisplus_table.5.html
postfix/html/pcre_table.5.html
postfix/html/pgsql_table.5.html
postfix/html/pipe.8.html
postfix/html/postsuper.1.html
postfix/html/regexp_table.5.html
postfix/html/relocated.5.html
postfix/html/transport.5.html
postfix/html/virtual.5.html
postfix/man/man1/postmap.1
postfix/man/man1/postsuper.1
postfix/man/man5/access.5
postfix/man/man5/aliases.5
postfix/man/man5/bounce.5
postfix/man/man5/canonical.5
postfix/man/man5/cidr_table.5
postfix/man/man5/generic.5
postfix/man/man5/header_checks.5
postfix/man/man5/ldap_table.5
postfix/man/man5/mysql_table.5
postfix/man/man5/nisplus_table.5
postfix/man/man5/pcre_table.5
postfix/man/man5/pgsql_table.5
postfix/man/man5/regexp_table.5
postfix/man/man5/relocated.5
postfix/man/man5/transport.5
postfix/man/man5/virtual.5
postfix/man/man8/anvil.8
postfix/man/man8/pipe.8
postfix/man/man8/proxymap.8
postfix/man/man8/virtual.8
postfix/mantools/manspell
postfix/proto/BACKSCATTER_README.html
postfix/proto/INSTALL.html
postfix/proto/MILTER_README.html
postfix/proto/OVERVIEW.html
postfix/proto/access
postfix/proto/aliases
postfix/proto/bounce
postfix/proto/canonical
postfix/proto/cidr_table
postfix/proto/generic
postfix/proto/header_checks
postfix/proto/ldap_table
postfix/proto/mysql_table
postfix/proto/nisplus_table
postfix/proto/pcre_table
postfix/proto/pgsql_table
postfix/proto/regexp_table
postfix/proto/relocated
postfix/proto/transport
postfix/proto/virtual
postfix/src/anvil/anvil.c
postfix/src/bounce/2template_test.in
postfix/src/bounce/template_test.ref
postfix/src/global/mail_version.h
postfix/src/pipe/pipe.c
postfix/src/postmap/postmap.c
postfix/src/postsuper/postsuper.c
postfix/src/proxymap/proxymap.c
postfix/src/virtual/virtual.c

index 2643b31ad8c22a17e7df340f2083457ea360d2f9..5fdc812a748eb29d44cb28f8f6d44a70d0b3019c 100644 (file)
@@ -13386,8 +13386,22 @@ Apologies for any names omitted.
        Currently, nothing in Postfix uses this functionality.
        File: global/dict_proxy.c.
 
+20070325
+
+       Bugfix: postfix-install didn't work for symlink or hardlink
+       targets, when the parent directory had a value of "no".
+
+20070326
+
+       Workaround: Eric Raymond's man page formatters don't handle
+       low-level *roff .in or .ti controls. We now use .nf and .fi
+       instead. Files: many.
+
 Wish list:
 
+       Remove defer(8) and trace(8) references and man pages. These
+       are services not program names.
+
        Bind all deliveries to the same local delivery process,
        making Postfix perform as poorly as monolithic mailers,
        but giving a possibility to eliminate duplicate deliveries.
@@ -13398,16 +13412,9 @@ Wish list:
 
        Need scache size limit.
 
-       Don't transform bare username into user@localdomain.localdomain
-       when no domain is specified via main.cf or via the machine
-       hostname.
-
        Update BACKSCATTER_README to use PCRE because that's what I
        am using now.
 
-       Update MILTER_README with Martinec info.
-       http://www.ijs.si/software/amavisd/amavisd-new-docs.html#dkim
-
        Make postcat header/body aware so people can grep headers.
 
        Make postmap header/body aware so people can test multi-line
@@ -13490,8 +13497,6 @@ Wish list:
        playing with the soft_error test in the smtp_trouble.c
        module, and avoiding delivery to backup MX hosts.
 
-       select -> kqueue, epoll, /dev/poll, poll() ...
-
        In the SMTP server, set a "pipelining detected" flag at the
        start of a session and at protocol synchronization points,
        so that reject_unauth_pipelining can be specified in any
@@ -13512,9 +13517,6 @@ Wish list:
        Privacy: remove local command/pathname details from remote
        delivery status reports, and log them via local msg_warn().
 
-       Remove defer(8) and trace(8) references and man pages. These
-       are services not program names.
-
        Is it safe to cache a connection after it has been used for
        more than some number of address verification probes?
 
index a7a82c02a7dedff5f4214fdbf7e14540c444af9c..90a16bfa2e51827e4d374a3a57926b62e5b1c2b3 100644 (file)
@@ -4,7 +4,11 @@ P\bPo\bos\bst\btf\bfi\bix\bx B\bBa\bac\bck\bks\bsc\bca\bat\btt\bte\ber\br H\bHo\bow\bwt\bto\bo
 
 O\bOv\bve\ber\brv\bvi\bie\bew\bw
 
-This document describes features that require Postfix version 2.0 or later.
+This document describes features that require Postfix version 2.0 or later. The
+examples use Perl Compatible Regular Expressions (Postfix pcre: tables), but
+also provide a translation to POSIX regular expressions (Postfix regexp:
+tables). PCRE is preferred primarily because the implementation is often
+faster.
 
 Topics covered in this document:
 
@@ -97,8 +101,8 @@ To block such backscatter I use header_checks and body_checks patterns like
 this:
 
     /etc/postfix/main.cf:
-        header_checks = regexp:/etc/postfix/header_checks
-        body_checks = regexp:/etc/postfix/body_checks
+        header_checks = pcre:/etc/postfix/header_checks
+        body_checks = pcre:/etc/postfix/body_checks
 
     /etc/postfix/header_checks:
         if /^Received:/
@@ -107,7 +111,7 @@ this:
         /^Received: +from +[^ ]+ +\(([^ ]+ +[he]+lo=|[he]+lo +)
     (porcupine\.org)\)/
             reject forged client name in Received: header: $2
-        /^Received:.* +by +(porcupine\.org)[[:>:]]/
+        /^Received:.* +by +(porcupine\.org)\b/
             reject forged mail server name in Received: header: $1
         endif
         /^Message-ID:.* <!&!/ DUNNO
@@ -121,7 +125,7 @@ this:
         /^[> ]*Received: +from +[^ ]+ +\(([^ ]+ +[he]+lo=|[he]+lo +)
     (porcupine\.org)\)/
             reject forged client name in Received: header: $2
-        /^[> ]*Received:.* +by +(porcupine\.org)[[:>:]]/
+        /^[> ]*Received:.* +by +(porcupine\.org)\b/
             reject forged mail server name in Received: header: $1
         endif
         /^[> ]*Message-ID:.* <!&!/ DUNNO
@@ -130,6 +134,9 @@ this:
 
 Notes:
 
+  * The example uses pcre: tables mainly for speed; with minor modifications,
+    you can use regexp: tables as explained below.
+
   * The example is simplified for educational purposes. In reality my patterns
     list multiple domain names, as "(domain|domain|...)".
 
@@ -139,8 +146,9 @@ Notes:
   * The "\(" and "\)" match "(" and ")" literally. Without the "\", the "(" and
     ")" would be grouping operators.
 
-  * The "[[:>:]]" matches the end of a word. On some systems you should specify
-    "\>" instead. For details see your system documentation.
+  * The "\b" is used here to match the end of a word. If you use regexp:
+    tables, specify "[[:>:]]" (on some systems you should specify "\>" instead;
+    for details see your system documentation).
 
   * The "if /pattern/" and "endif" eliminate unnecessary matching attempts. DO
     NOT indent lines starting with /pattern/ between the "if" and "endif"!
@@ -202,25 +210,29 @@ the backscatter mail that I get claims to be sent from these addresses. Such
 mail is obviously forged and is very easy to stop.
 
     /etc/postfix/main.cf:
-        header_checks = regexp:/etc/postfix/header_checks
-        body_checks = regexp:/etc/postfix/body_checks
+        header_checks = pcre:/etc/postfix/header_checks
+        body_checks = pcre:/etc/postfix/body_checks
 
     /etc/postfix/header_checks:
-        /^(From|Return-Path):.*[[:<:]](user@domain\.tld)[[:>:]]/
+        /^(From|Return-Path):.*\b(user@domain\.tld)\b/
             reject forged sender address in $1: header: $2
 
     /etc/postfix/body_checks:
-        /^[> ]*(From|Return-Path):.*[[:<:]](user@domain\.tld)[[:>:]]/
+        /^[> ]*(From|Return-Path):.*\b(user@domain\.tld)\b/
             reject forged sender address in $1: header: $2
 
 Notes:
 
+  * The example uses pcre: tables mainly for speed; with minor modifications,
+    you can use regexp: tables as explained below.
+
   * The example is simplified for educational purposes. In reality, my patterns
     list multiple email addresses as "(user1@domain1\.tld|user2@domain2\.tld)".
 
-  * The "[[:<:]]" and "[[:>:]]" match the beginning and end of a word,
-    respectively. On some systems you should specify "\<" and "\>" instead. For
-    details see your system documentation.
+  * The two "\b" as used in "\b(user@domain\.tld)\b" match the beginning and
+    end of a word, respectively. If you use regexp: tables, specify "[[:<:]]
+    and [[:>:]]" (on some systems you should specify "\< and \>" instead; for
+    details see your system documentation).
 
   * The "\." matches "." literally. Without the "\", the "." would match any
     character.
index 596873f8d014295429f259873198a53920c88be6..b8f51e698677fd8de5c8b0d389945d3510814f8d 100644 (file)
@@ -88,6 +88,7 @@ At some point in time, a version of Postfix was supported on:
     Linux RedHat 3.x (January 2004) - 9.x
     Linux Slackware 3.x, 4.x, 7.x
     Linux SuSE 5.x, 6.x, 7.x
+    Linux Ubuntu 4.10..7.04
     Mac OS X
     NEXTSTEP 3.x
     NetBSD 1.x
index 7c7a34a27f1ece362c5467d265bb9823e6a96782..a667ce4118a5dbad2027d864cd828ad892c78999 100644 (file)
@@ -443,9 +443,6 @@ NOTES:
 
   * This was tested with sid-milter-0.2.10 and sid-milter-0.2.14.
 
-  * This fixes only the ugly message header, but not the WARNING message.
-    Fortunately, sid-milter logs that message only once.
-
 To fix the ugly message header with other Milter applications, you will need to
 do something like this:
 
index dc5026a22efdea80c21d7fbd5d2c65c13c47cb6c..7fe2b52214f11c9796104ab28946c07c89f269c4 100644 (file)
@@ -209,12 +209,13 @@ queues.
 
     Network -> smtpd(8) <-> anvil(8)
 
-  * The bounce(8), defer(8) and trace(8) servers each maintain their own queue
-    directory trees with per-message logfiles. This information is used to send
-    delivery or non-delivery notifications to the sender.
+  * The bounce(8), defer(8) and trace(8) services each maintain their own queue
+    directory trees with per-message logfiles. Postfix uses this information
+    when sending "failed", "delayed" or "success" delivery status notifications
+    to the sender.
 
-    The trace(8) service implements support for the Postfix "sendmail -bv" and
-    "sendmail -v" commands which produce reports about how Postfix delivers
+    The trace(8) service also implements support for the Postfix "sendmail -bv"
+    and "sendmail -v" commands which produce reports about how Postfix delivers
     mail, and is available with Postfix version 2.1 and later. See DEBUG_README
     for examples.
 
index ffc0493d80ad4317c860e83dafa62cc366f42635..2ae10b5507bd911eb11a7bd5d6b6fe6d6337f5ce 100644 (file)
-The stable Postfix release is called postfix-2.3.x where 2=major
-release number, 3=minor release number, x=patchlevel.  The stable
+The stable Postfix release is called postfix-2.4.x where 2=major
+release number, 4=minor release number, x=patchlevel.  The stable
 release never changes except for patches that address bugs or
 emergencies. Patches change the patchlevel and the release date.
 
 New features are developed in snapshot releases. These are called
-postfix-2.4-yyyymmdd where yyyymmdd is the release date (yyyy=year,
+postfix-2.5-yyyymmdd where yyyymmdd is the release date (yyyy=year,
 mm=month, dd=day).  Patches are never issued for snapshot releases;
 instead, a new snapshot is released.
 
 The mail_release_date configuration parameter (format: yyyymmdd)
 specifies the release date of a stable release or snapshot release.
 
-Incompatibility with Postfix 2.2 and earlier
+Incompatibility with Postfix 2.3 and earlier
 ============================================
 
-If you upgrade from Postfix 2.2 or earlier, read RELEASE_NOTES-2.3
+If you upgrade from Postfix 2.3 or earlier, read RELEASE_NOTES-2.4
 before proceeding.
-
-Incompatibility with Postfix snapshot 200702224
-===============================================
-
-As a safety measure, Postfix now by default creates mailbox dotlock
-files on all systems. This prevents problems with GNU POP3D which
-subverts kernel locking by creating a new mailbox file and deleting
-the old one.
-
-Major changes with Postfix snapshot 20070212-event
-==================================================
-
-Better support for systems that run thousands of Postfix processes.
-Postfix now supports FreeBSD kqueue(2), Solaris poll(7d) and Linux
-epoll(4) as more scalable alternatives to the traditional select(2)
-system call, and uses poll(2) when examining a single file descriptor
-for readability or writability. These features are supported on
-sufficiently recent versions of FreeBSD, NetBSD, OpenBSD, Solaris
-and Linux; support for other systems will be added as evidence
-becomes available that usable implementations exist.
-
-Incompatibility with Postfix snapshot 20070201
-==============================================
-
-Some default settings have been adjusted to better match contemporary
-requirements:
-
-- queue_run_delay and minimal_backoff_time were reduced from 1000s
-to 300s so that deliveries are retried earlier after the first
-failure.
-
-- ipc_idle was reduced from 100s to 5s, so that tlsmgr and scache
-clients will more quickly release unused file handles.
-
-Major changes with Postfix snapshot 20070121
-============================================
-
-The support for Milter header modification requests was revised.
-With minimal change in the on-disk representation, the code was
-greatly simplified, and regression tests were updated to ensure
-that old errors were not re-introduced.  The queue file format is
-entirely backwards compatible with Postfix 2.3.
-
-Incompatible changes with Postfix snapshot 20070116
-===================================================
-
-A new field is added to the queue file "size" record that specifies
-the message content length.  Postfix 2.3 and older Postfix 2.4
-versions will ignore this field, and will report the message size
-as it was before the body was replaced.
-
-Major changes with Postfix snapshot 20070116
-============================================
-
-Support for Milter requests to replace the message body.  Postfix
-now implements all the header/body modification requests that are
-available with Sendmail 8.13.
-
-Incompatible changes with Postfix snapshot 20061217
-===================================================
-
-Postfix no longer requires a domain name. It uses "localdomain" as
-the default Internet domain name when no domain is specified via
-main.cf or via the machine's hostname.
-
-Major changes with Postfix snapshot 20061217
-============================================
-
-More precise queue flushing with the ETRN, "postqueue -s site", and
-"sendmail -qRsite" commands, after minimization of race conditions.
-New per-queue-file flushing with "postqueue -i queueid" and "sendmail
--qIqueueid".
-
-Incompatible changes with Postfix snapshot 20061214
-===================================================
-
-The check_smtpd_policy client sends TLS certificate attributes
-(client ccert_subject, ccert_issuer) only after successful client
-certificate verification. The reason is that the certification
-verification status itself is not available in the policy request.
-
-The check_smtpd_policy client sends TLS certificate fingerprint
-information even when the certificate itself was not verified.
-
-The remote SMTP client TLS certificate fingerprint can be used for
-access control even when the certificate itself was not verified.
-
-Incompatible changes with Postfix snapshot 20061209
-===================================================
-
-The Postfix installation procedure no longer updates main.cf with
-"unknown_local_recipient_reject_code = 450". Four years after the
-introduction of mandatory recipient validation, this transitional
-tool is no longer neeed.
-
-After upgrading Postfix you MUST execute "postfix reload", otherwise
-the queue manager may log a warnings with:
-
-    warning: connect to transport retry: Connection refused
-
-The upgrade procedure adds a new "retry" service to the master.cf
-file.  If you make the mistake of copying old Postfix configuration
-files over the new files, the queue manager may log warnings with:
-
-    warning: connect to transport retry: Connection refused
-
-To fix your master.cf file, use "postfix upgrade-configuration"
-followed by "postfix reload".
-
-Small changes were made to the default bounce message templates,
-to prevent HTML-aware software from hiding or removing the text
-"<postmaster>", and producing misleading text.
-
-Major changes with Postfix snapshot 20061209
-============================================
-
-Better interoperability with non-conforming SMTP servers that reply
-and disconnect before Postfix has sent the complete message content.
-
-Improved worst-case (old and new) queue manager performance when
-deferring or bouncing large amounts of mail. Instead of talking to
-the bounce or defer service synchronously, this work is now done
-in the background by the error or retry service.
-
-Improved worst-case (new) queue manager performance when delivering
-multi-recipient mail. The queue manager now proactively reads
-recipients from the queue file, instead of waiting for the slowest
-deliveries to complete before reading in new recipients.  This
-introduces two parameters: default_recipient_refill_limit (how many
-recipient slots to refill at a time) and default_recipient_refill_delay
-(how long to wait between refill operations). These two parameters
-act as defaults for optional per-transport settings.
-
-Better support for queue file systems on file servers with drifting
-clocks. Clock skew can be a problem, because Postfix does not deliver
-mail until the local clock catches up with the queue file's last
-modification time stamp. On systems with usable futimes() or
-equivalent (Solaris, *BSD, MacOS, but not Linux), Postfix now always
-explicitly sets the queue file last modification time stamps while
-creating a queue file.  On systems without usable futimes() (Linux,
-and ancient versions of Solaris, SunOS and *BSD) Postfix keeps using
-the slower utime() system call to update queue file time stamps
-when the file system clock is off with respect to the local system
-clock, and logs a warning.
-
-Incompatible changes with Postfix snapshot 20061006
-===================================================
-
-The format of SMTP server TLS session cache lookup keys has changed.
-The lookup key now includes the master.cf service name.
-
-Major changes with Postfix snapshot 20061006
-============================================
-
-Individual CISCO PIX bug workarounds are now on/off configurable.
-This introduces new parameters: smtp_pix_workarounds (default:
-disable_esmtp, delay_dotcrlf) and smtp_pix_workaround_maps (workarounds
-indexed by server IP address).  The default settings are backwards
-compatible.
-
-Incompatible changes with Postfix snapshot 20060806
-===================================================
-
-Postfix no longer announces its name in delivery status notifications.
-Users believe that Wietse provides a free help desk service that
-solves all their email problems.
diff --git a/postfix/RELEASE_NOTES-2.4 b/postfix/RELEASE_NOTES-2.4
new file mode 100644 (file)
index 0000000..e56972d
--- /dev/null
@@ -0,0 +1,198 @@
+The stable Postfix release is called postfix-2.4.x where 2=major
+release number, 4=minor release number, x=patchlevel.  The stable
+release never changes except for patches that address bugs or
+emergencies. Patches change the patchlevel and the release date.
+
+New features are developed in snapshot releases. These are called
+postfix-2.5-yyyymmdd where yyyymmdd is the release date (yyyy=year,
+mm=month, dd=day).  Patches are never issued for snapshot releases;
+instead, a new snapshot is released.
+
+The mail_release_date configuration parameter (format: yyyymmdd)
+specifies the release date of a stable release or snapshot release.
+
+Major changes - critical
+------------------------
+
+See RELEASE_NOTES-2.3 if you upgrade from Postfix 2.2 or earlier.
+
+[Incompat 20070122] To take advantage of the new support for BSD
+kqueue, Linux epoll, or Solaris /dev/poll, you must restart (not
+reload) Postfix after upgrading from Postfix 2.3.
+
+[Incompat 20061209] If you upgrade Postfix without restarting, you
+MUST execute "postfix reload", otherwise the queue manager may log
+a warnings with:
+
+    warning: connect to transport retry: Connection refused
+
+[Incompat 20061209] The upgrade procedure adds a new "retry" service
+to the master.cf file.  If you make the mistake of copying old
+Postfix configuration files over the new files, the queue manager
+may log warnings with:
+
+    warning: connect to transport retry: Connection refused
+
+To fix your master.cf file, use "postfix upgrade-configuration"
+followed by "postfix reload".
+
+Major changes - safety
+----------------------
+
+[Incompat 20070222] As a safety measure, Postfix now by default
+creates mailbox dotlock files on all systems. This prevents problems
+with GNU POP3D which subverts kernel locking by creating a new
+mailbox file and deleting the old one.
+
+Major changes - Milter support
+------------------------------
+
+[Feature 20070121] The support for Milter header modification
+requests was revised.  With minimal change in the on-disk representation,
+the code was greatly simplified, and regression tests were updated
+to ensure that old errors were not re-introduced.  The queue file
+format is entirely backwards compatible with Postfix 2.3.
+
+[Feature 20070116] Support for Milter requests to replace the message
+body.  Postfix now implements all the header/body modification
+requests that are available with Sendmail 8.13.
+
+[Incompat 20070116] A new field is added to the queue file "size"
+record that specifies the message content length.  Postfix 2.3 and
+older Postfix 2.4 snapshots will ignore this field, and will report
+the message size as it was before the body was replaced.
+
+Major changes - TLS support
+---------------------------
+
+[Incompat 20061214] The check_smtpd_policy client sends TLS certificate
+attributes (client ccert_subject, ccert_issuer) only after successful
+client certificate verification. The reason is that the certification
+verification status itself is not available in the policy request.
+
+[Incompat 20061214] The check_smtpd_policy client sends TLS certificate
+fingerprint information even when the certificate itself was not
+verified.
+
+[Incompat 20061214] The remote SMTP client TLS certificate fingerprint
+can be used for access control even when the certificate itself was
+not verified.
+
+[Incompat 20061006] The format of SMTP server TLS session cache
+lookup keys has changed.  The lookup key now includes the master.cf
+service name.
+
+Major changes - performance
+---------------------------
+
+[Feature 20070212] Better support for systems that run thousands
+of Postfix processes.  Postfix now supports FreeBSD kqueue(2),
+Solaris poll(7d) and Linux epoll(4) as more scalable alternatives
+to the traditional select(2) system call, and uses poll(2) when
+examining a single file descriptor for readability or writability.
+These features are supported on sufficiently recent versions of
+FreeBSD, NetBSD, OpenBSD, Solaris and Linux; support for other
+systems will be added as evidence becomes available that usable
+implementations exist.
+
+[Incompat 20070201] Some default settings have been adjusted to
+better match contemporary requirements:
+
+- queue_run_delay and minimal_backoff_time were reduced from 1000s
+  to 300s so that deliveries are retried earlier after the first
+  failure.
+
+- ipc_idle was reduced from 100s to 5s, so that tlsmgr and scache
+  clients will more quickly release unused file handles.
+
+[Feature 20061209] Improved worst-case (old and new) queue manager
+performance when deferring or bouncing large amounts of mail. Instead
+of talking to the bounce or defer service synchronously, this work
+is now done in the background by the error or retry service.
+
+[Feature 20061209] Improved worst-case (new) queue manager performance
+when delivering multi-recipient mail. The queue manager now proactively
+reads recipients from the queue file, instead of waiting for the
+slowest deliveries to complete before reading in new recipients.
+This introduces two parameters: default_recipient_refill_limit (how
+many recipient slots to refill at a time) and
+default_recipient_refill_delay (how long to wait between refill
+operations). These two parameters act as defaults for optional
+per-transport settings.
+
+Major changes - delivery status notifications
+---------------------------------------------
+
+[Incompat 20061209] Small changes were made to the default bounce
+message templates, to prevent HTML-aware software from hiding or
+removing the text "<postmaster>", and producing misleading text.
+
+[Incompat 20060806] Postfix no longer announces its name in delivery
+status notifications.  Users believe that Wietse provides a free
+help desk service that solves all their email problems.
+
+Major changes - ETRN support
+----------------------------
+
+[Feature 20061217] More precise queue flushing with the ETRN,
+"postqueue -s site", and "sendmail -qRsite" commands, after
+minimization of race conditions.  New per-queue-file flushing with
+"postqueue -i queueid" and "sendmail -qIqueueid".
+
+Major changes - small office/home office support
+------------------------------------------------
+
+[Incompat 20061217] Postfix no longer requires a domain name. It
+uses "localdomain" as the default Internet domain name when no
+domain is specified via main.cf or via the machine's hostname.
+
+Major changes - SMTP access control
+-----------------------------------
+
+[Incompat 20061214] The check_smtpd_policy client sends TLS certificate
+attributes (client ccert_subject, ccert_issuer) only after successful
+client certificate verification. The reason is that the certification
+verification status itself is not available in the policy request.
+
+[Incompat 20061214] The check_smtpd_policy client sends TLS certificate
+fingerprint information even when the certificate itself was not
+verified.
+
+[Incompat 20061214] The remote SMTP client TLS certificate fingerprint
+can be used for
+access control even when the certificate itself was not verified.
+
+[Incompat 20061209] The Postfix installation procedure no longer
+updates main.cf with "unknown_local_recipient_reject_code = 450".
+Four years after the introduction of mandatory recipient validation,
+this transitional tool is no longer neeed.
+
+Major changes - workarounds
+---------------------------
+
+[Incompat 20070222] As a safety measure, Postfix now by default
+creates mailbox dotlock files on all systems. This prevents problems
+with GNU POP3D which subverts kernel locking by creating a new
+mailbox file and deleting the old one.
+
+[Feature 20061209] Better interoperability with non-conforming SMTP
+servers that reply and disconnect before Postfix has sent the
+complete message content.
+
+[Feature 20061209] Better support for queue file systems on file
+servers with drifting clocks. Clock skew can be a problem, because
+Postfix does not deliver mail until the local clock catches up with
+the queue file's last modification time stamp. On systems with
+usable futimes() or equivalent (Solaris, *BSD, MacOS, but not Linux),
+Postfix now always explicitly sets the queue file last modification
+time stamps while creating a queue file.  On systems without usable
+futimes() (Linux, and ancient versions of Solaris, SunOS and *BSD)
+Postfix keeps using the slower utime() system call to update queue
+file time stamps when the file system clock is off with respect to
+the local system clock, and logs a warning.
+
+[Feature 20061006] Individual CISCO PIX bug workarounds are now
+on/off configurable.  This introduces new parameters: smtp_pix_workarounds
+(default: disable_esmtp, delay_dotcrlf) and smtp_pix_workaround_maps
+(workarounds indexed by server IP address).  The default settings
+are backwards compatible.
index cda6ec84c461ee1f7036414141eac6a582194bb1..6026a80f4a133181bbcdf9a5f53f2f71c6680f4d 100644 (file)
 #            1.2.3   REJECT
 #            1.2.3.4 OK
 # 
-#        Execute the command "postmap /etc/postfix/access" after
+#        Execute  the  command  "postmap /etc/postfix/access" after
 #        editing the file.
 # 
 # BUGS
-#        The  table format does not understand quoting conventions.
+#        The table format does not understand quoting  conventions.
 # 
 # SEE ALSO
 #        postmap(1), Postfix lookup table manager
 #        transport(5), transport:nexthop syntax
 # 
 # README FILES
-#        Use "postconf readme_directory" or  "postconf  html_direc-
+#        Use  "postconf  readme_directory" or "postconf html_direc-
 #        tory" to locate this information.
 #        SMTPD_ACCESS_README, built-in SMTP server access control
 #        DATABASE_README, Postfix lookup table overview
 # 
 # LICENSE
-#        The  Secure  Mailer  license must be distributed with this
+#        The Secure Mailer license must be  distributed  with  this
 #        software.
 # 
 # AUTHOR(S)
index fc0c3ee6ae55e8d74bfc1fc7a7dcafdbd3e57161..720db18ccc890d0d5e5ff66ac7c218b25812f937 100644 (file)
 #               applied to recipient addresses,  the  Postfix  SMTP
 #               server  accepts  mail  for any recipient in domain,
 #               regardless of whether that recipient exists.   This
-#               may turn your mail system into a backscatter source
-#               that returns undeliverable spam to innocent people.
+#               may  turn  your  mail  system  into  a  backscatter
+#               source: Postfix first accepts mail for non-existent
+#               recipients  and  then  tries to return that mail as
+#               "undeliverable" to the often forged sender address.
 # 
 # RESULT ADDRESS REWRITING
 #        The lookup result is subject to address rewriting:
index f5e5a10e9fae2357ff6ebaee9e9df92ca1d81a71..d5ab42a667fb8fd2f4f35d4e0434d4ae6dfce590 100644 (file)
 #        that the ISP supports "+" style address extensions).
 # 
 #        /etc/postfix/main.cf:
-#                smtp_generic_maps = hash:/etc/postfix/generic
+#            smtp_generic_maps = hash:/etc/postfix/generic
 # 
 #        /etc/postfix/generic:
-#                his@localdomain.local   hisaccount@hisisp.example
-#                her@localdomain.local   heraccount@herisp.example
-#                @localdomain.local      hisaccount+local@hisisp.example
+#            his@localdomain.local   hisaccount@hisisp.example
+#            her@localdomain.local   heraccount@herisp.example
+#            @localdomain.local      hisaccount+local@hisisp.example
 # 
 #        Execute  the  command "postmap /etc/postfix/generic" when-
 #        ever the table is changed.  Instead of hash, some  systems
index 4b03b90933f1b64b5086e289fb9cac9fc9db5442..5ae99a5b7422e5c85eed1c5e229af42d569a3acf 100644 (file)
 #        time, even when a message  header  spans  multiple  lines.
 #        Body lines are always examined one line at a time.
 # 
+# COMPATIBILITY
+#        With Postfix version 2.2 and earlier specify "postmap -fq"
+#        to query a table that contains case sensitive patterns. By
+#        default,  regexp: and pcre: patterns are case insensitive.
+# 
 # TABLE FORMAT
-#        This  document  assumes  that header and body_checks rules
-#        are specified in the form of  Postfix  regular  expression
-#        lookup  tables.  Usually  the best performance is obtained
+#        This document assumes that header  and  body_checks  rules
+#        are  specified  in  the form of Postfix regular expression
+#        lookup tables. Usually the best  performance  is  obtained
 #        with pcre (Perl Compatible Regular Expression) tables, but
-#        the  slower  regexp (POSIX regular expressions) support is
-#        more widely available.  Use the command "postconf  -m"  to
-#        find  out what lookup table types your Postfix system sup-
+#        the slower regexp (POSIX regular expressions)  support  is
+#        more  widely  available.  Use the command "postconf -m" to
+#        find out what lookup table types your Postfix system  sup-
 #        ports.
 # 
 #        The general format of Postfix regular expression tables is
-#        given  below.   For  a  discussion  of specific pattern or
-#        flags  syntax,  see  pcre_table(5)   or   regexp_table(5),
+#        given below.  For a  discussion  of  specific  pattern  or
+#        flags   syntax,   see  pcre_table(5)  or  regexp_table(5),
 #        respectively.
 # 
 #        /pattern/flags action
-#               When  pattern matches the input string, execute the
-#               corresponding action. See below for a list of  pos-
+#               When pattern matches the input string, execute  the
+#               corresponding  action. See below for a list of pos-
 #               sible actions.
 # 
 #        !/pattern/flags action
-#               When  pattern does not match the input string, exe-
+#               When pattern does not match the input string,  exe-
 #               cute the corresponding action.
 # 
 #        if /pattern/flags
 # 
 #        endif  Match the input string against the patterns between
-#               if  and endif, if and only if the same input string
+#               if and endif, if and only if the same input  string
 #               also matches pattern. The if..endif can nest.
 # 
-#               Note: do not prepend whitespace to patterns  inside
+#               Note:  do not prepend whitespace to patterns inside
 #               if..endif.
 # 
 #        if !/pattern/flags
 # 
 #        endif  Match the input string against the patterns between
-#               if and endif, if and only if the same input  string
+#               if  and endif, if and only if the same input string
 #               does not match pattern. The if..endif can nest.
 # 
 #        blank lines and comments
-#               Empty  lines and whitespace-only lines are ignored,
-#               as are lines whose first  non-whitespace  character
+#               Empty lines and whitespace-only lines are  ignored,
+#               as  are  lines whose first non-whitespace character
 #               is a `#'.
 # 
 #        multi-line text
-#               A  pattern/action  line  starts with non-whitespace
-#               text. A line that starts with whitespace  continues
+#               A pattern/action line  starts  with  non-whitespace
+#               text.  A line that starts with whitespace continues
 #               a logical line.
 # 
 # TABLE SEARCH ORDER
-#        For  each  line of message input, the patterns are applied
-#        in the order as specified in the table. When a pattern  is
-#        found  that  matches  the  input  line,  the corresponding
-#        action is  executed  and  then  the  next  input  line  is
+#        For each line of message input, the patterns  are  applied
+#        in  the order as specified in the table. When a pattern is
+#        found that  matches  the  input  line,  the  corresponding
+#        action  is  executed  and  then  the  next  input  line is
 #        inspected.
 # 
 # TEXT SUBSTITUTION
-#        Substitution  of  substrings  from  the matched expression
-#        into the action string is possible using the  conventional
-#        Perl  syntax  ($1,  $2,  etc.).   The macros in the result
-#        string may need to be written as  ${n}  or  $(n)  if  they
+#        Substitution of substrings  from  the  matched  expression
+#        into  the action string is possible using the conventional
+#        Perl syntax ($1, $2, etc.).   The  macros  in  the  result
+#        string  may  need  to  be  written as ${n} or $(n) if they
 #        aren't followed by whitespace.
 # 
-#        Note:  since negated patterns (those preceded by !) return
+#        Note: since negated patterns (those preceded by !)  return
 #        a result when the expression does not match, substitutions
 #        are not available for negated patterns.
 # 
 #        case for consistency with other Postfix documentation.
 # 
 #        DISCARD optional text...
-#               Claim successful delivery and silently discard  the
-#               message.   Log the optional text if specified, oth-
+#               Claim  successful delivery and silently discard the
+#               message.  Log the optional text if specified,  oth-
 #               erwise log a generic message.
 # 
-#               Note:  this  action  disables  further  header   or
-#               body_checks  inspection  of the current message and
+#               Note:   this  action  disables  further  header  or
+#               body_checks inspection of the current  message  and
 #               affects all recipients.  To discard only one recip-
 #               ient without discarding the entire message, use the
 #               transport(5) table to direct mail to the discard(8)
 # 
 #               This feature is available in Postfix 2.0 and later.
 # 
-#        DUNNO  Pretend that the input line did not match any  pat-
-#               tern,  and inspect the next input line. This action
+#        DUNNO  Pretend  that the input line did not match any pat-
+#               tern, and inspect the next input line. This  action
 #               can be used to shorten the table search.
 # 
-#               For backwards compatibility reasons,  Postfix  also
-#               accepts  OK but it is (and always has been) treated
+#               For  backwards  compatibility reasons, Postfix also
+#               accepts OK but it is (and always has been)  treated
 #               as DUNNO.
 # 
 #               This feature is available in Postfix 2.1 and later.
 # 
 #        FILTER transport:destination
-#               Write  a  content filter request to the queue file,
-#               and inspect the next input line.   After  the  com-
-#               plete  message  is received it will be sent through
+#               Write a content filter request to the  queue  file,
+#               and  inspect  the  next input line.  After the com-
+#               plete message is received it will be  sent  through
 #               the specified external content filter.  More infor-
-#               mation  about  external  content  filters is in the
+#               mation about external content  filters  is  in  the
 #               Postfix FILTER_README file.
 # 
 #               Note: this action overrides the content_filter set-
 #               ting, and affects all recipients of the message. In
-#               the case that multiple FILTER  actions  fire,  only
+#               the  case  that  multiple FILTER actions fire, only
 #               the last one is executed.
 # 
 #               This feature is available in Postfix 2.0 and later.
 # 
 #        HOLD optional text...
-#               Arrange for the message to be placed  on  the  hold
-#               queue,  and  inspect the next input line.  The mes-
-#               sage remains on hold until someone  either  deletes
-#               it  or  releases it for delivery.  Log the optional
+#               Arrange  for  the  message to be placed on the hold
+#               queue, and inspect the next input line.   The  mes-
+#               sage  remains  on hold until someone either deletes
+#               it or releases it for delivery.  Log  the  optional
 #               text if specified, otherwise log a generic message.
 # 
-#               Mail  that  is  placed on hold can be examined with
-#               the postcat(1) command, and  can  be  destroyed  or
+#               Mail that is placed on hold can  be  examined  with
+#               the  postcat(1)  command,  and  can be destroyed or
 #               released with the postsuper(1) command.
 # 
-#               Note:  use  "postsuper -r" to release mail that was
-#               kept on hold for a significant fraction  of  $maxi-
+#               Note: use "postsuper -r" to release mail  that  was
+#               kept  on  hold for a significant fraction of $maxi-
 #               mal_queue_lifetime  or  $bounce_queue_lifetime,  or
-#               longer. Use "postsuper -H" only for mail that  will
+#               longer.  Use "postsuper -H" only for mail that will
 #               not expire within a few delivery attempts.
 # 
-#               Note:  this  action  affects  all recipients of the
+#               Note: this action affects  all  recipients  of  the
 #               message.
 # 
 #               This feature is available in Postfix 2.0 and later.
 #               the next input line.
 # 
 #        PREPEND text...
-#               Prepend one  line  with  the  specified  text,  and
+#               Prepend  one  line  with  the  specified  text, and
 #               inspect the next input line.
 # 
 #               Notes:
 # 
-#               o      The  prepended  text is output on a separate
+#               o      The prepended text is output on  a  separate
 #                      line,  immediately  before  the  input  that
 #                      triggered the PREPEND action.
 # 
 #               o      The prepended text is not considered part of
-#                      the input  stream:  it  is  not  subject  to
+#                      the  input  stream:  it  is  not  subject to
 #                      header/body checks or address rewriting, and
 #                      it does not affect the way that Postfix adds
 #                      missing message headers.
 # 
 #               o      When prepending text before a message header
-#                      line, the prepended text must begin  with  a
+#                      line,  the  prepended text must begin with a
 #                      valid message header label.
 # 
 #               o      This action cannot be used to prepend multi-
 #               This feature is available in Postfix 2.1 and later.
 # 
 #        REDIRECT user@domain
-#               Write  a  message  redirection request to the queue
-#               file, and inspect the next input  line.  After  the
+#               Write a message redirection request  to  the  queue
+#               file,  and  inspect  the next input line. After the
 #               message is queued, it will be sent to the specified
 #               address instead of the intended recipient(s).
 # 
-#               Note: this action overrides the FILTER action,  and
-#               affects  all recipients of the message. If multiple
-#               REDIRECT actions fire, only the last  one  is  exe-
+#               Note:  this action overrides the FILTER action, and
+#               affects all recipients of the message. If  multiple
+#               REDIRECT  actions  fire,  only the last one is exe-
 #               cuted.
 # 
 #               This feature is available in Postfix 2.1 and later.
 # 
 #        REPLACE text...
-#               Replace the current line with the  specified  text,
+#               Replace  the  current line with the specified text,
 #               and inspect the next input line.
 # 
 #               This feature is available in Postfix 2.2 and later.
-#               The description below applies to Postfix 2.2.2  and
+#               The  description below applies to Postfix 2.2.2 and
 #               later.
 # 
 #               Notes:
 # 
-#               o      When  replacing  a  message header line, the
-#                      replacement text must  begin  with  a  valid
+#               o      When replacing a message  header  line,  the
+#                      replacement  text  must  begin  with a valid
 #                      header label.
 # 
-#               o      The  replaced text remains part of the input
-#                      stream. Unlike the result from  the  PREPEND
-#                      action,  a  replaced  message  header may be
-#                      subject to address rewriting and may  affect
-#                      the  way  that  Postfix adds missing message
+#               o      The replaced text remains part of the  input
+#                      stream.  Unlike  the result from the PREPEND
+#                      action, a replaced  message  header  may  be
+#                      subject  to address rewriting and may affect
+#                      the way that Postfix  adds  missing  message
 #                      headers.
 # 
 #        REJECT optional text...
-#               Reject the  entire  message.  Reply  with  optional
+#               Reject  the  entire  message.  Reply  with optional
 #               text... when the optional text is specified, other-
 #               wise reply with a generic error message.
 # 
-#               Note:  this  action  disables  further  header   or
-#               body_checks  inspection  of the current message and
+#               Note:   this  action  disables  further  header  or
+#               body_checks inspection of the current  message  and
 #               affects all recipients.
 # 
 #               Postfix version 2.3 and later support enhanced sta-
 #               enhanced status code of "5.7.1".
 # 
 #        WARN optional text...
-#               Log  a  warning with the optional text... (or log a
-#               generic message), and inspect the next input  line.
+#               Log a warning with the optional text... (or  log  a
+#               generic  message), and inspect the next input line.
 #               This action is useful for debugging and for testing
 #               a pattern before applying more drastic actions.
 # 
 # BUGS
-#        Many people overlook the main limitations  of  header  and
+#        Many  people  overlook  the main limitations of header and
 #        body_checks rules.
 # 
-#        o      These  rules  operate on one logical message header
+#        o      These rules operate on one logical  message  header
 #               or one body line at a time. A decision made for one
 #               line is not carried over to the next line.
 # 
-#        o      If  text  in the message body is encoded (RFC 2045)
-#               then the rules have to specified  for  the  encoded
+#        o      If text in the message body is encoded  (RFC  2045)
+#               then the rules need to be specified for the encoded
 #               form.
 # 
-#        o      Likewise,  when  message  headers  are encoded (RFC
-#               2047) then the rules need to be specified  for  the
+#        o      Likewise, when message  headers  are  encoded  (RFC
+#               2047)  then  the rules need to be specified for the
 #               encoded form.
 # 
-#        Message  headers added by the cleanup(8) daemon itself are
+#        Message headers added by the cleanup(8) daemon itself  are
 #        excluded from inspection. Examples of such message headers
 #        are From:, To:, Message-ID:, Date:.
 # 
-#        Message  headers  deleted by the cleanup(8) daemon will be
+#        Message headers deleted by the cleanup(8) daemon  will  be
 #        examined before they are deleted. Examples are: Bcc:, Con-
 #        tent-Length:, Return-Path:.
 # 
 #        body_checks
 #               Lookup tables with content filter rules for message
 #               body lines.  These filters see one physical line at
-#               a  time,  in  chunks  of at most $line_length_limit
+#               a time, in chunks  of  at  most  $line_length_limit
 #               bytes.
 # 
 #        body_checks_size_limit
-#               The amount of  content  per  message  body  segment
+#               The  amount  of  content  per  message body segment
 #               (attachment) that is subjected to $body_checks fil-
 #               tering.
 # 
 # 
 #        nested_header_checks (default: $header_checks)
 #               Lookup tables with content filter rules for message
-#               header  lines:  respectively,  these are applied to
-#               the initial message  headers  (not  including  MIME
-#               headers),  to the MIME headers anywhere in the mes-
-#               sage, and to the initial headers of  attached  mes-
+#               header lines: respectively, these  are  applied  to
+#               the  initial  message  headers  (not including MIME
+#               headers), to the MIME headers anywhere in the  mes-
+#               sage,  and  to the initial headers of attached mes-
 #               sages.
 # 
-#               Note:  these filters see one logical message header
-#               at a time, even when a message header spans  multi-
-#               ple  lines.  Message  headers  that are longer than
+#               Note: these filters see one logical message  header
+#               at  a time, even when a message header spans multi-
+#               ple lines. Message headers  that  are  longer  than
 #               $header_size_limit characters are truncated.
 # 
 #        disable_mime_input_processing
-#               While receiving mail, give no special treatment  to
-#               MIME  related  message  headers; all text after the
+#               While  receiving mail, give no special treatment to
+#               MIME related message headers; all  text  after  the
 #               initial message headers is considered to be part of
-#               the  message body. This means that header_checks is
-#               applied to all the  initial  message  headers,  and
+#               the message body. This means that header_checks  is
+#               applied  to  all  the  initial message headers, and
 #               that body_checks is applied to the remainder of the
 #               message.
 # 
-#               Note: when used in this  manner,  body_checks  will
-#               process  a  multi-line message header one line at a
+#               Note:  when  used  in this manner, body_checks will
+#               process a multi-line message header one line  at  a
 #               time.
 # 
 # EXAMPLES
-#        Header pattern to block attachments  with  bad  file  name
+#        Header  pattern  to  block  attachments with bad file name
 #        extensions.
 # 
 #        /etc/postfix/main.cf:
 #        RFC 2047, message header encoding for non-ASCII text
 # 
 # README FILES
-#        Use "postconf readme_directory" or  "postconf  html_direc-
+#        Use  "postconf  readme_directory" or "postconf html_direc-
 #        tory" to locate this information.
 #        DATABASE_README, Postfix lookup table overview
 #        CONTENT_INSPECTION_README, Postfix content inspection overview
 #        BACKSCATTER_README, blocking returned forged mail
 # 
 # LICENSE
-#        The  Secure  Mailer  license must be distributed with this
+#        The Secure Mailer license must be  distributed  with  this
 #        software.
 # 
 # AUTHOR(S)
index 5c602103d7cb3aa7d34e67bb7849e406116e9814..3fcab4cd4e52c819294e760060d1219a50ba4ec8 100644 (file)
@@ -41,7 +41,9 @@
 #        The input format for the postmap(1) command is as follows:
 # 
 #        o      An entry has one of the following form:
+# 
 #                    pattern      new_location
+# 
 #               Where  new_location  specifies  contact information
 #               such as an  email  address,  or  perhaps  a  street
 #               address or telephone number.
index 2a6fa379554084143d3a1d7a0431838ff0c731a4..8e4db2b16ccbcef6e9d4274919187418b2023035 100644 (file)
 # DESCRIPTION
 #        The  optional  transport(5) table specifies a mapping from
 #        email addresses to message delivery transports  and  next-
-#        hop hosts. The table is searched by the trivial-rewrite(8)
-#        daemon.
+#        hop  destinations.   Message  delivery  transports such as
+#        local or smtp are defined in the master.cf file, and next-
+#        hop  destinations are typically hosts or domain names. The
+#        table is searched by the trivial-rewrite(8) daemon.
 # 
 #        This  mapping  overrides  the  default   transport:nexthop
 #        selection that is built into Postfix:
 # 
 #             my.domain    :
 #             .my.domain   :
-#             *         smtp:outbound-relay.my.domain
+#             *            smtp:outbound-relay.my.domain
 # 
 #        In  order  to send mail for example.com and its subdomains
 #        via the uucp transport to the UUCP host named example:
 # 
 #        The error mailer can be used to bounce mail:
 # 
-#             .example.com     error:mail for *.example.com is  not
-#        deliverable
+#             .example.com     error:mail for *.example.com is not deliverable
 # 
-#        This  causes  all mail for user@anything.example.com to be
+#        This causes all mail for user@anything.example.com  to  be
 #        bounced.
 # 
 # REGULAR EXPRESSION TABLES
-#        This section describes how the table lookups  change  when
+#        This  section  describes how the table lookups change when
 #        the table is given in the form of regular expressions. For
-#        a description of regular expression lookup  table  syntax,
+#        a  description  of regular expression lookup table syntax,
 #        see regexp_table(5) or pcre_table(5).
 # 
-#        Each  pattern  is  a regular expression that is applied to
-#        the   entire    address    being    looked    up.    Thus,
-#        some.domain.hierarchy  is  not  looked  up  via its parent
-#        domains, nor is user+foo@domain looked up as  user@domain.
+#        Each pattern is a regular expression that  is  applied  to
+#        the    entire    address    being    looked    up.   Thus,
+#        some.domain.hierarchy is not  looked  up  via  its  parent
+#        domains,  nor is user+foo@domain looked up as user@domain.
 # 
-#        Patterns  are applied in the order as specified in the ta-
-#        ble, until a pattern is  found  that  matches  the  search
+#        Patterns are applied in the order as specified in the  ta-
+#        ble,  until  a  pattern  is  found that matches the search
 #        string.
 # 
-#        Results  are  the  same as with indexed file lookups, with
-#        the additional feature that parenthesized substrings  from
-#        the pattern can be interpolated as $1, $2 and so on.
+#        The trivial-rewrite(8) server disallows regular expression
+#        substitution  of  $1  etc.  in  regular  expression lookup
+#        tables, because that could open a security  hole  (Postfix
+#        version 2.3 and later).
 # 
 # TCP-BASED TABLES
 #        This  section  describes how the table lookups change when
index 6e4ca70d540509e7e495202946f9423e7103072e..3be6ab9859a5077edef2bc8be21bb8fae4a954c6 100644 (file)
 #               Postfix SMTP server accepts mail for any  recipient
 #               in  domain,  regardless  of  whether that recipient
 #               exists.  This may turn  your  mail  system  into  a
-#               backscatter  source that returns undeliverable spam
-#               to innocent people.
+#               backscatter  source: Postfix first accepts mail for
+#               non-existent recipients and then  tries  to  return
+#               that  mail  as  "undeliverable" to the often forged
+#               sender address.
 # 
 # RESULT ADDRESS REWRITING
 #        The lookup result is subject to address rewriting:
 #        /etc/postfix/main.cf:
 #            virtual_alias_maps = hash:/etc/postfix/virtual
 # 
-#            Note:  some systems use dbm databases instead of hash.
-#            See the output from "postconf -m" for available  data-
-#            base types.
+#        Note: some systems use dbm databases instead of hash.  See
+#        the output  from  "postconf  -m"  for  available  database
+#        types.
 # 
 #        /etc/postfix/virtual:
-#            virtual-alias.domain anything (right-hand content does not matter)
-#            postmaster@virtual-alias.domain      postmaster
-#            user1@virtual-alias.domain   address1
-#            user2@virtual-alias.domain   address2, address3
+#            virtual-alias.domain     anything (right-hand content does not matter)
+#            postmaster@virtual-alias.domain  postmaster
+#            user1@virtual-alias.domain       address1
+#            user2@virtual-alias.domain       address2, address3
 # 
 #        The  virtual-alias.domain anything entry is required for a
 #        virtual alias domain. Without this entry, mail is rejected
index 2c757bffc2bd9c4224353c3457be494f3a459306..2ef613f5856dca4eedec6ed357b2ae5a4834632e 100644 (file)
@@ -21,7 +21,10 @@ Backscatter Howto</h1>
 <h2>Overview </h2>
 
 This document describes features that require Postfix version 2.0
-or later.
+or later.  The examples use Perl Compatible Regular Expressions
+(Postfix <a href="pcre_table.5.html">pcre</a>: tables), but also provide a translation to POSIX
+regular expressions (Postfix <a href="regexp_table.5.html">regexp</a>: tables). PCRE is preferred
+primarily because the implementation is often faster.</p>
 
 <p> Topics covered in this document: </p>
 
@@ -174,8 +177,8 @@ patterns like this: </p>
 <blockquote>
 <pre>
 /etc/postfix/<a href="postconf.5.html">main.cf</a>:
-    <a href="postconf.5.html#header_checks">header_checks</a> = <a href="regexp_table.5.html">regexp</a>:/etc/postfix/header_checks
-    <a href="postconf.5.html#body_checks">body_checks</a> = <a href="regexp_table.5.html">regexp</a>:/etc/postfix/body_checks
+    <a href="postconf.5.html#header_checks">header_checks</a> = <a href="pcre_table.5.html">pcre</a>:/etc/postfix/header_checks
+    <a href="postconf.5.html#body_checks">body_checks</a> = <a href="pcre_table.5.html">pcre</a>:/etc/postfix/body_checks
 
 /etc/postfix/header_checks:
     if /^Received:/
@@ -183,7 +186,7 @@ patterns like this: </p>
         reject forged client name in Received: header: $1
     /^Received: +from +[^ ]+ +\(([^ ]+ +[he]+lo=|[he]+lo +)(porcupine\.org)\)/
         reject forged client name in Received: header: $2
-    /^Received:.* +by +(porcupine\.org)[[:&gt;:]]/
+    /^Received:.* +by +(porcupine\.org)\b/
         reject forged mail server name in Received: header: $1
     endif
     /^Message-ID:.* &lt;!&amp;!/ DUNNO
@@ -196,7 +199,7 @@ patterns like this: </p>
         reject forged client name in Received: header: $1
     /^[&gt; ]*Received: +from +[^ ]+ +\(([^ ]+ +[he]+lo=|[he]+lo +)(porcupine\.org)\)/
         reject forged client name in Received: header: $2
-    /^[&gt; ]*Received:.* +by +(porcupine\.org)[[:&gt;:]]/
+    /^[&gt; ]*Received:.* +by +(porcupine\.org)\b/
         reject forged mail server name in Received: header: $1
     endif
     /^[&gt; ]*Message-ID:.* &lt;!&amp;!/ DUNNO
@@ -209,6 +212,9 @@ patterns like this: </p>
 
 <ul>
 
+<li> <p> The example uses <a href="pcre_table.5.html">pcre</a>: tables mainly for speed; with minor
+modifications, you can use <a href="regexp_table.5.html">regexp</a>: tables as explained below. </p>
+
 <li> <p> The example is simplified for educational purposes.  In
 reality my patterns list multiple domain names, as
 "<tt>(domain|domain|...)</tt>".  </p>
@@ -220,9 +226,10 @@ the "<tt>\</tt>", the "<tt>.</tt>" would match any character. </p>
 and "<tt>)</tt>" literally. Without the "<tt>\</tt>", the "<tt>(</tt>"
 and "<tt>)</tt>" would be grouping operators.  </p>
 
-<li> <p> The "<tt>[[:&gt;:]]</tt>" matches the end of a word. On
-some systems you should specify "<tt>\&gt;</tt>" instead. For details
-see your system documentation. </p>
+<li> <p> The "<tt>\b</tt>" is used here to match the end of a word.
+If you use <a href="regexp_table.5.html">regexp</a>: tables, specify "<tt>[[:&gt;:]]</tt>" (on some
+systems you should specify "<tt>\&gt;</tt>" instead; for details
+see your system documentation).
 
 <li> <p> The "if /pattern/" and "endif" eliminate unnecessary
 matching attempts. DO NOT indent lines starting with /pattern/
@@ -311,15 +318,15 @@ and is very easy to stop.
 <blockquote>
 <pre>
 /etc/postfix/<a href="postconf.5.html">main.cf</a>:
-    <a href="postconf.5.html#header_checks">header_checks</a> = <a href="regexp_table.5.html">regexp</a>:/etc/postfix/header_checks
-    <a href="postconf.5.html#body_checks">body_checks</a> = <a href="regexp_table.5.html">regexp</a>:/etc/postfix/body_checks
+    <a href="postconf.5.html#header_checks">header_checks</a> = <a href="pcre_table.5.html">pcre</a>:/etc/postfix/header_checks
+    <a href="postconf.5.html#body_checks">body_checks</a> = <a href="pcre_table.5.html">pcre</a>:/etc/postfix/body_checks
 
 /etc/postfix/header_checks:
-    /^(From|Return-Path):.*[[:&lt;:]](user@domain\.tld)[[:&gt;:]]
+    /^(From|Return-Path):.*\b(user@domain\.tld)\b
         reject forged sender address in $1: header: $2
 
 /etc/postfix/body_checks:
-    /^[&gt; ]*(From|Return-Path):.*[[:&lt;:]](user@domain\.tld)[[:&gt;:]]
+    /^[&gt; ]*(From|Return-Path):.*\b(user@domain\.tld)\b
         reject forged sender address in $1: header: $2
 </pre>
 </blockquote>
@@ -328,14 +335,18 @@ and is very easy to stop.
 
 <ul>
 
+<li> <p> The example uses <a href="pcre_table.5.html">pcre</a>: tables mainly for speed; with minor
+modifications, you can use <a href="regexp_table.5.html">regexp</a>: tables as explained below. </p>
+
 <li> <p> The example is simplified for educational purposes.  In
 reality, my patterns list multiple email addresses as
 "<tt>(user1@domain1\.tld|user2@domain2\.tld)</tt>".  </p>
 
-<li> <p> The "<tt>[[:&lt;:]]</tt>" and "<tt>[[:&gt;:]]</tt>" match
-the beginning and end of a word, respectively. On some systems you
-should specify "<tt>\&lt;</tt>" and "<tt>\&gt;</tt>" instead. For
-details see your system documentation. </p>
+<li> <p> The two "<tt>\b</tt>" as used in "<tt>\b(user@domain\.tld)\b</tt>"
+match the beginning and end of a word, respectively.  If you use
+<a href="regexp_table.5.html">regexp</a>: tables, specify "<tt>[[:&lt;:]]</tt> and <tt>[[:&gt;:]]</tt>"
+(on some systems you should specify "<tt>\&lt;</tt> and <tt>\&gt;</tt>"
+instead; for details see your system documentation).  </p>
 
 <li> <p> The "<tt>\.</tt>" matches "<tt>.</tt>" literally. Without
 the "<tt>\</tt>", the "<tt>.</tt>" would match any character. </p>
index 49da3ddc182ddb4746fd445069b7bf7f96538c25..ee09a25c24b88f1189bdc23fe918a36b7e4ba42f 100644 (file)
@@ -149,6 +149,7 @@ Linux Debian 1.3.1, 2.x, 3.x <br>
 Linux RedHat 3.x (January 2004) - 9.x <br>
 Linux Slackware 3.x, 4.x, 7.x <br>
 Linux SuSE 5.x, 6.x, 7.x <br>
+Linux Ubuntu 4.10..7.04<br>
 Mac OS X <br>
 NEXTSTEP 3.x <br>
 NetBSD 1.x <br>
index 76816476d01a352b6d3463d14125cde35c5e67d0..226f62e2ebdc00b72553ddece23dcf8319b6728a 100644 (file)
@@ -708,9 +708,6 @@ text below: </p>
 
 <li> <p> This was tested with sid-milter-0.2.10 and sid-milter-0.2.14. </p>
 
-<li> <p> This fixes only the ugly message header, but not the WARNING
-message.  Fortunately, sid-milter logs that message only once. </p>
-
 </ul>
 
 <p> To fix the ugly message header with other Milter applications,
index 2c7f23538069ac284771bb8c4a310c8c70276c5c..b24fc28414ab711c5a580a5404df79ca48674eda 100644 (file)
@@ -460,12 +460,13 @@ bgcolor="#f0f0ff"> <br> <a href="smtpd.8.html">smtpd(8)</a><br><br> </td> <td> <
 
 </table>
 
-<li> <p> The <a href="bounce.8.html">bounce(8)</a>, <a href="defer.8.html">defer(8)</a> and <a href="trace.8.html">trace(8)</a> servers each maintain
-their own queue directory trees with per-message logfiles. This
-information is used to send delivery or non-delivery notifications
-to the sender. </p>
+<li> <p> The <a href="bounce.8.html">bounce(8)</a>, <a href="defer.8.html">defer(8)</a> and <a href="trace.8.html">trace(8)</a> services each maintain
+their own queue directory trees with per-message logfiles. Postfix
+uses this information when sending "failed", "delayed" or "success"
+delivery status notifications to the sender. </p>
 
-<p> The <a href="trace.8.html">trace(8)</a> service implements support for the Postfix "sendmail
+<p> The <a href="trace.8.html">trace(8)</a> service also implements support for the Postfix
+"sendmail
 -bv" and "sendmail -v" commands which produce reports about how
 Postfix delivers mail, and is available with Postfix version 2.1
 and later. See <a href="DEBUG_README.html#trace_mail"> DEBUG_README
index 8cde2263358f159031df8a2dcbf4184467e6d7f1..c90f9c54572e3aafc30a8a530547b2a78fcb8171 100644 (file)
@@ -388,11 +388,11 @@ ACCESS(5)                                                            ACCESS(5)
            1.2.3   REJECT
            1.2.3.4 OK
 
-       Execute the command "<b>postmap /etc/postfix/access</b>" after
+       Execute  the  command  "<b>postmap /etc/postfix/access</b>" after
        editing the file.
 
 <b>BUGS</b>
-       The  table format does not understand quoting conventions.
+       The table format does not understand quoting  conventions.
 
 <b>SEE ALSO</b>
        <a href="postmap.1.html">postmap(1)</a>, Postfix lookup table manager
@@ -405,7 +405,7 @@ ACCESS(5)                                                            ACCESS(5)
        <a href="DATABASE_README.html">DATABASE_README</a>, Postfix lookup table overview
 
 <b>LICENSE</b>
-       The  Secure  Mailer  license must be distributed with this
+       The Secure Mailer license must be  distributed  with  this
        software.
 
 <b>AUTHOR(S)</b>
index 261a91cc34e7a616b66b10e14a0caf071cd826c5..0f872ac05ae863c662fba664125edf4177da37f3 100644 (file)
@@ -52,7 +52,7 @@ BOUNCE(5)                                                            BOUNCE(5)
        something like:
 
        /etc/postfix/<a href="postconf.5.html">main.cf</a>:
-               <a href="postconf.5.html#bounce_template_file">bounce_template_file</a> = /etc/postfix/bounce.cf
+           <a href="postconf.5.html#bounce_template_file">bounce_template_file</a> = /etc/postfix/bounce.cf
 
 <b>TEMPLATE FILE FORMAT</b>
        The template file can specify templates for  failed  mail,
@@ -86,7 +86,7 @@ BOUNCE(5)                                                            BOUNCE(5)
            If you do so, please include this problem report. You can
            delete your own text from the attached returned message.
 
-                                          The mail system
+                              The mail system
            EOF
 
        The usage and specification of bounce templates is subject
index c43a1df354c9fc82aa26864f4066cffee1a266f6..c97f910ace308acabdb466a2d23ebf399d4d05b1 100644 (file)
@@ -117,8 +117,10 @@ CANONICAL(5)                                                      CANONICAL(5)
               applied to recipient addresses,  the  Postfix  SMTP
               server  accepts  mail  for any recipient in <i>domain</i>,
               regardless of whether that recipient exists.   This
-              may turn your mail system into a backscatter source
-              that returns undeliverable spam to innocent people.
+              may  turn  your  mail  system  into  a  backscatter
+              source: Postfix first accepts mail for non-existent
+              recipients  and  then  tries to return that mail as
+              "undeliverable" to the often forged sender address.
 
 <b>RESULT ADDRESS REWRITING</b>
        The lookup result is subject to address rewriting:
index 9b0ffc2e4be3857b9e83f5d585a6c2b3c224079c..debee93acae3a54d09d78ffd66eae86fd79c06c7 100644 (file)
@@ -161,12 +161,12 @@ GENERIC(5)                                                          GENERIC(5)
        that the ISP supports "+" style address extensions).
 
        /etc/postfix/<a href="postconf.5.html">main.cf</a>:
-               <a href="postconf.5.html#smtp_generic_maps">smtp_generic_maps</a> = hash:/etc/postfix/generic
+           <a href="postconf.5.html#smtp_generic_maps">smtp_generic_maps</a> = hash:/etc/postfix/generic
 
        /etc/postfix/generic:
-               his@localdomain.local   hisaccount@hisisp.example
-               her@localdomain.local   heraccount@herisp.example
-               @localdomain.local      hisaccount+local@hisisp.example
+           his@localdomain.local   hisaccount@hisisp.example
+           her@localdomain.local   heraccount@herisp.example
+           @localdomain.local      hisaccount+local@hisisp.example
 
        Execute  the  command "<b>postmap /etc/postfix/generic</b>" when-
        ever the table is changed.  Instead of <b>hash</b>, some  systems
index c47f19bdc238b4618362c74ad682ea0e00f28489..18b17040e5254a1f89092a7a32e04b020b8ed72e 100644 (file)
@@ -72,70 +72,75 @@ HEADER_CHECKS(5)                                              HEADER_CHECKS(5)
        time, even when a message  header  spans  multiple  lines.
        Body lines are always examined one line at a time.
 
+<b>COMPATIBILITY</b>
+       With Postfix version 2.2 and earlier specify "<b>postmap -fq</b>"
+       to query a table that contains case sensitive patterns. By
+       default,  <a href="regexp_table.5.html">regexp</a>: and <a href="pcre_table.5.html">pcre</a>: patterns are case insensitive.
+
 <b>TABLE FORMAT</b>
-       This  document  assumes  that header and <a href="postconf.5.html#body_checks">body_checks</a> rules
-       are specified in the form of  Postfix  regular  expression
-       lookup  tables.  Usually  the best performance is obtained
+       This document assumes that header  and  <a href="postconf.5.html#body_checks">body_checks</a>  rules
+       are  specified  in  the form of Postfix regular expression
+       lookup tables. Usually the best  performance  is  obtained
        with <b>pcre</b> (Perl Compatible Regular Expression) tables, but
-       the  slower  <b>regexp</b> (POSIX regular expressions) support is
-       more widely available.  Use the command "<b>postconf  -m</b>"  to
-       find  out what lookup table types your Postfix system sup-
+       the slower <b>regexp</b> (POSIX regular expressions)  support  is
+       more  widely  available.  Use the command "<b>postconf -m</b>" to
+       find out what lookup table types your Postfix system  sup-
        ports.
 
        The general format of Postfix regular expression tables is
-       given  below.   For  a  discussion  of specific pattern or
-       flags  syntax,  see  <a href="pcre_table.5.html"><b>pcre_table</b>(5)</a>   or   <a href="regexp_table.5.html"><b>regexp_table</b>(5)</a>,
+       given below.  For a  discussion  of  specific  pattern  or
+       flags   syntax,   see  <a href="pcre_table.5.html"><b>pcre_table</b>(5)</a>  or  <a href="regexp_table.5.html"><b>regexp_table</b>(5)</a>,
        respectively.
 
        <b>/</b><i>pattern</i><b>/</b><i>flags action</i>
-              When  <i>pattern</i> matches the input string, execute the
-              corresponding <i>action</i>. See below for a list of  pos-
+              When <i>pattern</i> matches the input string, execute  the
+              corresponding  <i>action</i>. See below for a list of pos-
               sible actions.
 
        <b>!/</b><i>pattern</i><b>/</b><i>flags action</i>
-              When  <i>pattern</i> does <b>not</b> match the input string, exe-
+              When <i>pattern</i> does <b>not</b> match the input string,  exe-
               cute the corresponding <i>action</i>.
 
        <b>if /</b><i>pattern</i><b>/</b><i>flags</i>
 
        <b>endif</b>  Match the input string against the patterns between
-              <b>if</b>  and <b>endif</b>, if and only if the same input string
+              <b>if</b> and <b>endif</b>, if and only if the same input  string
               also matches <i>pattern</i>. The <b>if</b>..<b>endif</b> can nest.
 
-              Note: do not prepend whitespace to patterns  inside
+              Note:  do not prepend whitespace to patterns inside
               <b>if</b>..<b>endif</b>.
 
        <b>if !/</b><i>pattern</i><b>/</b><i>flags</i>
 
        <b>endif</b>  Match the input string against the patterns between
-              <b>if</b> and <b>endif</b>, if and only if the same input  string
+              <b>if</b>  and <b>endif</b>, if and only if the same input string
               does <b>not</b> match <i>pattern</i>. The <b>if</b>..<b>endif</b> can nest.
 
        blank lines and comments
-              Empty  lines and whitespace-only lines are ignored,
-              as are lines whose first  non-whitespace  character
+              Empty lines and whitespace-only lines are  ignored,
+              as  are  lines whose first non-whitespace character
               is a `#'.
 
        multi-line text
-              A  pattern/action  line  starts with non-whitespace
-              text. A line that starts with whitespace  continues
+              A pattern/action line  starts  with  non-whitespace
+              text.  A line that starts with whitespace continues
               a logical line.
 
 <b>TABLE SEARCH ORDER</b>
-       For  each  line of message input, the patterns are applied
-       in the order as specified in the table. When a pattern  is
-       found  that  matches  the  input  line,  the corresponding
-       action is  executed  and  then  the  next  input  line  is
+       For each line of message input, the patterns  are  applied
+       in  the order as specified in the table. When a pattern is
+       found that  matches  the  input  line,  the  corresponding
+       action  is  executed  and  then  the  next  input  line is
        inspected.
 
 <b>TEXT SUBSTITUTION</b>
-       Substitution  of  substrings  from  the matched expression
-       into the <i>action</i> string is possible using the  conventional
-       Perl  syntax  (<b>$1</b>,  <b>$2</b>,  etc.).   The macros in the result
-       string may need to be written as  <b>${n}</b>  or  <b>$(n)</b>  if  they
+       Substitution of substrings  from  the  matched  expression
+       into  the <i>action</i> string is possible using the conventional
+       Perl syntax (<b>$1</b>, <b>$2</b>, etc.).   The  macros  in  the  result
+       string  may  need  to  be  written as <b>${n}</b> or <b>$(n)</b> if they
        aren't followed by whitespace.
 
-       Note:  since negated patterns (those preceded by <b>!</b>) return
+       Note: since negated patterns (those preceded by <b>!</b>)  return
        a result when the expression does not match, substitutions
        are not available for negated patterns.
 
@@ -144,12 +149,12 @@ HEADER_CHECKS(5)                                              HEADER_CHECKS(5)
        case for consistency with other Postfix documentation.
 
        <b>DISCARD</b> <i>optional text...</i>
-              Claim successful delivery and silently discard  the
-              message.   Log the optional text if specified, oth-
+              Claim  successful delivery and silently discard the
+              message.  Log the optional text if specified,  oth-
               erwise log a generic message.
 
-              Note:  this  action  disables  further  header   or
-              <a href="postconf.5.html#body_checks">body_checks</a>  inspection  of the current message and
+              Note:   this  action  disables  further  header  or
+              <a href="postconf.5.html#body_checks">body_checks</a> inspection of the current  message  and
               affects all recipients.  To discard only one recip-
               ient without discarding the entire message, use the
               <a href="transport.5.html">transport(5)</a> table to direct mail to the <a href="discard.8.html">discard(8)</a>
@@ -157,49 +162,49 @@ HEADER_CHECKS(5)                                              HEADER_CHECKS(5)
 
               This feature is available in Postfix 2.0 and later.
 
-       <b>DUNNO</b>  Pretend that the input line did not match any  pat-
-              tern,  and inspect the next input line. This action
+       <b>DUNNO</b>  Pretend  that the input line did not match any pat-
+              tern, and inspect the next input line. This  action
               can be used to shorten the table search.
 
-              For backwards compatibility reasons,  Postfix  also
-              accepts  <b>OK</b> but it is (and always has been) treated
+              For  backwards  compatibility reasons, Postfix also
+              accepts <b>OK</b> but it is (and always has been)  treated
               as <b>DUNNO</b>.
 
               This feature is available in Postfix 2.1 and later.
 
        <b>FILTER</b> <i>transport:destination</i>
-              Write  a  content filter request to the queue file,
-              and inspect the next input line.   After  the  com-
-              plete  message  is received it will be sent through
+              Write a content filter request to the  queue  file,
+              and  inspect  the  next input line.  After the com-
+              plete message is received it will be  sent  through
               the specified external content filter.  More infor-
-              mation  about  external  content  filters is in the
+              mation about external content  filters  is  in  the
               Postfix <a href="FILTER_README.html">FILTER_README</a> file.
 
               Note: this action overrides the <b><a href="postconf.5.html#content_filter">content_filter</a></b> set-
               ting, and affects all recipients of the message. In
-              the case that multiple <b>FILTER</b>  actions  fire,  only
+              the  case  that  multiple <b>FILTER</b> actions fire, only
               the last one is executed.
 
               This feature is available in Postfix 2.0 and later.
 
        <b>HOLD</b> <i>optional text...</i>
-              Arrange for the message to be placed  on  the  <b>hold</b>
-              queue,  and  inspect the next input line.  The mes-
-              sage remains on <b>hold</b> until someone  either  deletes
-              it  or  releases it for delivery.  Log the optional
+              Arrange  for  the  message to be placed on the <b>hold</b>
+              queue, and inspect the next input line.   The  mes-
+              sage  remains  on <b>hold</b> until someone either deletes
+              it or releases it for delivery.  Log  the  optional
               text if specified, otherwise log a generic message.
 
-              Mail  that  is  placed on hold can be examined with
-              the <a href="postcat.1.html"><b>postcat</b>(1)</a> command, and  can  be  destroyed  or
+              Mail that is placed on hold can  be  examined  with
+              the  <a href="postcat.1.html"><b>postcat</b>(1)</a>  command,  and  can be destroyed or
               released with the <a href="postsuper.1.html"><b>postsuper</b>(1)</a> command.
 
-              Note:  use  "<b>postsuper -r</b>" to release mail that was
-              kept on hold for a significant fraction  of  <b>$<a href="postconf.5.html#maximal_queue_lifetime">maxi</a>-</b>
+              Note: use "<b>postsuper -r</b>" to release mail  that  was
+              kept  on  hold for a significant fraction of <b>$<a href="postconf.5.html#maximal_queue_lifetime">maxi</a>-</b>
               <b><a href="postconf.5.html#maximal_queue_lifetime">mal_queue_lifetime</a></b>  or  <b>$<a href="postconf.5.html#bounce_queue_lifetime">bounce_queue_lifetime</a></b>,  or
-              longer. Use "<b>postsuper -H</b>" only for mail that  will
+              longer.  Use "<b>postsuper -H</b>" only for mail that will
               not expire within a few delivery attempts.
 
-              Note:  this  action  affects  all recipients of the
+              Note: this action affects  all  recipients  of  the
               message.
 
               This feature is available in Postfix 2.0 and later.
@@ -208,23 +213,23 @@ HEADER_CHECKS(5)                                              HEADER_CHECKS(5)
               the next input line.
 
        <b>PREPEND</b> <i>text...</i>
-              Prepend one  line  with  the  specified  text,  and
+              Prepend  one  line  with  the  specified  text, and
               inspect the next input line.
 
               Notes:
 
-              <b>o</b>      The  prepended  text is output on a separate
+              <b>o</b>      The prepended text is output on  a  separate
                      line,  immediately  before  the  input  that
                      triggered the <b>PREPEND</b> action.
 
               <b>o</b>      The prepended text is not considered part of
-                     the input  stream:  it  is  not  subject  to
+                     the  input  stream:  it  is  not  subject to
                      header/body checks or address rewriting, and
                      it does not affect the way that Postfix adds
                      missing message headers.
 
               <b>o</b>      When prepending text before a message header
-                     line, the prepended text must begin  with  a
+                     line,  the  prepended text must begin with a
                      valid message header label.
 
               <b>o</b>      This action cannot be used to prepend multi-
@@ -233,46 +238,46 @@ HEADER_CHECKS(5)                                              HEADER_CHECKS(5)
               This feature is available in Postfix 2.1 and later.
 
        <b>REDIRECT</b> <i>user@domain</i>
-              Write  a  message  redirection request to the queue
-              file, and inspect the next input  line.  After  the
+              Write a message redirection request  to  the  queue
+              file,  and  inspect  the next input line. After the
               message is queued, it will be sent to the specified
               address instead of the intended recipient(s).
 
-              Note: this action overrides the <b>FILTER</b> action,  and
-              affects  all recipients of the message. If multiple
-              <b>REDIRECT</b> actions fire, only the last  one  is  exe-
+              Note:  this action overrides the <b>FILTER</b> action, and
+              affects all recipients of the message. If  multiple
+              <b>REDIRECT</b>  actions  fire,  only the last one is exe-
               cuted.
 
               This feature is available in Postfix 2.1 and later.
 
        <b>REPLACE</b> <i>text...</i>
-              Replace the current line with the  specified  text,
+              Replace  the  current line with the specified text,
               and inspect the next input line.
 
               This feature is available in Postfix 2.2 and later.
-              The description below applies to Postfix 2.2.2  and
+              The  description below applies to Postfix 2.2.2 and
               later.
 
               Notes:
 
-              <b>o</b>      When  replacing  a  message header line, the
-                     replacement text must  begin  with  a  valid
+              <b>o</b>      When replacing a message  header  line,  the
+                     replacement  text  must  begin  with a valid
                      header label.
 
-              <b>o</b>      The  replaced text remains part of the input
-                     stream. Unlike the result from  the  <b>PREPEND</b>
-                     action,  a  replaced  message  header may be
-                     subject to address rewriting and may  affect
-                     the  way  that  Postfix adds missing message
+              <b>o</b>      The replaced text remains part of the  input
+                     stream.  Unlike  the result from the <b>PREPEND</b>
+                     action, a replaced  message  header  may  be
+                     subject  to address rewriting and may affect
+                     the way that Postfix  adds  missing  message
                      headers.
 
        <b>REJECT</b> <i>optional text...</i>
-              Reject the  entire  message.  Reply  with  <i>optional</i>
+              Reject  the  entire  message.  Reply  with <i>optional</i>
               <i>text...</i> when the optional text is specified, other-
               wise reply with a generic error message.
 
-              Note:  this  action  disables  further  header   or
-              <a href="postconf.5.html#body_checks">body_checks</a>  inspection  of the current message and
+              Note:   this  action  disables  further  header  or
+              <a href="postconf.5.html#body_checks">body_checks</a> inspection of the current  message  and
               affects all recipients.
 
               Postfix version 2.3 and later support enhanced sta-
@@ -281,32 +286,32 @@ HEADER_CHECKS(5)                                              HEADER_CHECKS(5)
               enhanced status code of "5.7.1".
 
        <b>WARN</b> <i>optional text...</i>
-              Log  a  warning with the <i>optional text...</i> (or log a
-              generic message), and inspect the next input  line.
+              Log a warning with the <i>optional text...</i> (or  log  a
+              generic  message), and inspect the next input line.
               This action is useful for debugging and for testing
               a pattern before applying more drastic actions.
 
 <b>BUGS</b>
-       Many people overlook the main limitations  of  header  and
+       Many  people  overlook  the main limitations of header and
        <a href="postconf.5.html#body_checks">body_checks</a> rules.
 
-       <b>o</b>      These  rules  operate on one logical message header
+       <b>o</b>      These rules operate on one logical  message  header
               or one body line at a time. A decision made for one
               line is not carried over to the next line.
 
-       <b>o</b>      If  text  in the message body is encoded (<a href="http://www.faqs.org/rfcs/rfc2045.html">RFC 2045</a>)
-              then the rules have to specified  for  the  encoded
+       <b>o</b>      If text in the message body is encoded  (<a href="http://www.faqs.org/rfcs/rfc2045.html">RFC  2045</a>)
+              then the rules need to be specified for the encoded
               form.
 
-       <b>o</b>      Likewise,  when  message  headers  are encoded (<a href="http://www.faqs.org/rfcs/rfc2047.html">RFC</a>
-              <a href="http://www.faqs.org/rfcs/rfc2047.html">2047</a>) then the rules need to be specified  for  the
+       <b>o</b>      Likewise, when message  headers  are  encoded  (<a href="http://www.faqs.org/rfcs/rfc2047.html">RFC</a>
+              <a href="http://www.faqs.org/rfcs/rfc2047.html">2047</a>)  then  the rules need to be specified for the
               encoded form.
 
-       Message  headers added by the <a href="cleanup.8.html"><b>cleanup</b>(8)</a> daemon itself are
+       Message headers added by the <a href="cleanup.8.html"><b>cleanup</b>(8)</a> daemon itself  are
        excluded from inspection. Examples of such message headers
        are <b>From:</b>, <b>To:</b>, <b>Message-ID:</b>, <b>Date:</b>.
 
-       Message  headers  deleted by the <a href="cleanup.8.html"><b>cleanup</b>(8)</a> daemon will be
+       Message headers deleted by the <a href="cleanup.8.html"><b>cleanup</b>(8)</a> daemon  will  be
        examined before they are deleted. Examples are: <b>Bcc:, Con-</b>
        <b>tent-Length:</b>, <b>Return-Path:</b>.
 
@@ -314,11 +319,11 @@ HEADER_CHECKS(5)                                              HEADER_CHECKS(5)
        <b><a href="postconf.5.html#body_checks">body_checks</a></b>
               Lookup tables with content filter rules for message
               body lines.  These filters see one physical line at
-              a  time,  in  chunks  of at most <b>$<a href="postconf.5.html#line_length_limit">line_length_limit</a></b>
+              a time, in chunks  of  at  most  <b>$<a href="postconf.5.html#line_length_limit">line_length_limit</a></b>
               bytes.
 
        <b><a href="postconf.5.html#body_checks_size_limit">body_checks_size_limit</a></b>
-              The amount of  content  per  message  body  segment
+              The  amount  of  content  per  message body segment
               (attachment) that is subjected to <b>$<a href="postconf.5.html#body_checks">body_checks</a></b> fil-
               tering.
 
@@ -328,32 +333,32 @@ HEADER_CHECKS(5)                                              HEADER_CHECKS(5)
 
        <b><a href="postconf.5.html#nested_header_checks">nested_header_checks</a></b> (default: <b>$<a href="postconf.5.html#header_checks">header_checks</a></b>)
               Lookup tables with content filter rules for message
-              header  lines:  respectively,  these are applied to
-              the initial message  headers  (not  including  MIME
-              headers),  to the MIME headers anywhere in the mes-
-              sage, and to the initial headers of  attached  mes-
+              header lines: respectively, these  are  applied  to
+              the  initial  message  headers  (not including MIME
+              headers), to the MIME headers anywhere in the  mes-
+              sage,  and  to the initial headers of attached mes-
               sages.
 
-              Note:  these filters see one logical message header
-              at a time, even when a message header spans  multi-
-              ple  lines.  Message  headers  that are longer than
+              Note: these filters see one logical message  header
+              at  a time, even when a message header spans multi-
+              ple lines. Message headers  that  are  longer  than
               <b>$<a href="postconf.5.html#header_size_limit">header_size_limit</a></b> characters are truncated.
 
        <b><a href="postconf.5.html#disable_mime_input_processing">disable_mime_input_processing</a></b>
-              While receiving mail, give no special treatment  to
-              MIME  related  message  headers; all text after the
+              While  receiving mail, give no special treatment to
+              MIME related message headers; all  text  after  the
               initial message headers is considered to be part of
-              the  message body. This means that <b><a href="postconf.5.html#header_checks">header_checks</a></b> is
-              applied to all the  initial  message  headers,  and
+              the message body. This means that <b><a href="postconf.5.html#header_checks">header_checks</a></b>  is
+              applied  to  all  the  initial message headers, and
               that <b><a href="postconf.5.html#body_checks">body_checks</a></b> is applied to the remainder of the
               message.
 
-              Note: when used in this  manner,  <b><a href="postconf.5.html#body_checks">body_checks</a></b>  will
-              process  a  multi-line message header one line at a
+              Note:  when  used  in this manner, <b><a href="postconf.5.html#body_checks">body_checks</a></b> will
+              process a multi-line message header one line  at  a
               time.
 
 <b>EXAMPLES</b>
-       Header pattern to block attachments  with  bad  file  name
+       Header  pattern  to  block  attachments with bad file name
        extensions.
 
        /etc/postfix/<a href="postconf.5.html">main.cf</a>:
@@ -391,7 +396,7 @@ HEADER_CHECKS(5)                                              HEADER_CHECKS(5)
        <a href="BACKSCATTER_README.html">BACKSCATTER_README</a>, blocking returned forged mail
 
 <b>LICENSE</b>
-       The  Secure  Mailer  license must be distributed with this
+       The Secure Mailer license must be  distributed  with  this
        software.
 
 <b>AUTHOR(S)</b>
index 8342ab8a696c8b2bb9fb2b219e89c7150392cfb6..19edaa59f9b43c5ac41e93e6995638d3ff632740 100644 (file)
@@ -327,19 +327,18 @@ LDAP_TABLE(5)                                                    LDAP_TABLE(5)
               are not performed. This  can  significantly  reduce
               the query load on the LDAP server.
 
-                  domain = postfix.org, hash:/etc/postfix/search-
-              domains
+                  domain = postfix.org, hash:/etc/postfix/searchdomains
 
-              It is best not to use LDAP  to  store  the  domains
+              It  is  best  not  to use LDAP to store the domains
               eligible for LDAP lookups.
 
-              NOTE:  DO  NOT  define  this parameter for <a href="local.8.html">local(8)</a>
+              NOTE: DO NOT define  this  parameter  for  <a href="local.8.html">local(8)</a>
               aliases.
 
               This feature is available in Postfix 1.0 and later.
 
        <b>result_attribute (default: maildrop)</b>
-              The  attribute(s) Postfix will read from any direc-
+              The attribute(s) Postfix will read from any  direc-
               tory entries returned by the lookup, to be resolved
               to an email address.
 
@@ -347,57 +346,57 @@ LDAP_TABLE(5)                                                    LDAP_TABLE(5)
 
        <b>special_result_attribute (default: empty)</b>
               The attribute(s) of directory entries that can con-
-              tain DNs or URLs. If found, a recursive  subsequent
+              tain  DNs or URLs. If found, a recursive subsequent
               search is done using their values.
 
                   special_result_attribute = memberdn
 
-              DN  recursion  retrieves the same result_attributes
+              DN recursion retrieves the  same  result_attributes
               as the main query, including the special attributes
-              for  further  recursion.  URI  processing retrieves
-              only those attributes that are included in the  URI
-              definition     and    are    *also*    listed    in
-              "result_attribute". If the URI  lists  any  of  the
-              map's  special  result  attributes,  these are also
+              for further  recursion.  URI  processing  retrieves
+              only  those attributes that are included in the URI
+              definition    and    are    *also*    listed     in
+              "result_attribute".  If  the  URI  lists any of the
+              map's special result  attributes,  these  are  also
               retrieved and used recursively.
 
        <b>terminal_result_attribute (default: empty)</b>
-              When one or more  terminal  result  attributes  are
+              When  one  or  more  terminal result attributes are
               found in an LDAP entry, all other result attributes
               are ignored and only the terminal result attributes
-              are  returned. This is useful for delegating expan-
-              sion of group members  to  a  particular  host,  by
-              using  an optional "maildrop" attribute on selected
+              are returned. This is useful for delegating  expan-
+              sion  of  group  members  to  a particular host, by
+              using an optional "maildrop" attribute on  selected
               groups to route the group to a specific host, where
-              the  group  is  expanded, possibly via mailing-list
+              the group is expanded,  possibly  via  mailing-list
               manager or other special processing.
 
                   terminal_result_attribute = maildrop
 
-              This feature  is  available  with  Postfix  2.4  or
+              This  feature  is  available  with  Postfix  2.4 or
               later.
 
        <b>leaf_result_attribute (default: empty)</b>
-              When  one  or  more  special  result attributes are
-              found in a non-terminal  (see  above)  LDAP  entry,
+              When one or  more  special  result  attributes  are
+              found  in  a  non-terminal  (see above) LDAP entry,
               leaf result attributes are excluded from the expan-
-              sion of that entry. This is useful  when  expanding
+              sion  of  that entry. This is useful when expanding
               groups and the desired mail address attribute(s) of
               the member objects obtained via DN or URI recursion
-              are  also  present  in  the  group  object. To only
-              return the attribute values from the  leaf  objects
-              and  not the containing group, add the attribute to
-              the  leaf_result_attribute  list,   and   not   the
-              result_attribute  list,  which  is always expanded.
-              Note, the default value  of  "result_attribute"  is
-              not  empty, you may want to set it explicitly empty
-              when using "leaf_result_attribute"  to  expand  the
-              group  to  a list of member DN addresses. If groups
-              have both member DN references AND attributes  that
-              hold  multiple string valued rfc822 addresses, then
-              the string  attributes  go  in  "result_attribute".
-              The  attributes  that represent the email addresses
-              of objects referenced via a DN (or LDAP URI) go  in
+              are also present  in  the  group  object.  To  only
+              return  the  attribute values from the leaf objects
+              and not the containing group, add the attribute  to
+              the   leaf_result_attribute   list,   and  not  the
+              result_attribute list, which  is  always  expanded.
+              Note,  the  default  value of "result_attribute" is
+              not empty, you may want to set it explicitly  empty
+              when  using  "leaf_result_attribute"  to expand the
+              group to a list of member DN addresses.  If  groups
+              have  both member DN references AND attributes that
+              hold multiple string valued rfc822 addresses,  then
+              the  string  attributes  go  in "result_attribute".
+              The attributes that represent the  email  addresses
+              of  objects referenced via a DN (or LDAP URI) go in
               "leaf_result_attribute".
 
                   result_attribute = memberaddr
@@ -405,42 +404,42 @@ LDAP_TABLE(5)                                                    LDAP_TABLE(5)
                   terminal_result_attribute = maildrop
                   leaf_result_attribute = mail
 
-              This  feature  is  available  with  Postfix  2.4 or
+              This feature  is  available  with  Postfix  2.4  or
               later.
 
        <b>scope (default: sub)</b>
-              The LDAP search scope: <b>sub</b>, <b>base</b>,  or  <b>one</b>.   These
+              The  LDAP  search  scope: <b>sub</b>, <b>base</b>, or <b>one</b>.  These
               translate into LDAP_SCOPE_SUBTREE, LDAP_SCOPE_BASE,
               and LDAP_SCOPE_ONELEVEL.
 
        <b>bind (default: yes)</b>
-              Whether or not to bind to the  LDAP  server.  Newer
+              Whether  or  not  to bind to the LDAP server. Newer
               LDAP implementations don't require clients to bind,
               which saves time. Example:
 
                   bind = no
 
-              If you do need to bind, you might consider  config-
-              uring  Postfix to connect to the local machine on a
-              port that's an SSL tunnel to your LDAP  server.  If
-              your  LDAP server doesn't natively support SSL, put
+              If  you do need to bind, you might consider config-
+              uring Postfix to connect to the local machine on  a
+              port  that's  an SSL tunnel to your LDAP server. If
+              your LDAP server doesn't natively support SSL,  put
               a tunnel (wrapper, proxy, whatever you want to call
-              it)  on  that  system  too. This should prevent the
-              password from traversing the network in the  clear.
+              it) on that system too.  This  should  prevent  the
+              password  from traversing the network in the clear.
 
        <b>bind_dn (default: empty)</b>
-              If  you  do  have  to bind, do it with this distin-
+              If you do have to bind, do  it  with  this  distin-
               guished name. Example:
 
                   bind_dn = uid=postfix, dc=your, dc=com
 
        <b>bind_pw (default: empty)</b>
-              The password for the distinguished name  above.  If
+              The  password  for the distinguished name above. If
               you have to use this, you probably want to make the
               map configuration file readable only by the Postfix
-              user.  When using the obsolete <a href="ldap_table.5.html">ldap</a>:ldapsource syn-
+              user. When using the obsolete <a href="ldap_table.5.html">ldap</a>:ldapsource  syn-
               tax, with map parameters in <a href="postconf.5.html">main.cf</a>, it is not pos-
-              sible  to securely store the bind password. This is
+              sible to securely store the bind password. This  is
               because <a href="postconf.5.html">main.cf</a> needs to be world readable to allow
               local accounts to submit mail via the sendmail com-
               mand. Example:
@@ -452,43 +451,43 @@ LDAP_TABLE(5)                                                    LDAP_TABLE(5)
        <b>cache_expiry (IGNORED with a warning)</b>
 
        <b>cache_size (IGNORED with a warning)</b>
-              The above parameters are  NO  LONGER  SUPPORTED  by
+              The  above  parameters  are  NO LONGER SUPPORTED by
               Postfix.   Cache  support  has  been  dropped  from
               OpenLDAP as of release 2.1.13.
 
        <b>recursion_limit (default: 1000)</b>
-              A limit on the nesting depth of DN and URL  special
-              result  attribute  evaluation.  The limit must be a
+              A  limit on the nesting depth of DN and URL special
+              result attribute evaluation. The limit  must  be  a
               non-zero positive number.
 
        <b>expansion_limit (default: 0)</b>
-              A limit on the  total  number  of  result  elements
-              returned  (as  a  comma separated list) by a lookup
-              against the map.  A setting of  zero  disables  the
-              limit.  Lookups  fail with a temporary error if the
-              limit is exceeded.  Setting the limit to 1  ensures
+              A  limit  on  the  total  number of result elements
+              returned (as a comma separated list)  by  a  lookup
+              against  the  map.   A setting of zero disables the
+              limit. Lookups fail with a temporary error  if  the
+              limit  is exceeded.  Setting the limit to 1 ensures
               that lookups do not return multiple values.
 
        <b>size_limit (default: $expansion_limit)</b>
-              A  limit  on the number of LDAP entries returned by
-              any single LDAP search performed  as  part  of  the
-              lookup.  A setting of 0 disables the limit.  Expan-
-              sion of DN and URL references involves nested  LDAP
-              queries,  each  of which is separately subjected to
+              A limit on the number of LDAP entries  returned  by
+              any  single  LDAP  search  performed as part of the
+              lookup. A setting of 0 disables the limit.   Expan-
+              sion  of DN and URL references involves nested LDAP
+              queries, each of which is separately  subjected  to
               this limit.
 
-              Note: even a single LDAP entry can generate  multi-
-              ple  lookup results, via multiple result attributes
-              and/or multi-valued result attributes.  This  limit
-              caps  the  per  search  resource utilization on the
-              LDAP server, not  the  final  multiplicity  of  the
-              lookup  result.  It is analogous to the "-z" option
+              Note:  even a single LDAP entry can generate multi-
+              ple lookup results, via multiple result  attributes
+              and/or  multi-valued  result attributes. This limit
+              caps the per search  resource  utilization  on  the
+              LDAP  server,  not  the  final  multiplicity of the
+              lookup result. It is analogous to the  "-z"  option
               of "ldapsearch".
 
        <b>dereference (default: 0)</b>
-              When to dereference LDAP aliases. (Note  that  this
+              When  to  dereference LDAP aliases. (Note that this
               has nothing do with Postfix aliases.) The permitted
-              values are those legal  for  the  OpenLDAP/UM  LDAP
+              values  are  those  legal  for the OpenLDAP/UM LDAP
               implementations:
 
               0      never
@@ -500,28 +499,28 @@ LDAP_TABLE(5)                                                    LDAP_TABLE(5)
               3      always
 
               See ldap.h or the ldap_open(3) or ldapsearch(1) man
-              pages  for more information. And if you're using an
+              pages for more information. And if you're using  an
               LDAP package that has other possible values, please
-              bring   it   to   the  attention  of  the  postfix-
+              bring  it  to  the  attention   of   the   postfix-
               users@postfix.org mailing list.
 
        <b>chase_referrals (default: 0)</b>
-              Sets (or clears) LDAP_OPT_REFERRALS (requires  LDAP
+              Sets  (or clears) LDAP_OPT_REFERRALS (requires LDAP
               version 3 support).
 
        <b>version (default: 2)</b>
               Specifies the LDAP protocol version to use.
 
        <b>debuglevel (default: 0)</b>
-              What  level  to  set  for debugging in the OpenLDAP
+              What level to set for  debugging  in  the  OpenLDAP
               libraries.
 
 <b>LDAP SSL AND STARTTLS PARAMETERS</b>
-       If you're using the OpenLDAP libraries compiled  with  SSL
-       support,  Postfix  can connect to LDAP SSL servers and can
+       If  you're  using the OpenLDAP libraries compiled with SSL
+       support, Postfix can connect to LDAP SSL servers  and  can
        issue the STARTTLS command.
 
-       LDAP SSL service can be requested by using a LDAP SSL  URL
+       LDAP  SSL service can be requested by using a LDAP SSL URL
        in the server_host parameter:
 
            server_host = ldaps://ldap.example.com:636
@@ -530,90 +529,90 @@ LDAP_TABLE(5)                                                    LDAP_TABLE(5)
 
            start_tls = yes
 
-       Both  forms  require LDAP protocol version 3, which has to
+       Both forms require LDAP protocol version 3, which  has  to
        be set explicitly with:
 
            version = 3
 
        If any of the Postfix programs querying the map is config-
-       ured  in  <a href="master.5.html">master.cf</a>  to run chrooted, all the certificates
+       ured in <a href="master.5.html">master.cf</a> to run chrooted,  all  the  certificates
        and keys involved have to be copied to the chroot jail. Of
-       course,  the  private  keys should only be readable by the
+       course, the private keys should only be  readable  by  the
        user "postfix".
 
-       The following parameters are  relevant  to  LDAP  SSL  and
+       The  following  parameters  are  relevant  to LDAP SSL and
        STARTTLS:
 
        <b>start_tls (default: no)</b>
               Whether or not to issue STARTTLS upon connection to
-              the server.  Don't set this with LDAP SSL (the  SSL
+              the  server.  Don't set this with LDAP SSL (the SSL
               session is setup automatically when the TCP connec-
               tion is opened).
 
-       <b>tls_ca_cert_dir  (No   default;   set   either   this   or</b>
+       <b>tls_ca_cert_dir   (No   default;   set   either   this  or</b>
        <b>tls_ca_cert_file)</b>
               Directory  containing  X509  Certificate  Authority
-              certificates  in  PEM format which are to be recog-
-              nized by the client  in  SSL/TLS  connections.  The
-              files  each  contain one CA certificate.  The files
-              are looked up by the CA subject  name  hash  value,
-              which  must hence be available. If more than one CA
-              certificate with the same name  hash  value  exist,
-              the  extension  must be different (e.g. 9d66eef0.0,
-              9d66eef0.1 etc). The search  is  performed  in  the
-              ordering  of  the  extension  number, regardless of
+              certificates in PEM format which are to  be  recog-
+              nized  by  the  client  in SSL/TLS connections. The
+              files each contain one CA certificate.   The  files
+              are  looked  up  by the CA subject name hash value,
+              which must hence be available. If more than one  CA
+              certificate  with  the  same name hash value exist,
+              the extension must be different  (e.g.  9d66eef0.0,
+              9d66eef0.1  etc).  The  search  is performed in the
+              ordering of the  extension  number,  regardless  of
               other  properties  of  the  certificates.  Use  the
               c_rehash utility (from the OpenSSL distribution) to
               create the necessary links.
 
-       <b>tls_ca_cert_file  (No  default;   set   either   this   or</b>
+       <b>tls_ca_cert_file   (No   default;   set   either  this  or</b>
        <b>tls_ca_cert_dir)</b>
               File containing the X509 Certificate Authority cer-
-              tificates  in PEM format which are to be recognized
-              by the client in SSL/TLS connections. This  setting
+              tificates in PEM format which are to be  recognized
+              by  the client in SSL/TLS connections. This setting
               takes precedence over tls_ca_cert_dir.
 
        <b>tls_cert (No default; you must set this)</b>
-              File  containing  client's  X509  certificate to be
+              File containing client's  X509  certificate  to  be
               used by the client in SSL/ TLS connections.
 
        <b>tls_key (No default; you must set this)</b>
-              File containing the private  key  corresponding  to
+              File  containing  the  private key corresponding to
               the above tls_cert.
 
        <b>tls_require_cert (default: no)</b>
               Whether or not to request server's X509 certificate
-              and check its validity  when  establishing  SSL/TLS
+              and  check  its  validity when establishing SSL/TLS
               connections.
 
        <b>tls_random_file (No default)</b>
-              Path  of  a  file  to  obtain random bits from when
-              /dev/[u]random is not available, to be used by  the
+              Path of a file to  obtain  random  bits  from  when
+              /dev/[u]random  is not available, to be used by the
               client in SSL/TLS connections.
 
        <b>tls_cipher_suite (No default)</b>
               Cipher suite to use in SSL/TLS negotiations.
 
 <b>EXAMPLE</b>
-       Here's  a basic example for using LDAP to look up <a href="local.8.html">local(8)</a>
+       Here's a basic example for using LDAP to look up  <a href="local.8.html">local(8)</a>
        aliases.  Assume that in <a href="postconf.5.html">main.cf</a>, you have:
 
            <a href="postconf.5.html#alias_maps">alias_maps</a> = hash:/etc/aliases,
-               <a href="ldap_table.5.html">ldap</a>:/etc/postfix/ldap-aliases.cf
+                   <a href="ldap_table.5.html">ldap</a>:/etc/postfix/ldap-aliases.cf
 
        and in <a href="ldap_table.5.html">ldap</a>:/etc/postfix/ldap-aliases.cf you have:
 
            server_host = ldap.example.com
            search_base = dc=example, dc=com
 
-       Upon receiving mail for a local  address  "ldapuser"  that
-       isn't  found  in  the  /etc/aliases database, Postfix will
+       Upon  receiving  mail  for a local address "ldapuser" that
+       isn't found in the  /etc/aliases  database,  Postfix  will
        search the LDAP server listening at port 389 on ldap.exam-
-       ple.com.   It will bind anonymously, search for any direc-
-       tory entries  whose  mailacceptinggeneralid  attribute  is
+       ple.com.  It will bind anonymously, search for any  direc-
+       tory  entries  whose  mailacceptinggeneralid  attribute is
        "ldapuser", read the "maildrop" attributes of those found,
        and build a list of their maildrops, which will be treated
-       as  <a href="http://www.faqs.org/rfcs/rfc822.html">RFC822</a>  addresses  to which the message will be deliv-
+       as <a href="http://www.faqs.org/rfcs/rfc822.html">RFC822</a> addresses to which the message  will  be  deliv-
        ered.
 
 <b>SEE ALSO</b>
@@ -627,13 +626,13 @@ LDAP_TABLE(5)                                                    LDAP_TABLE(5)
        <a href="LDAP_README.html">LDAP_README</a>, Postfix LDAP client guide
 
 <b>LICENSE</b>
-       The  Secure  Mailer  license must be distributed with this
+       The Secure Mailer license must be  distributed  with  this
        software.
 
 <b>AUTHOR(S)</b>
-       Carsten Hoeger, Hery  Rakotoarisoa,  John  Hensley,  Keith
-       Stevenson,  LaMont Jones, Liviu Daia, Manuel Guesdon, Mike
-       Mattice, Prabhat K Singh, Sami Haahtinen, Samuel  Tardieu,
+       Carsten  Hoeger,  Hery  Rakotoarisoa,  John Hensley, Keith
+       Stevenson, LaMont Jones, Liviu Daia, Manuel Guesdon,  Mike
+       Mattice,  Prabhat K Singh, Sami Haahtinen, Samuel Tardieu,
        Victor Duchovni, and many others.
 
                                                                  LDAP_TABLE(5)
index f6668cb92721d602ddb4a8c2068f5683c0c6d1ce..f1f78ac8963ef64ea7b823e1e24631e22bbc2876 100644 (file)
@@ -21,26 +21,26 @@ MYSQL_TABLE(5)                                                  MYSQL_TABLE(5)
 
        Alternatively,  lookup  tables  can  be specified as MySQL
        databases.  In order to use MySQL lookups, define a  MySQL
-       source as a lookup table in main.cf, for example:
+       source as a lookup table in <a href="postconf.5.html">main.cf</a>, for example:
            <a href="postconf.5.html#alias_maps">alias_maps</a> = <a href="mysql_table.5.html">mysql</a>:/etc/mysql-aliases.cf
 
        The file /etc/postfix/mysql-aliases.cf has the same format
-       as the Postfix main.cf file, and can specify  the  parame-
+       as the Postfix <a href="postconf.5.html">main.cf</a> file, and can specify  the  parame-
        ters described below.
 
 <b>BACKWARDS COMPATIBILITY</b>
        For  compatibility with other Postfix lookup tables, MySQL
-       parameters can also be defined in main.cf.  In order to do
+       parameters can also be defined in <a href="postconf.5.html">main.cf</a>.  In order to do
        that,  specify  as  MySQL source a name that doesn't begin
        with a slash or a dot.  The MySQL parameters will then  be
        accessible as the name you've given the source in its def-
        inition, an underscore, and the  name  of  the  parameter.
        For example, if the map is specified as "<a href="mysql_table.5.html">mysql</a>:<i>mysqlname</i>",
-       the parameter "hosts" below would be defined in main.cf as
+       the parameter "hosts" below would be defined in <a href="postconf.5.html">main.cf</a> as
        "<i>mysqlname</i>_hosts".
 
        Note:  with this form, the passwords for the MySQL sources
-       are written in main.cf, which is normally  world-readable.
+       are written in <a href="postconf.5.html">main.cf</a>, which is normally  world-readable.
        Support  for this form will be removed in a future Postfix
        version.
 
@@ -115,58 +115,57 @@ MYSQL_TABLE(5)                                                  MYSQL_TABLE(5)
        <b>query</b>  The SQL query template used to search the database,
               where <b>%s</b> is a substitute for the address Postfix is
               trying to resolve, e.g.
-                  query  =  SELECT replacement FROM aliases WHERE
-              mailbox = '%s'
+                  query = SELECT replacement FROM aliases WHERE mailbox = '%s'
 
-              This parameter supports the  following  '%'  expan-
+              This  parameter  supports  the following '%' expan-
               sions:
 
               <b>%%</b>     This is replaced by a literal '%' character.
 
-              <b>%s</b>     This is replaced  by  the  input  key.   SQL
-                     quoting  is used to make sure that the input
-                     key does not add unexpected  metacharacters.
+              <b>%s</b>     This  is  replaced  by  the  input key.  SQL
+                     quoting is used to make sure that the  input
+                     key  does not add unexpected metacharacters.
 
               <b>%u</b>     When the input key is an address of the form
                      user@domain,  <b>%u</b>  is  replaced  by  the  SQL
-                     quoted  local  part  of the address.  Other-
-                     wise, <b>%u</b> is replaced by  the  entire  search
-                     string.   If  the  localpart  is  empty, the
-                     query is suppressed and returns no  results.
+                     quoted local part of  the  address.   Other-
+                     wise,  <b>%u</b>  is  replaced by the entire search
+                     string.  If  the  localpart  is  empty,  the
+                     query  is suppressed and returns no results.
 
               <b>%d</b>     When the input key is an address of the form
                      user@domain,  <b>%d</b>  is  replaced  by  the  SQL
-                     quoted  domain  part of the address.  Other-
+                     quoted domain part of the  address.   Other-
                      wise, the query is suppressed and returns no
                      results.
 
               <b>%[SUD]</b> The  upper-case  equivalents  of  the  above
-                     expansions behave  in  the  <b>query</b>  parameter
+                     expansions  behave  in  the  <b>query</b> parameter
                      identically  to  their  lower-case  counter-
                      parts.   With  the  <b>result_format</b>  parameter
                      (see  below),  they  expand  the  input  key
                      rather than the result value.
 
-              <b>%[1-9]</b> The patterns %1, %2, ... %9 are replaced  by
+              <b>%[1-9]</b> The  patterns %1, %2, ... %9 are replaced by
                      the corresponding most significant component
-                     of the input key's domain. If the input  key
+                     of  the input key's domain. If the input key
                      is <i>user@mail.example.com</i>, then %1 is <b>com</b>, %2
-                     is <b>example</b> and %3 is <b>mail</b>. If the input  key
+                     is  <b>example</b> and %3 is <b>mail</b>. If the input key
                      is  unqualified  or  does  not  have  enough
-                     domain components to satisfy all the  speci-
-                     fied  patterns,  the query is suppressed and
+                     domain  components to satisfy all the speci-
+                     fied patterns, the query is  suppressed  and
                      returns no results.
 
-              The <b>domain</b> parameter  described  below  limits  the
-              input  keys  to addresses in matching domains. When
-              the <b>domain</b> parameter is non-empty, SQL queries  for
-              unqualified  addresses or addresses in non-matching
+              The  <b>domain</b>  parameter  described  below limits the
+              input keys to addresses in matching  domains.  When
+              the  <b>domain</b> parameter is non-empty, SQL queries for
+              unqualified addresses or addresses in  non-matching
               domains are suppressed and return no results.
 
-              This parameter is available with  Postfix  2.2.  In
-              prior  releases  the  SQL  query was built from the
-              separate    parameters:    <b>select_field</b>,     <b>table</b>,
-              <b>where_field</b>  and <b>additional_conditions</b>. The mapping
+              This  parameter  is  available with Postfix 2.2. In
+              prior releases the SQL query  was  built  from  the
+              separate     parameters:    <b>select_field</b>,    <b>table</b>,
+              <b>where_field</b> and <b>additional_conditions</b>. The  mapping
               from the old parameters to the equivalent query is:
 
                   SELECT [<b>select_field</b>]
@@ -176,72 +175,71 @@ MYSQL_TABLE(5)                                                  MYSQL_TABLE(5)
 
               The '%s' in the <b>WHERE</b> clause expands to the escaped
               search  string.   With  Postfix  2.2  these  legacy
-              parameters  are  used if the <b>query</b> parameter is not
+              parameters are used if the <b>query</b> parameter  is  not
               specified.
 
               NOTE: DO NOT put quotes around the query parameter.
 
        <b>result_format (default: %s</b>)
-              Format  template applied to result attributes. Most
-              commonly used to append (or prepend)  text  to  the
-              result.  This  parameter supports the following '%'
+              Format template applied to result attributes.  Most
+              commonly  used  to  append (or prepend) text to the
+              result. This parameter supports the  following  '%'
               expansions:
 
               <b>%%</b>     This is replaced by a literal '%' character.
 
-              <b>%s</b>     This  is replaced by the value of the result
-                     attribute.  When  result  is  empty  it   is
+              <b>%s</b>     This is replaced by the value of the  result
+                     attribute.   When  result  is  empty  it  is
                      skipped.
 
-              <b>%u</b>     When   the  result  attribute  value  is  an
+              <b>%u</b>     When  the  result  attribute  value  is   an
                      address  of  the  form  user@domain,  <b>%u</b>  is
-                     replaced  by  the local part of the address.
+                     replaced by the local part of  the  address.
                      When the result has an empty localpart it is
                      skipped.
 
-              <b>%d</b>     When  a result attribute value is an address
-                     of the form user@domain, <b>%d</b> is  replaced  by
+              <b>%d</b>     When a result attribute value is an  address
+                     of  the  form user@domain, <b>%d</b> is replaced by
                      the domain part of the attribute value. When
                      the result is unqualified it is skipped.
 
               <b>%[SUD1-9]</b>
-                     The upper-case and decimal digit  expansions
+                     The  upper-case and decimal digit expansions
                      interpolate  the  parts  of  the  input  key
-                     rather than the result.  Their  behavior  is
-                     identical  to that described with <b>query</b>, and
-                     in fact because the input key  is  known  in
-                     advance,  queries whose key does not contain
-                     all the information specified in the  result
-                     template   are   suppressed  and  return  no
+                     rather  than  the  result. Their behavior is
+                     identical to that described with <b>query</b>,  and
+                     in  fact  because  the input key is known in
+                     advance, queries whose key does not  contain
+                     all  the information specified in the result
+                     template  are  suppressed  and   return   no
                      results.
 
               For  example,  using  "result_format  =  <a href="smtp.8.html">smtp</a>:[%s]"
               allows one to use a mailHost attribute as the basis
-              of a <a href="transport.5.html">transport(5)</a> table. After applying the  result
-              format,  multiple  values are concatenated as comma
-              separated strings. The expansion_limit and  parame-
+              of  a <a href="transport.5.html">transport(5)</a> table. After applying the result
+              format, multiple values are concatenated  as  comma
+              separated  strings. The expansion_limit and parame-
               ter explained below allows one to restrict the num-
-              ber of values in the result,  which  is  especially
+              ber  of  values  in the result, which is especially
               useful for maps that must return at most one value.
 
-              The default value <b>%s</b>  specifies  that  each  result
+              The  default  value  <b>%s</b>  specifies that each result
               value should be used as is.
 
-              This  parameter  is  available with Postfix 2.2 and
+              This parameter is available with  Postfix  2.2  and
               later.
 
               NOTE: DO NOT put quotes around the result format!
 
        <b>domain (default: no domain list)</b>
-              This is a list of domain names, paths to files,  or
-              dictionaries.  When specified, only fully qualified
-              search keys with  a  *non-empty*  localpart  and  a
-              matching  domain  are  eligible  for lookup: 'user'
-              lookups, bare domain lookups and "@domain"  lookups
-              are  not  performed.  This can significantly reduce
+              This  is a list of domain names, paths to files, or
+              dictionaries. When specified, only fully  qualified
+              search  keys  with  a  *non-empty*  localpart and a
+              matching domain are  eligible  for  lookup:  'user'
+              lookups,  bare domain lookups and "@domain" lookups
+              are not performed. This  can  significantly  reduce
               the query load on the MySQL server.
-                  domain = postfix.org, hash:/etc/postfix/search-
-              domains
+                  domain = postfix.org, hash:/etc/postfix/searchdomains
 
               It is best not to use SQL to store the domains eli-
               gible for SQL lookups.
index 8ccd9e4d1e03d32c1bd1a9dad1810aa7ed8faf7b..8bb3e406ae209e291379e68a25c8fc5aee30102f 100644 (file)
@@ -55,7 +55,7 @@ NISPLUS_TABLE(5)                                              NISPLUS_TABLE(5)
        A NIS+ aliases map might be queried as follows:
 
            <a href="postconf.5.html#alias_maps">alias_maps</a> = dbm:/etc/mail/aliases,
-                 <a href="nisplus_table.5.html">nisplus</a>:[alias=%s];mail_aliases.org_dir.$<a href="postconf.5.html#mydomain">mydomain</a>.:1
+               <a href="nisplus_table.5.html">nisplus</a>:[alias=%s];mail_aliases.org_dir.$<a href="postconf.5.html#mydomain">mydomain</a>.:1
 
        This  queries the local aliases file before the NIS+ file.
 
index 7cf9d614c149b654b8387b638a3352e18ca7e833..7a68ce8a5b7b4ac27c8e1d2579f9403eaa7fe03d 100644 (file)
@@ -16,8 +16,8 @@ PCRE_TABLE(5)                                                    PCRE_TABLE(5)
 
 <b>DESCRIPTION</b>
        The  Postfix  mail system uses optional tables for address
-       rewriting or mail routing. These tables are usually in <b>dbm</b>
-       or <b>db</b> format.
+       rewriting, mail routing, or access control.  These  tables
+       are usually in <b>dbm</b> or <b>db</b> format.
 
        Alternatively, lookup tables can be specified in Perl Com-
        patible Regular Expression form. In this case, each  input
index 13152c9a5e17f4053313c791d886370eeb472b88..39904c4ab33170a30808d900aa6aea4996b1e7c5 100644 (file)
@@ -21,27 +21,27 @@ PGSQL_TABLE(5)                                                  PGSQL_TABLE(5)
 
        Alternatively,  lookup  tables  can  be specified as Post-
        greSQL databases.  In order  to  use  PostgreSQL  lookups,
-       define  a  PostgreSQL source as a lookup table in main.cf,
+       define  a  PostgreSQL source as a lookup table in <a href="postconf.5.html">main.cf</a>,
        for example:
            <a href="postconf.5.html#alias_maps">alias_maps</a> = <a href="pgsql_table.5.html">pgsql</a>:/etc/pgsql-aliases.cf
 
        The file /etc/postfix/pgsql-aliases.cf has the same format
-       as  the  Postfix main.cf file, and can specify the parame-
+       as  the  Postfix <a href="postconf.5.html">main.cf</a> file, and can specify the parame-
        ters described below.
 
 <b>BACKWARDS COMPATIBILITY</b>
        For compatibility with other Postfix lookup tables,  Post-
-       greSQL  parameters  can  also  be  defined in main.cf.  In
+       greSQL  parameters  can  also  be  defined in <a href="postconf.5.html">main.cf</a>.  In
        order to do that, specify as PostgreSQL source a name that
        doesn't  begin  with  a  slash  or  a dot.  The PostgreSQL
        parameters will then be  accessible  as  the  name  you've
        given the source in its definition, an underscore, and the
        name of the parameter.  For example, if the map is  speci-
        fied  as  "<a href="pgsql_table.5.html">pgsql</a>:<i>pgsqlname</i>",  the  parameter "hosts" below
-       would be defined in main.cf as "<i>pgsqlname</i>_hosts".
+       would be defined in <a href="postconf.5.html">main.cf</a> as "<i>pgsqlname</i>_hosts".
 
        Note: with this form, the  passwords  for  the  PostgreSQL
-       sources  are  written in main.cf, which is normally world-
+       sources  are  written in <a href="postconf.5.html">main.cf</a>, which is normally world-
        readable.  Support for this form  will  be  removed  in  a
        future Postfix version.
 
@@ -121,132 +121,130 @@ PGSQL_TABLE(5)                                                  PGSQL_TABLE(5)
        <b>query</b>  The SQL query template used to search the database,
               where <b>%s</b> is a substitute for the address Postfix is
               trying to resolve, e.g.
-                  query = SELECT replacement FROM  aliases  WHERE
-              mailbox = '%s'
+                  query = SELECT replacement FROM aliases WHERE mailbox = '%s'
 
-              This  parameter  supports  the following '%' expan-
+              This parameter supports the  following  '%'  expan-
               sions:
 
               <b>%%</b>     This is replaced by a literal '%' character.
                      (Postfix 2.2 and later)
 
-              <b>%s</b>     This  is  replaced  by  the  input key.  SQL
-                     quoting is used to make sure that the  input
-                     key  does not add unexpected metacharacters.
+              <b>%s</b>     This is replaced  by  the  input  key.   SQL
+                     quoting  is used to make sure that the input
+                     key does not add unexpected  metacharacters.
 
               <b>%u</b>     When the input key is an address of the form
                      user@domain,  <b>%u</b>  is  replaced  by  the  SQL
-                     quoted local part of  the  address.   Other-
-                     wise,  <b>%u</b>  is  replaced by the entire search
-                     string.  If  the  localpart  is  empty,  the
-                     query  is suppressed and returns no results.
+                     quoted  local  part  of the address.  Other-
+                     wise, <b>%u</b> is replaced by  the  entire  search
+                     string.   If  the  localpart  is  empty, the
+                     query is suppressed and returns no  results.
 
               <b>%d</b>     When the input key is an address of the form
                      user@domain,  <b>%d</b>  is  replaced  by  the  SQL
-                     quoted domain part of the  address.   Other-
+                     quoted  domain  part of the address.  Other-
                      wise, the query is suppressed and returns no
                      results.
 
               <b>%[SUD]</b> The  upper-case  equivalents  of  the  above
-                     expansions  behave  in  the  <b>query</b> parameter
+                     expansions behave  in  the  <b>query</b>  parameter
                      identically  to  their  lower-case  counter-
                      parts.   With  the  <b>result_format</b>  parameter
                      (see  below),  they  expand  the  input  key
                      rather than the result value.
 
-                     The  above  %S,  %U  and  %D  expansions are
+                     The above  %S,  %U  and  %D  expansions  are
                      available with Postfix 2.2 and later
 
-              <b>%[1-9]</b> The patterns %1, %2, ... %9 are replaced  by
+              <b>%[1-9]</b> The  patterns %1, %2, ... %9 are replaced by
                      the corresponding most significant component
-                     of the input key's domain. If the input  key
+                     of  the input key's domain. If the input key
                      is <i>user@mail.example.com</i>, then %1 is <b>com</b>, %2
-                     is <b>example</b> and %3 is <b>mail</b>. If the input  key
+                     is  <b>example</b> and %3 is <b>mail</b>. If the input key
                      is  unqualified  or  does  not  have  enough
-                     domain components to satisfy all the  speci-
-                     fied  patterns,  the query is suppressed and
+                     domain  components to satisfy all the speci-
+                     fied patterns, the query is  suppressed  and
                      returns no results.
 
-                     The above %1, ... %9 expansions  are  avail-
+                     The  above  %1, ... %9 expansions are avail-
                      able with Postfix 2.2 and later
 
-              The  <b>domain</b>  parameter  described  below limits the
-              input keys to addresses in matching  domains.  When
-              the  <b>domain</b> parameter is non-empty, SQL queries for
-              unqualified addresses or addresses in  non-matching
+              The <b>domain</b> parameter  described  below  limits  the
+              input  keys  to addresses in matching domains. When
+              the <b>domain</b> parameter is non-empty, SQL queries  for
+              unqualified  addresses or addresses in non-matching
               domains are suppressed and return no results.
 
-              The  precedence  of this parameter has changed with
-              Postfix 2.2, in prior releases the precedence  was,
-              from  highest  to  lowest,  <b>select_function</b>, <b>query</b>,
+              The precedence of this parameter has  changed  with
+              Postfix  2.2, in prior releases the precedence was,
+              from highest  to  lowest,  <b>select_function</b>,  <b>query</b>,
               <b>select_field</b>, ...
 
-              With Postfix 2.2 the <b>query</b>  parameter  has  highest
+              With  Postfix  2.2  the <b>query</b> parameter has highest
               precedence, see COMPATIBILITY above.
 
               NOTE: DO NOT put quotes around the <b>query</b> parameter.
 
        <b>result_format (default: %s</b>)
-              Format template applied to result attributes.  Most
-              commonly  used  to  append (or prepend) text to the
-              result. This parameter supports the  following  '%'
+              Format  template applied to result attributes. Most
+              commonly used to append (or prepend)  text  to  the
+              result.  This  parameter supports the following '%'
               expansions:
 
               <b>%%</b>     This is replaced by a literal '%' character.
 
-              <b>%s</b>     This is replaced by the value of the  result
-                     attribute.   When  result  is  empty  it  is
+              <b>%s</b>     This  is replaced by the value of the result
+                     attribute.  When  result  is  empty  it   is
                      skipped.
 
-              <b>%u</b>     When  the  result  attribute  value  is   an
+              <b>%u</b>     When   the  result  attribute  value  is  an
                      address  of  the  form  user@domain,  <b>%u</b>  is
-                     replaced by the local part of  the  address.
+                     replaced  by  the local part of the address.
                      When the result has an empty localpart it is
                      skipped.
 
-              <b>%d</b>     When a result attribute value is an  address
-                     of  the  form user@domain, <b>%d</b> is replaced by
+              <b>%d</b>     When  a result attribute value is an address
+                     of the form user@domain, <b>%d</b> is  replaced  by
                      the domain part of the attribute value. When
                      the result is unqualified it is skipped.
 
               <b>%[SUD1-9]</b>
-                     The  upper-case and decimal digit expansions
+                     The upper-case and decimal digit  expansions
                      interpolate  the  parts  of  the  input  key
-                     rather  than  the  result. Their behavior is
-                     identical to that described with <b>query</b>,  and
-                     in  fact  because  the input key is known in
-                     advance, queries whose key does not  contain
-                     all  the information specified in the result
-                     template  are  suppressed  and   return   no
+                     rather than the result.  Their  behavior  is
+                     identical  to that described with <b>query</b>, and
+                     in fact because the input key  is  known  in
+                     advance,  queries whose key does not contain
+                     all the information specified in the  result
+                     template   are   suppressed  and  return  no
                      results.
 
               For  example,  using  "result_format  =  <a href="smtp.8.html">smtp</a>:[%s]"
               allows one to use a mailHost attribute as the basis
-              of  a <a href="transport.5.html">transport(5)</a> table. After applying the result
-              format, multiple values are concatenated  as  comma
-              separated  strings. The expansion_limit and parame-
+              of a <a href="transport.5.html">transport(5)</a> table. After applying the  result
+              format,  multiple  values are concatenated as comma
+              separated strings. The expansion_limit and  parame-
               ter explained below allows one to restrict the num-
-              ber  of  values  in the result, which is especially
+              ber of values in the result,  which  is  especially
               useful for maps that must return at most one value.
 
-              The  default  value  <b>%s</b>  specifies that each result
+              The default value <b>%s</b>  specifies  that  each  result
               value should be used as is.
 
-              This parameter is available with  Postfix  2.2  and
+              This  parameter  is  available with Postfix 2.2 and
               later.
 
               NOTE: DO NOT put quotes around the result format!
 
        <b>domain (default: no domain list)</b>
-              This  is a list of domain names, paths to files, or
-              dictionaries. When specified, only fully  qualified
-              search  keys  with  a  *non-empty*  localpart and a
-              matching domain are  eligible  for  lookup:  'user'
-              lookups,  bare domain lookups and "@domain" lookups
-              are not performed. This  can  significantly  reduce
+              This is a list of domain names, paths to files,  or
+              dictionaries.  When specified, only fully qualified
+              search keys with  a  *non-empty*  localpart  and  a
+              matching  domain  are  eligible  for lookup: 'user'
+              lookups, bare domain lookups and "@domain"  lookups
+              are  not  performed.  This can significantly reduce
               the query load on the PostgreSQL server.
-                  domain = postfix.org, hash:/etc/postfix/search-
-              domains
+                  domain = postfix.org, hash:/etc/postfix/searchdomains
 
               It is best not to use SQL to store the domains eli-
               gible for SQL lookups.
index 6eff2edd0b0f5ad3a196e55727ecfdd30e62b84b..a6abe8188f8d2145b7d837965d1056c050292dee 100644 (file)
@@ -278,8 +278,8 @@ PIPE(8)                                                                PIPE(8)
 
               <b>${sasl_sender</b>}
                      This macro expands to the SASL  sender  name
-                     (i.e.  the  original  submitter  as  per RFC
-                     2554) used during the reception of the  mes-
+                     (i.e.  the  original  submitter  as  per <a href="http://www.faqs.org/rfcs/rfc2554.html">RFC</a>
+                     <a href="http://www.faqs.org/rfcs/rfc2554.html">2554</a>) used during the reception of the  mes-
                      sage.
 
                      This  is available in Postfix 2.2 and later.
index 8f43bb49d69bdfb1c207492a142027e46e25ff5f..44c6e6e460c74862df8f08881c42047580fc8a52 100644 (file)
@@ -45,157 +45,156 @@ POSTSUPER(1)                                                      POSTSUPER(1)
               delete  all  mail  with   exactly   one   recipient
               <b>user@example.com</b>:
 
-              mailq | tail +2 | grep -v '^ *(' | awk  'BEGIN { RS
-              = "" }
+              mailq | tail +2 | grep -v '^ *(' | awk  'BEGIN { RS = "" }
                   # $7=sender, $8=recipient1, $9=recipient2
                   { if ($8 == "user@example.com" &amp;&amp; $9 == "")
                         print $1 }
               ' | tr -d '*!' | postsuper -d -
 
-              Specify "<b>-d ALL</b>" to remove all messages; for  exam-
-              ple,  specify  "<b>-d ALL deferred</b>" to delete all mail
-              in the <b>deferred</b> queue.  As a  safety  measure,  the
+              Specify  "<b>-d ALL</b>" to remove all messages; for exam-
+              ple, specify "<b>-d ALL deferred</b>" to delete  all  mail
+              in  the  <b>deferred</b>  queue.  As a safety measure, the
               word <b>ALL</b> must be specified in upper case.
 
-              Warning:  Postfix queue IDs are reused.  There is a
-              very small possibility that postsuper  deletes  the
-              wrong  message  file  when it is executed while the
+              Warning: Postfix queue IDs are reused.  There is  a
+              very  small  possibility that postsuper deletes the
+              wrong message file when it is  executed  while  the
               Postfix mail system is delivering mail.
 
               The scenario is as follows:
 
-              1)     The Postfix queue manager deletes  the  mes-
-                     sage  that  <a href="postsuper.1.html"><b>postsuper</b>(1)</a> is asked to delete,
+              1)     The  Postfix  queue manager deletes the mes-
+                     sage that <a href="postsuper.1.html"><b>postsuper</b>(1)</a> is asked  to  delete,
                      because Postfix is finished with the message
-                     (it  is  delivered, or it is returned to the
+                     (it is delivered, or it is returned  to  the
                      sender).
 
-              2)     New mail arrives, and  the  new  message  is
-                     given  the same queue ID as the message that
-                     <a href="postsuper.1.html"><b>postsuper</b>(1)</a> is  supposed  to  delete.   The
-                     probability  for  reusing a deleted queue ID
+              2)     New  mail  arrives,  and  the new message is
+                     given the same queue ID as the message  that
+                     <a href="postsuper.1.html"><b>postsuper</b>(1)</a>  is  supposed  to  delete.  The
+                     probability for reusing a deleted  queue  ID
                      is about 1 in 2**15 (the number of different
                      microsecond values that the system clock can
                      distinguish within a second).
 
-              3)     <a href="postsuper.1.html"><b>postsuper</b>(1)</a>  deletes   the   new   message,
-                     instead  of  the  old message that it should
+              3)     <a href="postsuper.1.html"><b>postsuper</b>(1)</a>   deletes   the   new  message,
+                     instead of the old message  that  it  should
                      have deleted.
 
        <b>-h</b> <i>queue</i><b>_</b><i>id</i>
-              Put mail "on hold" so that no attempt  is  made  to
-              deliver  it.  Move one message with the named queue
+              Put  mail  "on  hold" so that no attempt is made to
+              deliver it.  Move one message with the named  queue
               ID from the named mail queue(s) (default: <b>incoming</b>,
               <b>active</b> and <b>deferred</b>) to the <b>hold</b> queue.
 
-              If  a <i>queue</i><b>_</b><i>id</i> of <b>-</b> is specified, the program reads
+              If a <i>queue</i><b>_</b><i>id</i> of <b>-</b> is specified, the program  reads
               queue IDs from standard input.
 
               Specify "<b>-h ALL</b>" to hold all messages; for example,
-              specify  "<b>-h  ALL deferred</b>" to hold all mail in the
-              <b>deferred</b> queue.  As a safety measure, the word  <b>ALL</b>
+              specify "<b>-h ALL deferred</b>" to hold all mail  in  the
+              <b>deferred</b>  queue.  As a safety measure, the word <b>ALL</b>
               must be specified in upper case.
 
-              Note:  while  mail  is "on hold" it will not expire
-              when its  time  in  the  queue  exceeds  the  <b><a href="postconf.5.html#maximal_queue_lifetime">maxi</a>-</b>
+              Note: while mail is "on hold" it  will  not  expire
+              when  its  time  in  the  queue  exceeds  the <b><a href="postconf.5.html#maximal_queue_lifetime">maxi</a>-</b>
               <b><a href="postconf.5.html#maximal_queue_lifetime">mal_queue_lifetime</a></b>  or  <b><a href="postconf.5.html#bounce_queue_lifetime">bounce_queue_lifetime</a></b>  set-
-              ting. It becomes subject to expiration after it  is
+              ting.  It becomes subject to expiration after it is
               released from "hold".
 
        <b>-H</b> <i>queue</i><b>_</b><i>id</i>
               Release mail that was put "on hold".  Move one mes-
-              sage with the named queue ID from  the  named  mail
+              sage  with  the  named queue ID from the named mail
               queue(s) (default: <b>hold</b>) to the <b>deferred</b> queue.
 
-              If  a <i>queue</i><b>_</b><i>id</i> of <b>-</b> is specified, the program reads
+              If a <i>queue</i><b>_</b><i>id</i> of <b>-</b> is specified, the program  reads
               queue IDs from standard input.
 
-              Note: specify "<b>postsuper -r</b>" to release  mail  that
-              was  kept  on  hold  for  a significant fraction of
-              <b>$<a href="postconf.5.html#maximal_queue_lifetime">maximal_queue_lifetime</a></b> or  <b>$<a href="postconf.5.html#bounce_queue_lifetime">bounce_queue_lifetime</a></b>,
+              Note:  specify  "<b>postsuper -r</b>" to release mail that
+              was kept on hold  for  a  significant  fraction  of
+              <b>$<a href="postconf.5.html#maximal_queue_lifetime">maximal_queue_lifetime</a></b>  or <b>$<a href="postconf.5.html#bounce_queue_lifetime">bounce_queue_lifetime</a></b>,
               or longer.
 
-              Specify  "<b>-H  ALL</b>"  to release all mail that is "on
-              hold".  As a safety measure, the word <b>ALL</b>  must  be
+              Specify "<b>-H ALL</b>" to release all mail  that  is  "on
+              hold".   As  a safety measure, the word <b>ALL</b> must be
               specified in upper case.
 
-       <b>-p</b>     Purge  old temporary files that are left over after
+       <b>-p</b>     Purge old temporary files that are left over  after
               system or software crashes.
 
        <b>-r</b> <i>queue</i><b>_</b><i>id</i>
-              Requeue the message with the named  queue  ID  from
-              the  named  mail queue(s) (default: <b>hold</b>, <b>incoming</b>,
-              <b>active</b> and <b>deferred</b>).   To  requeue  multiple  mes-
+              Requeue  the  message  with the named queue ID from
+              the named mail queue(s) (default:  <b>hold</b>,  <b>incoming</b>,
+              <b>active</b>  and  <b>deferred</b>).   To  requeue multiple mes-
               sages, specify multiple <b>-r</b> command-line options.
 
               Alternatively, if a <i>queue</i><b>_</b><i>id</i> of <b>-</b> is specified, the
               program reads queue IDs from standard input.
 
-              Specify "<b>-r ALL</b>" to  requeue  all  messages.  As  a
-              safety  measure,  the word <b>ALL</b> must be specified in
+              Specify  "<b>-r  ALL</b>"  to  requeue  all messages. As a
+              safety measure, the word <b>ALL</b> must be  specified  in
               upper case.
 
-              A requeued message is moved to the <b>maildrop</b>  queue,
-              from  where  it  is  copied  by  the  <a href="pickup.8.html"><b>pickup</b>(8)</a> and
-              <a href="cleanup.8.html"><b>cleanup</b>(8)</a> daemons to a new  queue  file.  In  many
-              respects  its  handling  differs from that of a new
+              A  requeued message is moved to the <b>maildrop</b> queue,
+              from where  it  is  copied  by  the  <a href="pickup.8.html"><b>pickup</b>(8)</a>  and
+              <a href="cleanup.8.html"><b>cleanup</b>(8)</a>  daemons  to  a  new queue file. In many
+              respects its handling differs from that  of  a  new
               local submission.
 
-              <b>o</b>      The  message  is  not   subjected   to   the
+              <b>o</b>      The   message   is   not  subjected  to  the
                      <a href="postconf.5.html#smtpd_milters">smtpd_milters</a> or <a href="postconf.5.html#non_smtpd_milters">non_smtpd_milters</a> settings.
-                     When mail has  passed  through  an  external
+                     When  mail  has  passed  through an external
                      content filter, this would produce incorrect
                      results with Milter applications that depend
-                     on  original  SMTP connection state informa-
+                     on original SMTP connection  state  informa-
                      tion.
 
               <b>o</b>      The  message  is  subjected  again  to  mail
                      address rewriting and substitution.  This is
-                     useful when rewriting rules or virtual  map-
+                     useful  when rewriting rules or virtual map-
                      pings have changed.
 
                      The  address  rewriting  context  (local  or
-                     remote) is the same as when the message  was
+                     remote)  is the same as when the message was
                      received.
 
-              <b>o</b>      The  message  is  subjected to the same <a href="postconf.5.html#content_filter">con</a>-
-                     <a href="postconf.5.html#content_filter">tent_filter</a> settings (if any)  as  used  for
-                     new  local mail submissions.  This is useful
+              <b>o</b>      The message is subjected to  the  same  <a href="postconf.5.html#content_filter">con</a>-
+                     <a href="postconf.5.html#content_filter">tent_filter</a>  settings  (if  any) as used for
+                     new local mail submissions.  This is  useful
                      when <a href="postconf.5.html#content_filter">content_filter</a> settings have changed.
 
-              Warning: Postfix queue IDs are reused.  There is  a
-              very  small  possibility that <a href="postsuper.1.html"><b>postsuper</b>(1)</a> requeues
-              the wrong message file when it  is  executed  while
-              the  Postfix  mail  system  is running, but no harm
+              Warning:  Postfix queue IDs are reused.  There is a
+              very small possibility that  <a href="postsuper.1.html"><b>postsuper</b>(1)</a>  requeues
+              the  wrong  message  file when it is executed while
+              the Postfix mail system is  running,  but  no  harm
               should be done.
 
-       <b>-s</b>     Structure check and structure repair.  This  should
+       <b>-s</b>     Structure  check and structure repair.  This should
               be done once before Postfix startup.
 
-              <b>o</b>      Rename  files  whose name does not match the
+              <b>o</b>      Rename files whose name does not  match  the
                      message file inode number. This operation is
-                     necessary  after restoring a mail queue from
+                     necessary after restoring a mail queue  from
                      a different machine, or from backup media.
 
               <b>o</b>      Move queue files that are in the wrong place
                      in the file system hierarchy and remove sub-
                      directories that are no longer needed.  File
-                     position  rearrangements are necessary after
+                     position rearrangements are necessary  after
                      a  change  in  the  <b><a href="postconf.5.html#hash_queue_names">hash_queue_names</a></b>  and/or
                      <b><a href="postconf.5.html#hash_queue_depth">hash_queue_depth</a></b> configuration parameters.
 
        <b>-v</b>     Enable verbose logging for debugging purposes. Mul-
-              tiple <b>-v</b> options  make  the  software  increasingly
+              tiple  <b>-v</b>  options  make  the software increasingly
               verbose.
 
 <b>DIAGNOSTICS</b>
-       Problems  are reported to the standard error stream and to
+       Problems are reported to the standard error stream and  to
        <b>syslogd</b>(8).
 
-       <a href="postsuper.1.html"><b>postsuper</b>(1)</a> reports the number of messages  deleted  with
-       <b>-d</b>,  the number of messages requeued with <b>-r</b>, and the num-
-       ber of messages whose queue file name was fixed  with  <b>-s</b>.
-       The  report is written to the standard error stream and to
+       <a href="postsuper.1.html"><b>postsuper</b>(1)</a>  reports  the number of messages deleted with
+       <b>-d</b>, the number of messages requeued with <b>-r</b>, and the  num-
+       ber  of  messages whose queue file name was fixed with <b>-s</b>.
+       The report is written to the standard error stream and  to
        <b>syslogd</b>(8).
 
 <b>ENVIRONMENT</b>
@@ -203,37 +202,37 @@ POSTSUPER(1)                                                      POSTSUPER(1)
               Directory with the <a href="postconf.5.html"><b>main.cf</b></a> file.
 
 <b>BUGS</b>
-       Mail that is not sanitized by Postfix (i.e.  mail  in  the
+       Mail  that  is  not sanitized by Postfix (i.e. mail in the
        <b>maildrop</b> queue) cannot be placed "on hold".
 
 <b>CONFIGURATION PARAMETERS</b>
-       The  following  <a href="postconf.5.html"><b>main.cf</b></a> parameters are especially relevant
+       The following <a href="postconf.5.html"><b>main.cf</b></a> parameters are  especially  relevant
        to this program.  The text below provides only a parameter
-       summary.  See <a href="postconf.5.html"><b>postconf</b>(5)</a> for more details including exam-
+       summary. See <a href="postconf.5.html"><b>postconf</b>(5)</a> for more details including  exam-
        ples.
 
        <b><a href="postconf.5.html#config_directory">config_directory</a> (see 'postconf -d' output)</b>
-              The default location of  the  Postfix  <a href="postconf.5.html">main.cf</a>  and
+              The  default  location  of  the Postfix <a href="postconf.5.html">main.cf</a> and
               <a href="master.5.html">master.cf</a> configuration files.
 
        <b><a href="postconf.5.html#hash_queue_depth">hash_queue_depth</a> (1)</b>
-              The  number of subdirectory levels for queue direc-
-              tories listed with the <a href="postconf.5.html#hash_queue_names">hash_queue_names</a>  parameter.
+              The number of subdirectory levels for queue  direc-
+              tories  listed with the <a href="postconf.5.html#hash_queue_names">hash_queue_names</a> parameter.
 
        <b><a href="postconf.5.html#hash_queue_names">hash_queue_names</a> (deferred, defer)</b>
-              The  names  of  queue  directories  that  are split
+              The names  of  queue  directories  that  are  split
               across multiple subdirectory levels.
 
        <b><a href="postconf.5.html#queue_directory">queue_directory</a> (see 'postconf -d' output)</b>
-              The location of the Postfix top-level queue  direc-
+              The  location of the Postfix top-level queue direc-
               tory.
 
        <b><a href="postconf.5.html#syslog_facility">syslog_facility</a> (mail)</b>
               The syslog facility of Postfix logging.
 
        <b><a href="postconf.5.html#syslog_name">syslog_name</a> (postfix)</b>
-              The  mail  system  name  that  is  prepended to the
-              process name in syslog  records,  so  that  "smtpd"
+              The mail system  name  that  is  prepended  to  the
+              process  name  in  syslog  records, so that "smtpd"
               becomes, for example, "postfix/smtpd".
 
 <b>SEE ALSO</b>
@@ -241,7 +240,7 @@ POSTSUPER(1)                                                      POSTSUPER(1)
        <a href="postqueue.1.html">postqueue(1)</a>, unprivileged queue operations
 
 <b>LICENSE</b>
-       The  Secure  Mailer  license must be distributed with this
+       The Secure Mailer license must be  distributed  with  this
        software.
 
 <b>AUTHOR(S)</b>
index 53eb26746a860fafa7d4f82e7f899e74ef465d61..ac0646f7a29e7f52207fe29f74c7221519d7aead 100644 (file)
@@ -16,8 +16,8 @@ REGEXP_TABLE(5)                                                REGEXP_TABLE(5)
 
 <b>DESCRIPTION</b>
        The Postfix mail system uses optional tables  for  address
-       rewriting or mail routing. These tables are usually in <b>dbm</b>
-       or <b>db</b> format.
+       rewriting,  mail  routing, or access control. These tables
+       are usually in <b>dbm</b> or <b>db</b> format.
 
        Alternatively, lookup tables can  be  specified  in  POSIX
        regular  expression form. In this case, each input is com-
index d31e1628c71a2e2058543e768158b88e3c4033b5..b8d60e802d3bd12d3872e4dcce17b7c65a86ecfd 100644 (file)
@@ -47,7 +47,9 @@ RELOCATED(5)                                                      RELOCATED(5)
        The input format for the <a href="postmap.1.html"><b>postmap</b>(1)</a> command is as follows:
 
        <b>o</b>      An entry has one of the following form:
+
                    <i>pattern      new</i><b>_</b><i>location</i>
+
               Where  <i>new</i><b>_</b><i>location</i>  specifies  contact information
               such as an  email  address,  or  perhaps  a  street
               address or telephone number.
index a2a225f3bc56897abe2801ad6eff28d5cceef716..eaba046530192b9b45a12ef9aa4cc792467fe07f 100644 (file)
@@ -19,8 +19,10 @@ TRANSPORT(5)                                                      TRANSPORT(5)
 <b>DESCRIPTION</b>
        The  optional  <a href="transport.5.html"><b>transport</b>(5)</a> table specifies a mapping from
        email addresses to message delivery transports  and  next-
-       hop hosts. The table is searched by the <a href="trivial-rewrite.8.html"><b>trivial-rewrite</b>(8)</a>
-       daemon.
+       hop  destinations.   Message  delivery  transports such as
+       <b>local</b> or <b>smtp</b> are defined in the <a href="master.5.html"><b>master.cf</b></a> file, and next-
+       hop  destinations are typically hosts or domain names. The
+       table is searched by the <a href="trivial-rewrite.8.html"><b>trivial-rewrite</b>(8)</a> daemon.
 
        This  mapping  overrides  the  default   <i>transport</i>:<i>nexthop</i>
        selection that is built into Postfix:
@@ -172,7 +174,7 @@ TRANSPORT(5)                                                      TRANSPORT(5)
 
             <b>my.domain    :</b>
             <b>.my.domain   :</b>
-            <b>*         <a href="smtp.8.html">smtp</a>:outbound-relay.my.domain</b>
+            <b>*            <a href="smtp.8.html">smtp</a>:outbound-relay.my.domain</b>
 
        In  order  to send mail for <b>example.com</b> and its subdomains
        via the <b>uucp</b> transport to the UUCP host named <b>example</b>:
@@ -213,30 +215,30 @@ TRANSPORT(5)                                                      TRANSPORT(5)
 
        The error mailer can be used to bounce mail:
 
-            <b>.example.com     <a href="error.8.html">error</a>:mail for *.example.com is  not</b>
-       <b>deliverable</b>
+            <b>.example.com     <a href="error.8.html">error</a>:mail for *.example.com is not deliverable</b>
 
-       This  causes  all mail for <i>user</i>@<i>anything</i><b>.example.com</b> to be
+       This causes all mail for <i>user</i>@<i>anything</i><b>.example.com</b>  to  be
        bounced.
 
 <b>REGULAR EXPRESSION TABLES</b>
-       This section describes how the table lookups  change  when
+       This  section  describes how the table lookups change when
        the table is given in the form of regular expressions. For
-       a description of regular expression lookup  table  syntax,
+       a  description  of regular expression lookup table syntax,
        see <a href="regexp_table.5.html"><b>regexp_table</b>(5)</a> or <a href="pcre_table.5.html"><b>pcre_table</b>(5)</a>.
 
-       Each  pattern  is  a regular expression that is applied to
-       the   entire    address    being    looked    up.    Thus,
-       <i>some.domain.hierarchy</i>  is  not  looked  up  via its parent
-       domains, nor is <i>user+foo@domain</i> looked up as  <i>user@domain</i>.
+       Each pattern is a regular expression that  is  applied  to
+       the    entire    address    being    looked    up.   Thus,
+       <i>some.domain.hierarchy</i> is not  looked  up  via  its  parent
+       domains,  nor is <i>user+foo@domain</i> looked up as <i>user@domain</i>.
 
-       Patterns  are applied in the order as specified in the ta-
-       ble, until a pattern is  found  that  matches  the  search
+       Patterns are applied in the order as specified in the  ta-
+       ble,  until  a  pattern  is  found that matches the search
        string.
 
-       Results  are  the  same as with indexed file lookups, with
-       the additional feature that parenthesized substrings  from
-       the pattern can be interpolated as <b>$1</b>, <b>$2</b> and so on.
+       The <a href="trivial-rewrite.8.html"><b>trivial-rewrite</b>(8)</a> server disallows regular expression
+       substitution  of  $1  etc.  in  regular  expression lookup
+       tables, because that could open a security  hole  (Postfix
+       version 2.3 and later).
 
 <b>TCP-BASED TABLES</b>
        This  section  describes how the table lookups change when
index 06450986b0b0a91769bab6be1268ca33f2a3e8e6..c92826c651cfa25f26a56e25b50993dec08bfe64 100644 (file)
@@ -113,8 +113,10 @@ VIRTUAL(5)                                                          VIRTUAL(5)
               Postfix SMTP server accepts mail for any  recipient
               in  <i>domain</i>,  regardless  of  whether that recipient
               exists.  This may turn  your  mail  system  into  a
-              backscatter  source that returns undeliverable spam
-              to innocent people.
+              backscatter  source: Postfix first accepts mail for
+              non-existent recipients and then  tries  to  return
+              that  mail  as  "undeliverable" to the often forged
+              sender address.
 
 <b>RESULT ADDRESS REWRITING</b>
        The lookup result is subject to address rewriting:
@@ -162,15 +164,15 @@ VIRTUAL(5)                                                          VIRTUAL(5)
        /etc/postfix/<a href="postconf.5.html">main.cf</a>:
            <a href="postconf.5.html#virtual_alias_maps">virtual_alias_maps</a> = hash:/etc/postfix/virtual
 
-           Note:  some systems use <b>dbm</b> databases instead of <b>hash</b>.
-           See the output from "<b>postconf -m</b>" for available  data-
-           base types.
+       Note: some systems use <b>dbm</b> databases instead of <b>hash</b>.  See
+       the output  from  "<b>postconf  -m</b>"  for  available  database
+       types.
 
        /etc/postfix/<a href="virtual.8.html">virtual</a>:
-           <i>virtual-alias.domain anything</i> (right-hand content does not matter)
-           <i>postmaster@virtual-alias.domain      postmaster</i>
-           <i>user1@virtual-alias.domain   address1</i>
-           <i>user2@virtual-alias.domain   address2, address3</i>
+           <i>virtual-alias.domain     anything</i> (right-hand content does not matter)
+           <i>postmaster@virtual-alias.domain  postmaster</i>
+           <i>user1@virtual-alias.domain       address1</i>
+           <i>user2@virtual-alias.domain       address2, address3</i>
 
        The  <i>virtual-alias.domain anything</i> entry is required for a
        <a href="ADDRESS_CLASS_README.html#virtual_alias_class">virtual alias domain</a>. <b>Without this entry, mail is rejected</b>
index c5ef94de9cfbba7ca7e3a87d4194eb2cb3b4ba53..cdc32313883e71e9c694120d25669a381dea0aee 100644 (file)
@@ -19,8 +19,9 @@ The \fBpostmap\fR(1) command creates or queries one or more Postfix
 lookup tables, or updates an existing one. The input and output
 file formats are expected to be compatible with:
 
-.ti +4
-\fBmakemap \fIfile_type\fR \fIfile_name\fR < \fIfile_name\fR
+.nf
+    \fBmakemap \fIfile_type\fR \fIfile_name\fR < \fIfile_name\fR
+.fi
 
 If the result files do not exist they will be created with the
 same group and other read permissions as their source file.
@@ -38,8 +39,9 @@ The format of a lookup table input file is as follows:
 .IP \(bu
 A table entry has the form
 .sp
-.ti +5
-\fIkey\fR whitespace \fIvalue\fR
+.nf
+     \fIkey\fR whitespace \fIvalue\fR
+.fi
 .IP \(bu
 Empty lines and whitespace-only lines are ignored, as
 are lines whose first non-whitespace character is a `#'.
index a6800a474350cae85ad7824d7fad6a380e5586ca..2564d60d8ea613664aacb4731e41961dbd20280d 100644 (file)
@@ -42,15 +42,13 @@ If a \fIqueue_id\fR of \fB-\fR is specified, the program reads
 queue IDs from standard input. For example, to delete all mail
 with exactly one recipient \fBuser@example.com\fR:
 .sp
+.nf
 mailq | tail +2 | grep -v '^ *(' | awk  \'BEGIN { RS = "" }
-.ti +4
-# $7=sender, $8=recipient1, $9=recipient2
-.ti +4
-{ if ($8 == "user@example.com" && $9 == "")
-.ti +10
-print $1 }
-.br
+    # $7=sender, $8=recipient1, $9=recipient2
+    { if ($8 == "user@example.com" && $9 == "")
+          print $1 }
 \' | tr -d '*!' | postsuper -d -
+.fi
 .sp
 Specify "\fB-d ALL\fR" to remove all messages; for example, specify
 "\fB-d ALL deferred\fR" to delete all mail in the \fBdeferred\fR queue.
index 6db6bf701f126b6ebff075783b3c6e03fe62c322..63485b9f5d34714bdfd37a0d0c3f84c24fa48a30 100644 (file)
@@ -365,20 +365,17 @@ tables, some systems use \fBdbm\fR.  Use the command
 "\fBpostconf -m\fR" to find out what lookup tables Postfix
 supports on your system.
 
-.na
 .nf
+.na
 /etc/postfix/main.cf:
-.in +4
-smtpd_client_restrictions =
-.in +4
-check_client_access hash:/etc/postfix/access
+    smtpd_client_restrictions =
+        check_client_access hash:/etc/postfix/access
 
-.in -8
 /etc/postfix/access:
-.in +4
-1.2.3   REJECT
-1.2.3.4 OK
-.in -4
+    1.2.3   REJECT
+    1.2.3.4 OK
+.fi
+.ad
 
 Execute the command "\fBpostmap /etc/postfix/access\fR" after
 editing the file.
index 05ca24b9049eb28cc074d780cedfd7839848e4dd..5ad9928f4b0659be9db58231025fd9e6df84b11e 100644 (file)
@@ -37,8 +37,9 @@ The format of the alias database input file is as follows:
 .IP \(bu
 An alias definition has the form
 .sp
-.ti +5
-\fIname\fR: \fIvalue1\fR, \fIvalue2\fR, \fI...\fR
+.nf
+     \fIname\fR: \fIvalue1\fR, \fIvalue2\fR, \fI...\fR
+.fi
 .IP \(bu
 Empty lines and whitespace-only lines are ignored, as
 are lines whose first non-whitespace character is a `#'.
index 25bbfda41f6b304aae687d16563e38a68af49c8b..a2a2a9dd93d5aeaa4b3a71658bbbbdeabee5f824 100644 (file)
@@ -40,8 +40,9 @@ edit the temporary file.
 To preview the results of $\fIname\fR expansions in the
 template text, use the command
 
-.ti +4
-\fBpostconf -b\fR \fItemporary_file\fR
+.nf
+    \fBpostconf -b\fR \fItemporary_file\fR
+.fi
 
 Errors in the template will be reported to the standard
 error stream and to the syslog daemon.
@@ -54,9 +55,10 @@ Once the result is satisfactory, copy the template to the
 Postfix configuration directory and specify in main.cf
 something like:
 
+.nf
 /etc/postfix/main.cf:
-.ti +4
     bounce_template_file = /etc/postfix/bounce.cf
+.fi
 .SH "TEMPLATE FILE FORMAT"
 .na
 .nf
@@ -76,32 +78,27 @@ only. You can change the word EOF, but you can't enclose
 it in quotes as with the shell or with Perl (\fItemplate_name\fB
 = <<'EOF'\fR). Here is an example:
 
-.in +4
 .nf
-.na
-# The failure template is used for undeliverable mail.
+    # The failure template is used for undeliverable mail.
 
-failure_template = <<EOF
-Charset: us-ascii
-From: MAILER-DAEMON (Mail Delivery System)
-Subject: Undelivered Mail Returned to Sender
-Postmaster-Subject: Postmaster Copy: Undelivered Mail
+    failure_template = <<EOF
+    Charset: us-ascii
+    From: MAILER-DAEMON (Mail Delivery System)
+    Subject: Undelivered Mail Returned to Sender
+    Postmaster-Subject: Postmaster Copy: Undelivered Mail
 
-This is the mail system at host $myhostname.
+    This is the mail system at host $myhostname.
 
-I'm sorry to have to inform you that your message could not
-be delivered to one or more recipients. It's attached below.
+    I'm sorry to have to inform you that your message could not
+    be delivered to one or more recipients. It's attached below.
 
-For further assistance, please send mail to postmaster.
+    For further assistance, please send mail to postmaster.
 
-If you do so, please include this problem report. You can
-delete your own text from the attached returned message.
+    If you do so, please include this problem report. You can
+    delete your own text from the attached returned message.
 
-.ti +12
-                   The mail system
-EOF
-.in -4
-.ad
+                       The mail system
+    EOF
 .fi
 .PP
 The usage and specification of bounce templates is
index 6f1083051ce880d7dcf9584c16eda7b24f169072..1bf8d53ebdd811f58a00c75c6a10c2f3cc3d1a5e 100644 (file)
@@ -113,8 +113,9 @@ Note: @\fIdomain\fR is a wild-card. When this form is applied
 to recipient addresses, the Postfix SMTP server accepts
 mail for any recipient in \fIdomain\fR, regardless of whether
 that recipient exists.  This may turn your mail system into
-a backscatter source that returns undeliverable spam to
-innocent people.
+a backscatter source: Postfix first accepts mail for
+non-existent recipients and then tries to return that mail
+as "undeliverable" to the often forged sender address.
 .SH "RESULT ADDRESS REWRITING"
 .na
 .nf
index 57661946554fba6efb6dddfa532638b8fff91fa9..8790e4725f73c0d9d4d635d7675e88ca4c124a46 100644 (file)
@@ -70,17 +70,16 @@ pattern is found that matches the search string.
 .SH "EXAMPLE SMTPD ACCESS MAP"
 .na
 .nf
+.nf
 /etc/postfix/main.cf:
-.ti +4
-smtpd_client_restrictions = ... cidr:/etc/postfix/client.cidr ...
+    smtpd_client_restrictions = ... cidr:/etc/postfix/client.cidr ...
 
 /etc/postfix/client.cidr:
-.in +4
-# Rule order matters. Put more specific whitelist entries
-# before more general blacklist entries.
-192.168.1.1             OK
-192.168.0.0/16          REJECT
-.in -4
+    # Rule order matters. Put more specific whitelist entries
+    # before more general blacklist entries.
+    192.168.1.1             OK
+    192.168.0.0/16          REJECT
+.fi
 .SH "SEE ALSO"
 .na
 .nf
index 32e310197fb6fa4037c988d5b00bb5c9d7279bf7..13b9dd0f0e5e310fdf728229f813f5f0aab6786b 100644 (file)
@@ -174,16 +174,12 @@ that the ISP supports "+" style address extensions).
 .na
 .nf
 /etc/postfix/main.cf:
-.in +4
     smtp_generic_maps = hash:/etc/postfix/generic
-.in -4
 
 /etc/postfix/generic:
-.in +4
     his@localdomain.local   hisaccount@hisisp.example
     her@localdomain.local   heraccount@herisp.example
     @localdomain.local      hisaccount+local@hisisp.example
-.in -4
 
 .ad
 .fi
index 0446aaa24db3a912dc7e9a09661700476856e7df..63d625376c526f75b4d0255f8b02658040a0a898 100644 (file)
@@ -8,17 +8,15 @@ Postfix built-in content inspection
 .SH "SYNOPSIS"
 .na
 .nf
+.nf
 \fBheader_checks = pcre:/etc/postfix/header_checks\fR
-.br
 \fBmime_header_checks = pcre:/etc/postfix/mime_header_checks\fR
-.br
 \fBnested_header_checks = pcre:/etc/postfix/nested_header_checks\fR
-.br
 \fBbody_checks = pcre:/etc/postfix/body_checks\fR
 .sp
 \fBpostmap -q "\fIstring\fB" pcre:/etc/postfix/\fIfilename\fR
-.br
 \fBpostmap -q - pcre:/etc/postfix/\fIfilename\fR <\fIinputfile\fR
+.fi
 .SH DESCRIPTION
 .ad
 .fi
@@ -66,6 +64,15 @@ message headers is treated as body content.
 Note: message headers are examined one logical header at a time,
 even when a message header spans multiple lines. Body lines are
 always examined one line at a time.
+.SH "COMPATIBILITY"
+.na
+.nf
+.ad
+.fi
+With Postfix version 2.2 and earlier specify "\fBpostmap
+-fq\fR" to query a table that contains case sensitive
+patterns. By default, regexp: and pcre: patterns are case
+insensitive.
 .SH "TABLE FORMAT"
 .na
 .nf
@@ -273,7 +280,7 @@ line at a time. A decision made for one line is not carried over
 to the next line.
 .IP \(bu
 If text in the message body is encoded
-(RFC 2045) then the rules have to specified for the encoded
+(RFC 2045) then the rules need to be specified for the encoded
 form.
 .IP \(bu
 Likewise, when message headers are encoded (RFC
@@ -330,14 +337,11 @@ Header pattern to block attachments with bad file name extensions.
 .na
 .nf
 /etc/postfix/main.cf:
-.ti +4
-header_checks = regexp:/etc/postfix/header_checks
+    header_checks = regexp:/etc/postfix/header_checks
 
 /etc/postfix/header_checks:
-.ti +4
-/^content-(type|disposition):.*name[[:space:]]*=.*\\.(exe|vbs)/
-.ti +8
-REJECT Bad attachment file name extension: $2
+    /^content-(type|disposition):.*name[[:space:]]*=.*\\.(exe|vbs)/
+        REJECT Bad attachment file name extension: $2
 
 .ad
 .fi
@@ -346,14 +350,11 @@ Body pattern to stop a specific HTML browser vulnerability exploit.
 .na
 .nf
 /etc/postfix/main.cf:
-.ti +4
-body_checks = regexp:/etc/postfix/body_checks
+    body_checks = regexp:/etc/postfix/body_checks
 
 /etc/postfix/body_checks:
-.ti +4
-/^<iframe src=(3D)?cid:.* height=(3D)?0 width=(3D)?0>$/
-.ti +8
-REJECT IFRAME vulnerability exploit
+    /^<iframe src=(3D)?cid:.* height=(3D)?0 width=(3D)?0>$/
+        REJECT IFRAME vulnerability exploit
 .SH "SEE ALSO"
 .na
 .nf
index d183e958689b30a4532feabc318dbb2a1ed71860..63e516b12154ae8bd4478c35de407bf3ec47bde2 100644 (file)
@@ -23,8 +23,9 @@ Alternatively, lookup tables can be specified as LDAP databases.
 In order to use LDAP lookups, define an LDAP source as a lookup
 table in main.cf, for example:
 
-.ti +4
-alias_maps = ldap:/etc/postfix/ldap-aliases.cf
+.nf
+    alias_maps = ldap:/etc/postfix/ldap-aliases.cf
+.fi
 
 The file /etc/postfix/ldap-aliases.cf has the same format as
 the Postfix main.cf file, and can specify the parameters
@@ -89,19 +90,17 @@ return the key itself.
 
 For example, NEVER do this in a map defining $mydestination:
 
-.in +4
-query_filter = domain=*
-.br
-result_attribute = domain
-.in -4
+.nf
+    query_filter = domain=*
+    result_attribute = domain
+.fi
 
 Do this instead:
 
-.in +4
-query_filter = domain=%s
-.br
-result_attribute = domain
-.in -4
+.nf
+    query_filter = domain=%s
+    result_attribute = domain
+.fi
 .SH "GENERAL LDAP PARAMETERS"
 .na
 .nf
@@ -114,8 +113,9 @@ strings.
 .IP "\fBserver_host (default: localhost)\fR"
 The name of the host running the LDAP server, e.g.
 
-.ti +4
-server_host = ldap.example.com
+.nf
+    server_host = ldap.example.com
+.fi
 
 Depending on the LDAP client library you're using, it should
 be possible to specify multiple servers here, with the library
@@ -123,41 +123,45 @@ trying them in order should the first one fail. It should also
 be possible to give each server in the list a different port
 (overriding \fBserver_port\fR below), by naming them like
 
-.ti +4
-server_host = ldap.example.com:1444
+.nf
+    server_host = ldap.example.com:1444
+.fi
 
 With OpenLDAP, a (list of) LDAP URLs can be used to specify both
 the hostname(s) and the port(s):
 
-.ti +4
-server_host = ldap://ldap.example.com:1444
-.ti +8
-        ldap://ldap2.example.com:1444
+.nf
+    server_host = ldap://ldap.example.com:1444
+                ldap://ldap2.example.com:1444
+.fi
 
 All LDAP URLs accepted by the OpenLDAP library are supported,
 including connections over UNIX domain sockets, and LDAP SSL
 (the last one provided that OpenLDAP was compiled with support
 for SSL):
 
-.ti +4
-server_host = ldapi://%2Fsome%2Fpath
-.ti +8
-        ldaps://ldap.example.com:636
+.nf
+    server_host = ldapi://%2Fsome%2Fpath
+                ldaps://ldap.example.com:636
+.fi
 .IP "\fBserver_port (default: 389)\fR"
 The port the LDAP server listens on, e.g.
 
-.ti +4
-server_port = 778
+.nf
+    server_port = 778
+.fi
 .IP "\fBtimeout (default: 10 seconds)\fR"
 The number of seconds a search can take before timing out, e.g.
 
-.ti +4
-timeout = 5
+.fi
+    timeout = 5
+.fi
 .IP "\fBsearch_base (No default; you must configure this)\fR"
 The RFC2253 base DN at which to conduct the search, e.g.
 
-.ti +4
-search_base = dc=your, dc=com
+.nf
+    search_base = dc=your, dc=com
+.fi
 .IP
 With Postfix 2.2 and later this parameter supports the
 following '%' expansions:
@@ -199,8 +203,9 @@ The RFC2254 filter used to search the directory, where \fB%s\fR
 is a substitute for the address Postfix is trying to resolve,
 e.g.
 
-.ti +4
-query_filter = (&(mail=%s)(paid_up=true))
+.nf
+    query_filter = (&(mail=%s)(paid_up=true))
+.fi
 
 This parameter supports the following '%' expansions:
 .RS
@@ -309,8 +314,9 @@ are eligible for lookup: 'user' lookups, bare domain lookups
 and "@domain" lookups are not performed. This can significantly
 reduce the query load on the LDAP server.
 
-.ti +4
-domain = postfix.org, hash:/etc/postfix/searchdomains
+.nf
+    domain = postfix.org, hash:/etc/postfix/searchdomains
+.fi
 
 It is best not to use LDAP to store the domains eligible
 for LDAP lookups.
@@ -323,15 +329,17 @@ The attribute(s) Postfix will read from any directory
 entries returned by the lookup, to be resolved to an email
 address.
 
-.ti +4
-result_attribute = mailbox, maildrop
+.nf
+    result_attribute = mailbox, maildrop
+.fi
 .IP "\fBspecial_result_attribute (default: empty)\fR"
 The attribute(s) of directory entries that can contain DNs
 or URLs. If found, a recursive subsequent search is done
 using their values.
 
-.ti +4
-special_result_attribute = memberdn
+.nf
+    special_result_attribute = memberdn
+.fi
 
 DN recursion retrieves the same result_attributes as the
 main query, including the special attributes for further
@@ -349,8 +357,9 @@ attribute on selected groups to route the group to a specific host,
 where the group is expanded, possibly via mailing-list manager or
 other special processing.
 
-.ti +4
-terminal_result_attribute = maildrop
+.nf
+    terminal_result_attribute = maildrop
+.fi
 
 This feature is available with Postfix 2.4 or later.
 .IP "\fBleaf_result_attribute (default: empty)\fR"
@@ -370,15 +379,12 @@ rfc822 addresses, then the string attributes go in "result_attribute".
 The attributes that represent the email addresses of objects
 referenced via a DN (or LDAP URI) go in "leaf_result_attribute".
 
-.in +4
-result_attribute = memberaddr
-.br
-special_result_attribute = memberdn
-.br
-terminal_result_attribute = maildrop
-.br
-leaf_result_attribute = mail
-.in -4
+.nf
+    result_attribute = memberaddr
+    special_result_attribute = memberdn
+    terminal_result_attribute = maildrop
+    leaf_result_attribute = mail
+.fi
 
 This feature is available with Postfix 2.4 or later.
 .IP "\fBscope (default: sub)\fR"
@@ -390,8 +396,9 @@ Whether or not to bind to the LDAP server. Newer LDAP
 implementations don't require clients to bind, which saves
 time. Example:
 
-.ti +4
-bind = no
+.nf
+    bind = no
+.fi
 
 If you do need to bind, you might consider configuring
 Postfix to connect to the local machine on a port that's
@@ -403,8 +410,9 @@ the clear.
 .IP "\fBbind_dn (default: empty)\fR"
 If you do have to bind, do it with this distinguished name. Example:
 
-.ti +4
-bind_dn = uid=postfix, dc=your, dc=com
+.nf
+    bind_dn = uid=postfix, dc=your, dc=com
+.fi
 .IP "\fBbind_pw (default: empty)\fR"
 The password for the distinguished name above. If you have
 to use this, you probably want to make the map configuration
@@ -415,8 +423,9 @@ password. This is because main.cf needs to be world readable
 to allow local accounts to submit mail via the sendmail
 command. Example:
 
-.ti +4
-bind_pw = postfixpw
+.nf
+    bind_pw = postfixpw
+.fi
 .IP "\fBcache (IGNORED with a warning)\fR"
 .IP "\fBcache_expiry (IGNORED with a warning)\fR"
 .IP "\fBcache_size (IGNORED with a warning)\fR"
@@ -485,19 +494,22 @@ issue the STARTTLS command.
 LDAP SSL service can be requested by using a LDAP SSL URL
 in the server_host parameter:
 
-.ti +4
-server_host = ldaps://ldap.example.com:636
+.nf
+    server_host = ldaps://ldap.example.com:636
+.fi
 
 STARTTLS can be turned on with the start_tls parameter:
 
-.ti +4
-start_tls = yes
+.nf
+    start_tls = yes
+.fi
 
 Both forms require LDAP protocol version 3, which has to be set
 explicitly with:
 
-.ti +4
-version = 3
+.nf
+    version = 3
+.fi
 
 If any of the Postfix programs querying the map is configured in
 master.cf to run chrooted, all the certificates and keys involved
@@ -550,18 +562,17 @@ Here's a basic example for using LDAP to look up local(8)
 aliases.
 Assume that in main.cf, you have:
 
-.ti +4
-alias_maps = hash:/etc/aliases,
-.ti +8
-ldap:/etc/postfix/ldap-aliases.cf
+.nf
+    alias_maps = hash:/etc/aliases,
+            ldap:/etc/postfix/ldap-aliases.cf
+.fi
 
 and in ldap:/etc/postfix/ldap-aliases.cf you have:
 
-.in +4
-server_host = ldap.example.com
-.br
-search_base = dc=example, dc=com
-.in -4
+.nf
+    server_host = ldap.example.com
+    search_base = dc=example, dc=com
+.fi
 
 Upon receiving mail for a local address "ldapuser" that
 isn't found in the /etc/aliases database, Postfix will
index 90d71bd7581d46ee543ef1c8bdae91554fad1b6c..3a98b2d47538f7273e904a3c2cd4fab1194a1bd2 100644 (file)
@@ -21,8 +21,9 @@ rewriting or mail routing. These tables are usually in
 Alternatively, lookup tables can be specified as MySQL databases.
 In order to use MySQL lookups, define a MySQL source as a lookup
 table in main.cf, for example:
-.ti +4
-alias_maps = mysql:/etc/mysql-aliases.cf
+.nf
+    alias_maps = mysql:/etc/mysql-aliases.cf
+.fi
 
 The file /etc/postfix/mysql-aliases.cf has the same format as
 the Postfix main.cf file, and can specify the parameters
@@ -56,14 +57,12 @@ query constructed from the \fBselect_field\fR, \fBtable\fR,
 The old interface will be gradually phased out. To migrate to
 the new interface set:
 
-.ti +4
-\fBquery\fR = SELECT [\fIselect_field\fR]
-.ti +8
-FROM [\fItable\fR]
-.ti +8
-WHERE [\fIwhere_field\fR] = '%s'
-.ti +12
-[\fIadditional_conditions\fR]
+.nf
+    \fBquery\fR = SELECT [\fIselect_field\fR]
+        FROM [\fItable\fR]
+        WHERE [\fIwhere_field\fR] = '%s'
+            [\fIadditional_conditions\fR]
+.fi
 
 Insert the value, not the name, of each legacy parameter. Note
 that the \fBadditional_conditions\fR parameter is optional
@@ -97,10 +96,10 @@ return the key itself or a constant value.
 The hosts that Postfix will try to connect to and query from.
 Specify \fIunix:\fR for UNIX domain sockets, \fIinet:\fR for TCP
 connections (default).  Example:
-.ti +4
-hosts = host1.some.domain host2.some.domain
-.ti +4
-hosts = unix:/file/name
+.nf
+    hosts = host1.some.domain host2.some.domain
+    hosts = unix:/file/name
+.fi
 
 The hosts are tried in random order, with all connections over
 UNIX domain sockets being tried before those over TCP.  The
@@ -112,26 +111,28 @@ NOTE: if you specify localhost as a hostname (even if you
 prefix it with \fIinet:\fR), MySQL will connect to the default
 UNIX domain socket.  In order to instruct MySQL to connect to
 localhost over TCP you have to specify
-.ti +4
-hosts = 127.0.0.1
+.nf
+    hosts = 127.0.0.1
+.fi
 .IP "\fBuser, password\fR"
 The user name and password to log into the mysql server.
 Example:
-.in +4
-user = someone
-.br
-password = some_password
-.in -4
+.nf
+    user = someone
+    password = some_password
+.fi
 .IP "\fBdbname\fR"
 The database name on the servers. Example:
-.ti +4
-dbname = customer_database
+.nf
+    dbname = customer_database
+.fi
 .IP "\fBquery\fR"
 The SQL query template used to search the database, where \fB%s\fR
 is a substitute for the address Postfix is trying to resolve,
 e.g.
-.ti +4
-query = SELECT replacement FROM aliases WHERE mailbox = '%s'
+.nf
+    query = SELECT replacement FROM aliases WHERE mailbox = '%s'
+.fi
 
 This parameter supports the following '%' expansions:
 .RS
@@ -178,14 +179,12 @@ the SQL query was built from the separate parameters:
 \fBadditional_conditions\fR. The mapping from the old parameters
 to the equivalent query is:
 
-.ti +4
-SELECT [\fBselect_field\fR]
-.ti +4
-FROM [\fBtable\fR]
-.ti +4
-WHERE [\fBwhere_field\fR] = '%s'
-.ti +10
-[\fBadditional_conditions\fR]
+.nf
+    SELECT [\fBselect_field\fR]
+    FROM [\fBtable\fR]
+    WHERE [\fBwhere_field\fR] = '%s'
+          [\fBadditional_conditions\fR]
+.fi
 
 The '%s' in the \fBWHERE\fR clause expands to the escaped search string.
 With Postfix 2.2 these legacy parameters are used if the \fBquery\fR
@@ -241,8 +240,9 @@ keys with a *non-empty* localpart and a matching domain
 are eligible for lookup: 'user' lookups, bare domain lookups
 and "@domain" lookups are not performed. This can significantly
 reduce the query load on the MySQL server.
-.ti +4
-domain = postfix.org, hash:/etc/postfix/searchdomains
+.nf
+    domain = postfix.org, hash:/etc/postfix/searchdomains
+.fi
 
 It is best not to use SQL to store the domains eligible
 for SQL lookups.
@@ -262,14 +262,12 @@ values.
 The following parameters can be used to fill in a
 SELECT template statement of the form:
 
-.ti +4
-SELECT [\fBselect_field\fR]
-.ti +4
-FROM [\fBtable\fR]
-.ti +4
-WHERE [\fBwhere_field\fR] = '%s'
-.ti +10
-[\fBadditional_conditions\fR]
+.nf
+    SELECT [\fBselect_field\fR]
+    FROM [\fBtable\fR]
+    WHERE [\fBwhere_field\fR] = '%s'
+          [\fBadditional_conditions\fR]
+.fi
 
 The specifier %s is replaced by the search string, and is
 escaped so if it contains single quotes or other odd characters,
@@ -282,20 +280,24 @@ are ignored. Please migrate to the new interface as the legacy
 interface may be removed in a future release.
 .IP "\fBselect_field\fR"
 The SQL "select" parameter. Example:
-.ti +4
-\fBselect_field\fR = forw_addr
+.nf
+    \fBselect_field\fR = forw_addr
+.fi
 .IP "\fBtable\fR"
 The SQL "select .. from" table name. Example:
-.ti +4
-\fBtable\fR = mxaliases
+.nf
+    \fBtable\fR = mxaliases
+.fi
 .IP "\fBwhere_field\fR
 The SQL "select .. where" parameter. Example:
-.ti +4
-\fBwhere_field\fR = alias
+.nf
+    \fBwhere_field\fR = alias
+.fi
 .IP "\fBadditional_conditions\fR
 Additional conditions to the SQL query. Example:
-.ti +4
-\fBadditional_conditions\fR = AND status = 'paid'
+.nf
+    \fBadditional_conditions\fR = AND status = 'paid'
+.fi
 .SH "SEE ALSO"
 .na
 .nf
index bddb669f2984bab2f3b7e72c6fb36d8a7ba7320d..d4dd670a1971426919924032ce7001a2481974bc 100644 (file)
@@ -32,8 +32,9 @@ command as described in the SYNOPSIS above.
 Most of the NIS+ query is specified via the NIS+ map name. The
 general format of a Postfix NIS+ map name is as follows:
 
-.ti +4
-\fBnisplus:[\fIname\fB=%s];\fIname.name.name\fB.:\fIcolumn\fR
+.fi
+    \fBnisplus:[\fIname\fB=%s];\fIname.name.name\fB.:\fIcolumn\fR
+.fi
 
 Postfix NIS+ map names differ from what one normally
 would use with commands such as \fBniscat\fR:
@@ -54,13 +55,13 @@ no ":\fIcolumn\fR" is specified the first column (1) is used.
 .SH "EXAMPLE"
 .na
 .nf
+.ad
+.fi
 A NIS+ aliases map might be queried as follows:
 
-.ti +4
-alias_maps = dbm:/etc/mail/aliases,
-.ti +2
+.nf
+    alias_maps = dbm:/etc/mail/aliases,
         nisplus:[alias=%s];mail_aliases.org_dir.$mydomain.:1
-.ad
 .fi
 
 This queries the local aliases file before the NIS+ file.
index 9cb05a0a14023704fa68cc2c6bf6d468b20587c3..8cb6abf5d36cbb7cb6f82f6d5b5b8063ca650215 100644 (file)
@@ -15,8 +15,8 @@ format of Postfix PCRE tables
 .ad
 .fi
 The Postfix mail system uses optional tables for address
-rewriting or mail routing. These tables are usually in
-\fBdbm\fR or \fBdb\fR format.
+rewriting, mail routing, or access control. These tables
+are usually in \fBdbm\fR or \fBdb\fR format.
 
 Alternatively, lookup tables can be specified in Perl Compatible
 Regular Expression form. In this case, each input is compared
index ccf886457a7bf54f7b035f9e71e9c711a1b29f45..cfe6ce41b12427d891aed64f24484a7d2e40dbf8 100644 (file)
@@ -21,8 +21,9 @@ rewriting or mail routing. These tables are usually in
 Alternatively, lookup tables can be specified as PostgreSQL
 databases.  In order to use PostgreSQL lookups, define a
 PostgreSQL source as a lookup table in main.cf, for example:
-.ti +4
-alias_maps = pgsql:/etc/pgsql-aliases.cf
+.nf
+    alias_maps = pgsql:/etc/pgsql-aliases.cf
+.fi
 
 The file /etc/postfix/pgsql-aliases.cf has the same format as
 the Postfix main.cf file, and can specify the parameters
@@ -60,19 +61,18 @@ phased out, \fBselect_function\fR, \fBselect_field\fR, \fBtable\fR,
 \fBwhere_field\fR and \fBadditional_conditions\fR parameters. To
 migrate to the new interface set:
 
-.ti +4
-\fBquery\fR = SELECT \fIselect_function\fR('%s')
+.nf
+    \fBquery\fR = SELECT \fIselect_function\fR('%s')
+.fi
 
 or in the absence of \fBselection_function\fR, the lower precedence:
 
-.ti +4
-\fBquery\fR = SELECT \fIselect_field\fR
-.ti +8
-FROM \fItable\fR
-.ti +8
-WHERE \fIwhere_field\fR = '%s'
-.ti +12
-\fIadditional_conditions\fR
+.nf
+    \fBquery\fR = SELECT \fIselect_field\fR
+        FROM \fItable\fR
+        WHERE \fIwhere_field\fR = '%s'
+            \fIadditional_conditions\fR
+.fi
 
 Use the value, not the name, of each legacy parameter. Note
 that the \fBadditional_conditions\fR parameter is optional
@@ -106,10 +106,10 @@ return the key itself or a constant value.
 The hosts that Postfix will try to connect to and query from.
 Specify \fIunix:\fR for UNIX-domain sockets, \fIinet:\fR for TCP
 connections (default).  Example:
-.ti +4
-hosts = host1.some.domain host2.some.domain
-.ti +4
-hosts = unix:/file/name
+.nf
+    hosts = host1.some.domain host2.some.domain
+    hosts = unix:/file/name
+.fi
 
 The hosts are tried in random order, with all connections over
 UNIX domain sockets being tried before those over TCP.  The
@@ -124,21 +124,22 @@ connection otherwise.
 .IP "\fBuser, password\fR"
 The user name and password to log into the pgsql server.
 Example:
-.in +4
-user = someone
-.br
-password = some_password
-.in -4
+.nf
+    user = someone
+    password = some_password
+.fi
 .IP "\fBdbname\fR"
 The database name on the servers. Example:
-.ti +4
-dbname = customer_database
+.nf
+    dbname = customer_database
+.fi
 .IP "\fBquery\fR"
 The SQL query template used to search the database, where \fB%s\fR
 is a substitute for the address Postfix is trying to resolve,
 e.g.
-.ti +4
-query = SELECT replacement FROM aliases WHERE mailbox = '%s'
+.nf
+    query = SELECT replacement FROM aliases WHERE mailbox = '%s'
+.fi
 
 This parameter supports the following '%' expansions:
 .RS
@@ -242,8 +243,9 @@ keys with a *non-empty* localpart and a matching domain
 are eligible for lookup: 'user' lookups, bare domain lookups
 and "@domain" lookups are not performed. This can significantly
 reduce the query load on the PostgreSQL server.
-.ti +4
-domain = postfix.org, hash:/etc/postfix/searchdomains
+.nf
+    domain = postfix.org, hash:/etc/postfix/searchdomains
+.fi
 
 It is best not to use SQL to store the domains eligible
 for SQL lookups.
@@ -263,12 +265,14 @@ values.
 Pre-Postfix 2.2 legacy interfaces:
 .IP "\fBselect_function\fR"
 This parameter specifies a database function name. Example:
-.ti +4
-select_function = my_lookup_user_alias
+.nf
+    select_function = my_lookup_user_alias
+.fi
 
 This is equivalent to:
-.ti +4
-query = SELECT my_lookup_user_alias('%s')
+.nf
+    query = SELECT my_lookup_user_alias('%s')
+.fi
 
 This parameter overrides the legacy table-related fields (described
 below). With Postfix versions prior to 2.2, it also overrides the
@@ -281,14 +285,12 @@ The following parameters (with lower precedence than the
 \fBselect_function\fR interface described above) can be used to
 build the SQL select statement as follows:
 
-.ti +4
-SELECT [\fBselect_field\fR]
-.ti +4
-FROM [\fBtable\fR]
-.ti +4
-WHERE [\fBwhere_field\fR] = '%s'
-.ti +10
-[\fBadditional_conditions\fR]
+.nf
+    SELECT [\fBselect_field\fR]
+    FROM [\fBtable\fR]
+    WHERE [\fBwhere_field\fR] = '%s'
+          [\fBadditional_conditions\fR]
+.fi
 
 The specifier %s is replaced with each lookup by the lookup key
 and is escaped so if it contains single quotes or other odd
@@ -302,20 +304,24 @@ are defined, these parameters are ignored. Please migrate to the new
 \fBquery\fR interface as this interface is slated to be phased out.
 .IP "\fBselect_field\fR"
 The SQL "select" parameter. Example:
-.ti +4
-\fBselect_field\fR = forw_addr
+.nf
+    \fBselect_field\fR = forw_addr
+.fi
 .IP "\fBtable\fR"
 The SQL "select .. from" table name. Example:
-.ti +4
-\fBtable\fR = mxaliases
+.nf
+    \fBtable\fR = mxaliases
+.fi
 .IP "\fBwhere_field\fR
 The SQL "select .. where" parameter. Example:
-.ti +4
-\fBwhere_field\fR = alias
+.nf
+    \fBwhere_field\fR = alias
+.fi
 .IP "\fBadditional_conditions\fR
 Additional conditions to the SQL query. Example:
-.ti +4
-\fBadditional_conditions\fR = AND status = 'paid'
+.nf
+    \fBadditional_conditions\fR = AND status = 'paid'
+.fi
 .SH "SEE ALSO"
 .na
 .nf
index a0809107143e502fa98f4d8e77609619916311c6..5113c1a1fde5956df41d1e4ac6b962c7ba7cbefd 100644 (file)
@@ -15,8 +15,8 @@ format of Postfix regular expression tables
 .ad
 .fi
 The Postfix mail system uses optional tables for address
-rewriting or mail routing. These tables are usually in
-\fBdbm\fR or \fBdb\fR format.
+rewriting, mail routing, or access control. These tables
+are usually in \fBdbm\fR or \fBdb\fR format.
 
 Alternatively, lookup tables can be specified in POSIX regular
 expression form. In this case, each input is compared against a
index ebfe3ee4a20f0a9d5ebd83c9c74ee3c57daf1a72..66798dd0522da58cbf0dc493aefc880aacd806aa 100644 (file)
@@ -49,9 +49,11 @@ lookup fields can match both upper and lower case.
 The input format for the \fBpostmap\fR(1) command is as follows:
 .IP \(bu
 An entry has one of the following form:
-.ti +5
-\fIpattern      new_location\fR
-.br
+
+.nf
+     \fIpattern      new_location\fR
+.fi
+
 Where \fInew_location\fR specifies contact information such as
 an email address, or perhaps a street address or telephone number.
 .IP \(bu
index 92a30338b4c87f8cf89131b138df5fe126a677fd..76bb6d2fd60d36c913e55ad3291123beeff318eb 100644 (file)
@@ -17,7 +17,10 @@ Postfix transport table format
 .ad
 .fi
 The optional \fBtransport\fR(5) table specifies a mapping from email
-addresses to message delivery transports and next-hop hosts. The
+addresses to message delivery transports and next-hop destinations.
+Message delivery transports such as \fBlocal\fR or \fBsmtp\fR
+are defined in the \fBmaster.cf\fR file, and next-hop
+destinations are typically hosts or domain names. The
 table is searched by the \fBtrivial-rewrite\fR(8) daemon.
 
 This mapping overrides the default \fItransport\fR:\fInexthop\fR
@@ -165,20 +168,19 @@ internal destinations (do not change the delivery transport or
 the nexthop information) and specify a wildcard for all other
 destinations.
 
-.ti +5
-\fB\&my.domain    :\fR
-.ti +5
-\fB\&.my.domain   :\fR
-.ti +5
-\fB*         smtp:outbound-relay.my.domain\fR
+.nf
+     \fB\&my.domain    :\fR
+     \fB\&.my.domain   :\fR
+     \fB*            smtp:outbound-relay.my.domain\fR
+.fi
 
 In order to send mail for \fBexample.com\fR and its subdomains
 via the \fBuucp\fR transport to the UUCP host named \fBexample\fR:
 
-.ti +5
-\fBexample.com      uucp:example\fR
-.ti +5
-\fB\&.example.com     uucp:example\fR
+.nf
+     \fBexample.com      uucp:example\fR
+     \fB\&.example.com     uucp:example\fR
+.fi
 
 When no nexthop host name is specified, the destination domain
 name is used instead. For example, the following directs mail for
@@ -186,18 +188,19 @@ name is used instead. For example, the following directs mail for
 exchanger for \fBexample.com\fR.  The \fBslow\fR transport could be
 configured to run at most one delivery process at a time:
 
-.ti +5
-\fBexample.com      slow:\fR
+.nf
+     \fBexample.com      slow:\fR
+.fi
 
 When no transport is specified, Postfix uses the transport that
 matches the address domain class (see DESCRIPTION
 above).  The following sends all mail for \fBexample.com\fR and its
 subdomains to host \fBgateway.example.com\fR:
 
-.ti +5
-\fBexample.com      :[gateway.example.com]\fR
-.ti +5
-\fB\&.example.com     :[gateway.example.com]\fR
+.nf
+     \fBexample.com      :[gateway.example.com]\fR
+     \fB\&.example.com     :[gateway.example.com]\fR
+.fi
 
 In the above example, the [] suppress MX lookups.
 This prevents mail routing loops when your machine is primary MX
@@ -206,8 +209,9 @@ host for \fBexample.com\fR.
 In the case of delivery via SMTP, one may specify
 \fIhostname\fR:\fIservice\fR instead of just a host:
 
-.ti +5
-\fBexample.com      smtp:bar.example:2025\fR
+.nf
+     \fBexample.com      smtp:bar.example:2025\fR
+.fi
 
 This directs mail for \fIuser\fR@\fBexample.com\fR to host \fBbar.example\fR
 port \fB2025\fR. Instead of a numerical port a symbolic name may be
@@ -215,8 +219,9 @@ used. Specify [] around the hostname if MX lookups must be disabled.
 
 The error mailer can be used to bounce mail:
 
-.ti +5
-\fB\&.example.com     error:mail for *.example.com is not deliverable\fR
+.nf
+     \fB\&.example.com     error:mail for *.example.com is not deliverable\fR
+.fi
 
 This causes all mail for \fIuser\fR@\fIanything\fB.example.com\fR
 to be bounced.
@@ -238,9 +243,10 @@ nor is \fIuser+foo@domain\fR looked up as \fIuser@domain\fR.
 Patterns are applied in the order as specified in the table, until a
 pattern is found that matches the search string.
 
-Results are the same as with indexed file lookups, with
-the additional feature that parenthesized substrings from the
-pattern can be interpolated as \fB$1\fR, \fB$2\fR and so on.
+The \fBtrivial-rewrite\fR(8) server disallows regular
+expression substitution of $1 etc. in regular expression
+lookup tables, because that could open a security hole
+(Postfix version 2.3 and later).
 .SH "TCP-BASED TABLES"
 .na
 .nf
index 5c3cb1da2cd95140635e4e6a677b9c9df1b57291..da139f8a1d92bc7b6655918ba162125b7da28e20 100644 (file)
@@ -108,8 +108,9 @@ Note: @\fIdomain\fR is a wild-card. With this form, the
 Postfix SMTP server accepts
 mail for any recipient in \fIdomain\fR, regardless of whether
 that recipient exists.  This may turn your mail system into
-a backscatter source that returns undeliverable spam to
-innocent people.
+a backscatter source: Postfix first accepts mail for
+non-existent recipients and then tries to return that mail
+as "undeliverable" to the often forged sender address.
 .SH "RESULT ADDRESS REWRITING"
 .na
 .nf
@@ -162,24 +163,20 @@ visible in a virtual alias domain. In particular, local
 
 Support for a virtual alias domain looks like:
 
+.nf
 /etc/postfix/main.cf:
-.in +4
-virtual_alias_maps = hash:/etc/postfix/virtual
+    virtual_alias_maps = hash:/etc/postfix/virtual
+.fi
 
 Note: some systems use \fBdbm\fR databases instead of \fBhash\fR.
 See the output from "\fBpostconf -m\fR" for available database types.
 
-.ti -4
-/etc/postfix/virtual:
 .nf
-.na
-\fIvirtual-alias.domain anything\fR (right-hand content does not matter)
-\fIpostmaster@virtual-alias.domain      postmaster\fR
-\fIuser1@virtual-alias.domain   address1\fR
-\fIuser2@virtual-alias.domain   address2, address3\fR
-.fi
-.in -4
-.ad
+/etc/postfix/virtual:
+    \fIvirtual-alias.domain     anything\fR (right-hand content does not matter)
+    \fIpostmaster@virtual-alias.domain  postmaster\fR
+    \fIuser1@virtual-alias.domain       address1\fR
+    \fIuser2@virtual-alias.domain       address2, address3\fR
 .fi
 .sp
 The \fIvirtual-alias.domain anything\fR entry is required for a
index ba10373e6323881f2705100e9967beaa010138dc..c356106371cfa58794df99d270224ddbd147d34d 100644 (file)
@@ -31,39 +31,36 @@ not care.
 .fi
 To register a new connection send the following request to
 the \fBanvil\fR(8) server:
-.PP
-.in +4
-\fBrequest=connect\fR
-.br
-\fBident=\fIstring\fR
-.in
-.PP
+
+.nf
+    \fBrequest=connect\fR
+    \fBident=\fIstring\fR
+.fi
+
 The \fBanvil\fR(8) server answers with the number of
 simultaneous connections and the number of connections per
 unit time for the (service, client) combination specified
 with \fBident\fR:
-.PP
-.in +4
-\fBstatus=0\fR
-.br
-\fBcount=\fInumber\fR
-.br
-\fBrate=\fInumber\fR
-.in
-.PP
+
+.nf
+    \fBstatus=0\fR
+    \fBcount=\fInumber\fR
+    \fBrate=\fInumber\fR
+.fi
+
 To register a disconnect event send the following request
 to the \fBanvil\fR(8) server:
-.PP
-.in +4
-\fBrequest=disconnect\fR
-.br
-\fBident=\fIstring\fR
-.in
-.PP
+
+.nf
+    \fBrequest=disconnect\fR
+    \fBident=\fIstring\fR
+.fi
+
 The \fBanvil\fR(8) server replies with:
-.PP
-.ti +4
-\fBstatus=0\fR
+
+.nf
+    \fBstatus=0\fR
+.fi
 .SH "MESSAGE RATE CONTROL"
 .na
 .nf
@@ -71,22 +68,20 @@ The \fBanvil\fR(8) server replies with:
 .fi
 To register a message delivery request send the following
 request to the \fBanvil\fR(8) server:
-.PP
-.in +4
-\fBrequest=message\fR
-.br
-\fBident=\fIstring\fR
-.in
-.PP
+
+.nf
+    \fBrequest=message\fR
+    \fBident=\fIstring\fR
+.fi
+
 The \fBanvil\fR(8) server answers with the number of message
 delivery requests per unit time for the (service, client)
 combination specified with \fBident\fR:
-.PP
-.in +4
-\fBstatus=0\fR
-.br
-\fBrate=\fInumber\fR
-.in
+
+.nf
+    \fBstatus=0\fR
+    \fBrate=\fInumber\fR
+.fi
 .SH "RECIPIENT RATE CONTROL"
 .na
 .nf
@@ -94,22 +89,20 @@ combination specified with \fBident\fR:
 .fi
 To register a recipient request send the following request
 to the \fBanvil\fR(8) server:
-.PP
-.in +4
-\fBrequest=recipient\fR
-.br
-\fBident=\fIstring\fR
-.in
-.PP
+
+.nf
+    \fBrequest=recipient\fR
+    \fBident=\fIstring\fR
+.fi
+
 The \fBanvil\fR(8) server answers with the number of recipient
 addresses per unit time for the (service, client) combination
 specified with \fBident\fR:
-.PP
-.in +4
-\fBstatus=0\fR
-.br
-\fBrate=\fInumber\fR
-.in
+
+.nf
+    \fBstatus=0\fR
+    \fBrate=\fInumber\fR
+.fi
 .SH "TLS SESSION NEGOTIATION RATE CONTROL"
 .na
 .nf
@@ -120,41 +113,37 @@ Postfix 2.3 and later.
 
 To register a request for a new (i.e. not cached) TLS session
 send the following request to the \fBanvil\fR(8) server:
-.PP
-.in +4
-\fBrequest=newtls\fR
-.br
-\fBident=\fIstring\fR
-.in
-.PP
+
+.nf
+    \fBrequest=newtls\fR
+    \fBident=\fIstring\fR
+.fi
+
 The \fBanvil\fR(8) server answers with the number of new
 TLS session requests per unit time for the (service, client)
 combination specified with \fBident\fR:
-.PP
-.in +4
-\fBstatus=0\fR
-.br
-\fBrate=\fInumber\fR
-.in
-.PP
+
+.nf
+    \fBstatus=0\fR
+    \fBrate=\fInumber\fR
+.fi
+
 To retrieve new TLS session request rate information without
 updating the counter information, send:
-.PP
-.in +4
-\fBrequest=newtls_report\fR
-.br
-\fBident=\fIstring\fR
-.in
-.PP
+
+.nf
+    \fBrequest=newtls_report\fR
+    \fBident=\fIstring\fR
+.fi
+
 The \fBanvil\fR(8) server answers with the number of new
 TLS session requests per unit time for the (service, client)
 combination specified with \fBident\fR:
-.PP
-.in +4
-\fBstatus=0\fR
-.br
-\fBrate=\fInumber\fR
-.in
+
+.nf
+    \fBstatus=0\fR
+    \fBrate=\fInumber\fR
+.fi
 .SH "SECURITY"
 .na
 .nf
index e8e7747c29424a78267730a67df2517c56c7d3ce..4c27e7bb017f007ba255b9e901e13579600e973d 100644 (file)
@@ -37,9 +37,10 @@ or fax machines.
 
 To prevent Postfix from sending multiple recipients per delivery
 request, specify
-
-.ti +4
-\fItransport\fB_destination_recipient_limit = 1\fR
+.sp
+.nf
+    \fItransport\fB_destination_recipient_limit = 1\fR
+.fi
 
 in the Postfix \fBmain.cf\fR file, where \fItransport\fR
 is the name in the first column of the Postfix \fBmaster.cf\fR
@@ -145,17 +146,19 @@ Postfix. The empty sender address is not affected by the
 Caution: a null sender address is easily mis-parsed by
 naive software. For example, when the \fBpipe\fR(8) daemon
 executes a command such as:
-
-.ti +4
-command -f$sender -- $recipient (\fIbad\fR)
-
+.sp
+.nf
+    command -f$sender -- $recipient (\fIbad\fR)
+.fi
+.IP
 the command will mis-parse the -f option value when the
 sender address is a null string.  For correct parsing,
 specify \fB$sender\fR as an argument by itself:
-
-.ti +4
-command -f $sender -- $recipient (\fIgood\fR)
-
+.sp
+.nf
+    command -f $sender -- $recipient (\fIgood\fR)
+.fi
+.IP
 This feature is available with Postfix 2.3 and later.
 .IP "\fBsize\fR=\fIsize_limit\fR (optional)"
 Messages greater in size than this limit (in bytes) will
index 975e230a3ae84aa8e61afa82ed14bb186b507a4c..3e31515c51f5ad09a1a6aff0328a865f7b67873b 100644 (file)
@@ -22,18 +22,20 @@ reject mail for non-existent local addresses, but it is not
 practical to maintain a copy of the passwd file in the chroot
 jail.  The solution:
 .sp
+.nf
 local_recipient_maps =
-.ti +4
-proxy:unix:passwd.byname $alias_maps
+    proxy:unix:passwd.byname $alias_maps
+.fi
 .IP \(bu
 To consolidate the number of open lookup tables by sharing
 one open table among multiple processes. For example, making
 mysql connections from every Postfix daemon process results
 in "too many connections" errors. The solution:
 .sp
+.nf
 virtual_alias_maps =
-.ti +4
-proxy:mysql:/etc/postfix/virtual_alias.cf
+    proxy:mysql:/etc/postfix/virtual_alias.cf
+.fi
 .sp
 The total number of connections is limited by the number of
 proxymap server processes.
index 9cf898111409fc93eba8219a5eeb303516235895..b45ac26d96c7491a47e5da6c9ea63bc63f77eb28 100644 (file)
@@ -34,8 +34,9 @@ address as described under TABLE SEARCH ORDER below.
 
 The mailbox pathname is constructed as follows:
 
-.ti +2
-\fB$virtual_mailbox_base/$virtual_mailbox_maps(\fIrecipient\fB)\fR
+.nf
+  \fB$virtual_mailbox_base/$virtual_mailbox_maps(\fIrecipient\fB)\fR
+.fi
 
 where \fIrecipient\fR is the full recipient address.
 .SH "UNIX MAILBOX FORMAT"
index 6fa43d9803e6e1f8c33e65e2460009c7eed35572..107873d9c027066edaab0c81c98214223a62ac13 100644 (file)
@@ -3,5 +3,5 @@
 for file
 do
     echo ==== $file ====
-    deroff $file | spell
-done | fgrep -vf proto/stop
+    deroff $file | spell | fgrep -vf proto/stop
+done
index c93add454dfc48844a709df82d3013191b500bf8..376d896cf54ce9f002342bdad34e96960df53c44 100644 (file)
@@ -21,7 +21,10 @@ Backscatter Howto</h1>
 <h2>Overview </h2>
 
 This document describes features that require Postfix version 2.0
-or later.
+or later.  The examples use Perl Compatible Regular Expressions
+(Postfix pcre: tables), but also provide a translation to POSIX
+regular expressions (Postfix regexp: tables). PCRE is preferred
+primarily because the implementation is often faster.</p>
 
 <p> Topics covered in this document: </p>
 
@@ -174,8 +177,8 @@ patterns like this: </p>
 <blockquote>
 <pre>
 /etc/postfix/main.cf:
-    header_checks = regexp:/etc/postfix/header_checks
-    body_checks = regexp:/etc/postfix/body_checks
+    header_checks = pcre:/etc/postfix/header_checks
+    body_checks = pcre:/etc/postfix/body_checks
 
 /etc/postfix/header_checks:
     if /^Received:/
@@ -183,7 +186,7 @@ patterns like this: </p>
         reject forged client name in Received: header: $1
     /^Received: +from +[^ ]+ +\(([^ ]+ +[he]+lo=|[he]+lo +)(porcupine\.org)\)/
         reject forged client name in Received: header: $2
-    /^Received:.* +by +(porcupine\.org)[[:&gt;:]]/
+    /^Received:.* +by +(porcupine\.org)\b/
         reject forged mail server name in Received: header: $1
     endif
     /^Message-ID:.* &lt;!&amp;!/ DUNNO
@@ -196,7 +199,7 @@ patterns like this: </p>
         reject forged client name in Received: header: $1
     /^[&gt; ]*Received: +from +[^ ]+ +\(([^ ]+ +[he]+lo=|[he]+lo +)(porcupine\.org)\)/
         reject forged client name in Received: header: $2
-    /^[&gt; ]*Received:.* +by +(porcupine\.org)[[:&gt;:]]/
+    /^[&gt; ]*Received:.* +by +(porcupine\.org)\b/
         reject forged mail server name in Received: header: $1
     endif
     /^[&gt; ]*Message-ID:.* &lt;!&amp;!/ DUNNO
@@ -209,6 +212,9 @@ patterns like this: </p>
 
 <ul>
 
+<li> <p> The example uses pcre: tables mainly for speed; with minor
+modifications, you can use regexp: tables as explained below. </p>
+
 <li> <p> The example is simplified for educational purposes.  In
 reality my patterns list multiple domain names, as
 "<tt>(domain|domain|...)</tt>".  </p>
@@ -220,9 +226,10 @@ the "<tt>\</tt>", the "<tt>.</tt>" would match any character. </p>
 and "<tt>)</tt>" literally. Without the "<tt>\</tt>", the "<tt>(</tt>"
 and "<tt>)</tt>" would be grouping operators.  </p>
 
-<li> <p> The "<tt>[[:&gt;:]]</tt>" matches the end of a word. On
-some systems you should specify "<tt>\&gt;</tt>" instead. For details
-see your system documentation. </p>
+<li> <p> The "<tt>\b</tt>" is used here to match the end of a word.
+If you use regexp: tables, specify "<tt>[[:&gt;:]]</tt>" (on some
+systems you should specify "<tt>\&gt;</tt>" instead; for details
+see your system documentation).
 
 <li> <p> The "if /pattern/" and "endif" eliminate unnecessary
 matching attempts. DO NOT indent lines starting with /pattern/
@@ -311,15 +318,15 @@ and is very easy to stop.
 <blockquote>
 <pre>
 /etc/postfix/main.cf:
-    header_checks = regexp:/etc/postfix/header_checks
-    body_checks = regexp:/etc/postfix/body_checks
+    header_checks = pcre:/etc/postfix/header_checks
+    body_checks = pcre:/etc/postfix/body_checks
 
 /etc/postfix/header_checks:
-    /^(From|Return-Path):.*[[:&lt;:]](user@domain\.tld)[[:&gt;:]]
+    /^(From|Return-Path):.*\b(user@domain\.tld)\b
         reject forged sender address in $1: header: $2
 
 /etc/postfix/body_checks:
-    /^[&gt; ]*(From|Return-Path):.*[[:&lt;:]](user@domain\.tld)[[:&gt;:]]
+    /^[&gt; ]*(From|Return-Path):.*\b(user@domain\.tld)\b
         reject forged sender address in $1: header: $2
 </pre>
 </blockquote>
@@ -328,14 +335,18 @@ and is very easy to stop.
 
 <ul>
 
+<li> <p> The example uses pcre: tables mainly for speed; with minor
+modifications, you can use regexp: tables as explained below. </p>
+
 <li> <p> The example is simplified for educational purposes.  In
 reality, my patterns list multiple email addresses as
 "<tt>(user1@domain1\.tld|user2@domain2\.tld)</tt>".  </p>
 
-<li> <p> The "<tt>[[:&lt;:]]</tt>" and "<tt>[[:&gt;:]]</tt>" match
-the beginning and end of a word, respectively. On some systems you
-should specify "<tt>\&lt;</tt>" and "<tt>\&gt;</tt>" instead. For
-details see your system documentation. </p>
+<li> <p> The two "<tt>\b</tt>" as used in "<tt>\b(user@domain\.tld)\b</tt>"
+match the beginning and end of a word, respectively.  If you use
+regexp: tables, specify "<tt>[[:&lt;:]]</tt> and <tt>[[:&gt;:]]</tt>"
+(on some systems you should specify "<tt>\&lt;</tt> and <tt>\&gt;</tt>"
+instead; for details see your system documentation).  </p>
 
 <li> <p> The "<tt>\.</tt>" matches "<tt>.</tt>" literally. Without
 the "<tt>\</tt>", the "<tt>.</tt>" would match any character. </p>
index 012dc0ff26ee317252283e7ec12813f6f0132b09..c689b001eba135effadb02a7409b850f9ccd206a 100644 (file)
@@ -149,6 +149,7 @@ Linux Debian 1.3.1, 2.x, 3.x <br>
 Linux RedHat 3.x (January 2004) - 9.x <br>
 Linux Slackware 3.x, 4.x, 7.x <br>
 Linux SuSE 5.x, 6.x, 7.x <br>
+Linux Ubuntu 4.10..7.04<br>
 Mac OS X <br>
 NEXTSTEP 3.x <br>
 NetBSD 1.x <br>
index 2b177cb56d8120d64bcd5c578fe558c11f3091a3..a5a3d2753bb07d4ea33b34d1bb28a8af2d84f5c4 100644 (file)
@@ -708,9 +708,6 @@ text below: </p>
 
 <li> <p> This was tested with sid-milter-0.2.10 and sid-milter-0.2.14. </p>
 
-<li> <p> This fixes only the ugly message header, but not the WARNING
-message.  Fortunately, sid-milter logs that message only once. </p>
-
 </ul>
 
 <p> To fix the ugly message header with other Milter applications,
index 3a7e7083309e9e6042d88abf1410efc29b480cc8..f1cf81bb1e9fd94a2e1db246ba2e4e6f20d67d16 100644 (file)
@@ -460,12 +460,13 @@ bgcolor="#f0f0ff"> <br> smtpd(8)<br><br> </td> <td> <tt> &lt;-&gt;
 
 </table>
 
-<li> <p> The bounce(8), defer(8) and trace(8) servers each maintain
-their own queue directory trees with per-message logfiles. This
-information is used to send delivery or non-delivery notifications
-to the sender. </p>
+<li> <p> The bounce(8), defer(8) and trace(8) services each maintain
+their own queue directory trees with per-message logfiles. Postfix
+uses this information when sending "failed", "delayed" or "success"
+delivery status notifications to the sender. </p>
 
-<p> The trace(8) service implements support for the Postfix "sendmail
+<p> The trace(8) service also implements support for the Postfix
+"sendmail
 -bv" and "sendmail -v" commands which produce reports about how
 Postfix delivers mail, and is available with Postfix version 2.1
 and later. See <a href="DEBUG_README.html#trace_mail"> DEBUG_README
index 3cf8366e54eb75458e426479ef969d7cc1515342..6ebee10ad68342f290728ea01fa3e8c6b90cb035 100644 (file)
 #      "\fBpostconf -m\fR" to find out what lookup tables Postfix
 #      supports on your system.
 #
-# .na
 # .nf
+# .na
 #      /etc/postfix/main.cf:
-# .in +4
-#      smtpd_client_restrictions = 
-# .in +4
-#      check_client_access hash:/etc/postfix/access
+#          smtpd_client_restrictions = 
+#              check_client_access hash:/etc/postfix/access
 #
-# .in -8
 #      /etc/postfix/access:
-# .in +4
-#      1.2.3   REJECT
-#      1.2.3.4 OK
-# .in -4
+#          1.2.3   REJECT
+#          1.2.3.4 OK
+# .fi
+# .ad
 #
 #      Execute the command "\fBpostmap /etc/postfix/access\fR" after
 #      editing the file.
index 2ac242c9f82a3a246042138f7b2597451661b596..1e0cbf765460885c940362a1f732d6a7106f6151 100644 (file)
@@ -31,8 +31,9 @@
 # .IP \(bu
 #      An alias definition has the form
 # .sp
-# .ti +5
-#      \fIname\fR: \fIvalue1\fR, \fIvalue2\fR, \fI...\fR
+# .nf
+#           \fIname\fR: \fIvalue1\fR, \fIvalue2\fR, \fI...\fR
+# .fi
 # .IP \(bu
 #      Empty lines and whitespace-only lines are ignored, as
 #      are lines whose first non-whitespace character is a `#'.
index 113fea84fdbca2847bbf8387f0f4377c08f2ba6c..e1944196e44f9cab7453dbf1a5fddc5c1c531e48 100644 (file)
@@ -32,8 +32,9 @@
 #      To preview the results of $\fIname\fR expansions in the
 #       template text, use the command
 #
-# .ti +4
-#      \fBpostconf -b\fR \fItemporary_file\fR
+# .nf
+#          \fBpostconf -b\fR \fItemporary_file\fR
+# .fi
 #
 #      Errors in the template will be reported to the standard
 #      error stream and to the syslog daemon.
 #      Postfix configuration directory and specify in main.cf
 #      something like:
 #
+# .nf
 #      /etc/postfix/main.cf:
-# .ti +4
 #          bounce_template_file = /etc/postfix/bounce.cf
+# .fi
 # TEMPLATE FILE FORMAT
 # .ad
 # .fi
 #      it in quotes as with the shell or with Perl (\fItemplate_name\fB
 #      = <<'EOF'\fR). Here is an example:
 #
-# .in +4
 # .nf
-# .na
-#      # The failure template is used for undeliverable mail.
+#          # The failure template is used for undeliverable mail.
 #
-#      failure_template = <<EOF
-#      Charset: us-ascii
-#      From: MAILER-DAEMON (Mail Delivery System)
-#      Subject: Undelivered Mail Returned to Sender
-#      Postmaster-Subject: Postmaster Copy: Undelivered Mail
-#      
-#      This is the mail system at host $myhostname.
-#      
-#      I'm sorry to have to inform you that your message could not
-#      be delivered to one or more recipients. It's attached below.
-#      
-#      For further assistance, please send mail to postmaster.
-#      
-#      If you do so, please include this problem report. You can
-#      delete your own text from the attached returned message.
+#          failure_template = <<EOF
+#          Charset: us-ascii
+#          From: MAILER-DAEMON (Mail Delivery System)
+#          Subject: Undelivered Mail Returned to Sender
+#          Postmaster-Subject: Postmaster Copy: Undelivered Mail
+#          
+#          This is the mail system at host $myhostname.
+#          
+#          I'm sorry to have to inform you that your message could not
+#          be delivered to one or more recipients. It's attached below.
+#          
+#          For further assistance, please send mail to postmaster.
+#          
+#          If you do so, please include this problem report. You can
+#          delete your own text from the attached returned message.
 #
-# .ti +12
-#                         The mail system
-#      EOF
-# .in -4
-# .ad
+#                             The mail system
+#          EOF
 # .fi
 # .PP
 #      The usage and specification of bounce templates is
index cc65ec407cdeabb2e69a866d05f9944daaeb3101..cdda9181845a76ae95e7a57cb367bb6e16e087d4 100644 (file)
 #      to recipient addresses, the Postfix SMTP server accepts
 #      mail for any recipient in \fIdomain\fR, regardless of whether
 #      that recipient exists.  This may turn your mail system into
-#      a backscatter source that returns undeliverable spam to
-#      innocent people.
+#      a backscatter source: Postfix first accepts mail for
+#      non-existent recipients and then tries to return that mail
+#      as "undeliverable" to the often forged sender address.
 # RESULT ADDRESS REWRITING
 # .ad
 # .fi
index eee19478afb75c055e93869bd24f99eafb1b3e11..20df979e9219e2334ef1225181876b4e6ac33c44 100644 (file)
 #      Patterns are applied in the order as specified in the table, until a
 #      pattern is found that matches the search string.
 # EXAMPLE SMTPD ACCESS MAP
+# .nf
 #      /etc/postfix/main.cf:
-# .ti +4
-#      smtpd_client_restrictions = ... cidr:/etc/postfix/client.cidr ...
+#          smtpd_client_restrictions = ... cidr:/etc/postfix/client.cidr ...
 #
 #      /etc/postfix/client.cidr:
-# .in +4
-#      # Rule order matters. Put more specific whitelist entries
-#      # before more general blacklist entries.
-#       192.168.1.1             OK
-#       192.168.0.0/16          REJECT
-# .in -4
+#          # Rule order matters. Put more specific whitelist entries
+#          # before more general blacklist entries.
+#          192.168.1.1             OK
+#          192.168.0.0/16          REJECT
+# .fi
 # SEE ALSO
 #      postmap(1), Postfix lookup table manager
 #      regexp_table(5), format of regular expression tables
index 7c4374ced063633f9d44c998d872083bbb01e376..b2e730a21d1b9a09cc23430add2c983d75e9624f 100644 (file)
 # .na
 # .nf
 #      /etc/postfix/main.cf:
-# .in +4
 #          smtp_generic_maps = hash:/etc/postfix/generic
-# .in -4
 #
 #      /etc/postfix/generic:
-# .in +4
 #          his@localdomain.local   hisaccount@hisisp.example
 #          her@localdomain.local   heraccount@herisp.example
 #          @localdomain.local      hisaccount+local@hisisp.example
-# .in -4
 #
 # .ad
 # .fi
index b677ff750de6b63ead62a04b2c72c14ea6cb78c0..c59ecbeab3cf7c846f2f6c8b1a2cd5184f024906 100644 (file)
@@ -4,17 +4,15 @@
 # SUMMARY
 #      Postfix built-in content inspection
 # SYNOPSIS
+# .nf
 #      \fBheader_checks = pcre:/etc/postfix/header_checks\fR
-# .br
 #      \fBmime_header_checks = pcre:/etc/postfix/mime_header_checks\fR
-# .br
 #      \fBnested_header_checks = pcre:/etc/postfix/nested_header_checks\fR
-# .br
 #      \fBbody_checks = pcre:/etc/postfix/body_checks\fR
 # .sp
 #      \fBpostmap -q "\fIstring\fB" pcre:/etc/postfix/\fIfilename\fR
-# .br
 #      \fBpostmap -q - pcre:/etc/postfix/\fIfilename\fR <\fIinputfile\fR
+# .fi
 # DESCRIPTION
 #      This document describes access control on the content of
 #      message headers and message body lines; it is implemented
 #      Note: message headers are examined one logical header at a time,
 #      even when a message header spans multiple lines. Body lines are
 #      always examined one line at a time.
+# COMPATIBILITY
+# .ad
+# .fi
+#       With Postfix version 2.2 and earlier specify "\fBpostmap
+#       -fq\fR" to query a table that contains case sensitive
+#       patterns. By default, regexp: and pcre: patterns are case
+#       insensitive.
 # TABLE FORMAT
 # .ad
 # .fi
 #      to the next line.
 # .IP \(bu
 #      If text in the message body is encoded
-#      (RFC 2045) then the rules have to specified for the encoded
+#      (RFC 2045) then the rules need to be specified for the encoded
 #      form.
 # .IP \(bu
 #      Likewise, when message headers are encoded (RFC
 # .na
 # .nf
 #      /etc/postfix/main.cf:
-# .ti +4
-#      header_checks = regexp:/etc/postfix/header_checks
+#          header_checks = regexp:/etc/postfix/header_checks
 #
 #      /etc/postfix/header_checks:
-# .ti +4
-#      /^content-(type|disposition):.*name[[:space:]]*=.*\\.(exe|vbs)/
-# .ti +8
-#      REJECT Bad attachment file name extension: $2
+#          /^content-(type|disposition):.*name[[:space:]]*=.*\\.(exe|vbs)/
+#              REJECT Bad attachment file name extension: $2
 #
 # .ad
 # .fi
 # .na
 # .nf
 #      /etc/postfix/main.cf:
-# .ti +4
-#      body_checks = regexp:/etc/postfix/body_checks
+#          body_checks = regexp:/etc/postfix/body_checks
 #
 #      /etc/postfix/body_checks:
-# .ti +4
-#      /^<iframe src=(3D)?cid:.* height=(3D)?0 width=(3D)?0>$/
-# .ti +8
-#      REJECT IFRAME vulnerability exploit
+#          /^<iframe src=(3D)?cid:.* height=(3D)?0 width=(3D)?0>$/
+#              REJECT IFRAME vulnerability exploit
 # SEE ALSO
 #      cleanup(8), canonicalize and enqueue Postfix message
 #      pcre_table(5), format of PCRE lookup tables
index c1328389f9a974e72d4c1285b880386c4e241b04..1e392d9b45da0d5bb98f19684d18d537aa3dfd8c 100644 (file)
@@ -17,8 +17,9 @@
 #      In order to use LDAP lookups, define an LDAP source as a lookup
 #      table in main.cf, for example:
 #
-# .ti +4
-#      alias_maps = ldap:/etc/postfix/ldap-aliases.cf
+# .nf
+#          alias_maps = ldap:/etc/postfix/ldap-aliases.cf
+# .fi
 #
 #      The file /etc/postfix/ldap-aliases.cf has the same format as
 #      the Postfix main.cf file, and can specify the parameters
 #
 #      For example, NEVER do this in a map defining $mydestination:
 #
-# .in +4
-#      query_filter = domain=* 
-# .br
-#      result_attribute = domain
-# .in -4
+# .nf
+#          query_filter = domain=* 
+#          result_attribute = domain
+# .fi
 #
 #      Do this instead:
 #
-# .in +4
-#      query_filter = domain=%s 
-# .br
-#      result_attribute = domain
-# .in -4
+# .nf
+#          query_filter = domain=%s 
+#          result_attribute = domain
+# .fi
 # GENERAL LDAP PARAMETERS
 # .ad
 # .fi
 # .IP "\fBserver_host (default: localhost)\fR"
 #      The name of the host running the LDAP server, e.g.
 #
-# .ti +4
-#      server_host = ldap.example.com
+# .nf
+#          server_host = ldap.example.com
+# .fi
 #
 #      Depending on the LDAP client library you're using, it should
 #      be possible to specify multiple servers here, with the library
 #      be possible to give each server in the list a different port
 #      (overriding \fBserver_port\fR below), by naming them like
 #
-# .ti +4
-#      server_host = ldap.example.com:1444
+# .nf
+#          server_host = ldap.example.com:1444
+# .fi
 #
 #      With OpenLDAP, a (list of) LDAP URLs can be used to specify both
 #      the hostname(s) and the port(s):
 #
-# .ti +4
-#      server_host = ldap://ldap.example.com:1444
-# .ti +8
-#              ldap://ldap2.example.com:1444
+# .nf
+#          server_host = ldap://ldap.example.com:1444
+#                      ldap://ldap2.example.com:1444
+# .fi
 #
 #      All LDAP URLs accepted by the OpenLDAP library are supported,
 #      including connections over UNIX domain sockets, and LDAP SSL
 #      (the last one provided that OpenLDAP was compiled with support
 #      for SSL):
 #
-# .ti +4
-#      server_host = ldapi://%2Fsome%2Fpath
-# .ti +8
-#              ldaps://ldap.example.com:636
+# .nf
+#          server_host = ldapi://%2Fsome%2Fpath
+#                      ldaps://ldap.example.com:636
+# .fi
 # .IP "\fBserver_port (default: 389)\fR"
 #      The port the LDAP server listens on, e.g.
 #
-# .ti +4
-#      server_port = 778
+# .nf
+#          server_port = 778
+# .fi
 # .IP "\fBtimeout (default: 10 seconds)\fR"
 #      The number of seconds a search can take before timing out, e.g.
 #
-# .ti +4
-#      timeout = 5
+# .fi
+#          timeout = 5
+# .fi
 # .IP "\fBsearch_base (No default; you must configure this)\fR"
 #      The RFC2253 base DN at which to conduct the search, e.g.
 #
-# .ti +4
-#      search_base = dc=your, dc=com
+# .nf
+#          search_base = dc=your, dc=com
+# .fi
 # .IP
 #      With Postfix 2.2 and later this parameter supports the
 #      following '%' expansions:
 #      is a substitute for the address Postfix is trying to resolve,
 #      e.g.
 #
-# .ti +4
-#      query_filter = (&(mail=%s)(paid_up=true))
+# .nf
+#          query_filter = (&(mail=%s)(paid_up=true))
+# .fi
 #
 #      This parameter supports the following '%' expansions:
 # .RS
 #      and "@domain" lookups are not performed. This can significantly
 #      reduce the query load on the LDAP server.
 #
-# .ti +4
-#      domain = postfix.org, hash:/etc/postfix/searchdomains
+# .nf
+#          domain = postfix.org, hash:/etc/postfix/searchdomains
+# .fi
 #
 #      It is best not to use LDAP to store the domains eligible
 #      for LDAP lookups.
 #      entries returned by the lookup, to be resolved to an email
 #      address.
 #
-# .ti +4
-#      result_attribute = mailbox, maildrop
+# .nf
+#          result_attribute = mailbox, maildrop
+# .fi
 # .IP "\fBspecial_result_attribute (default: empty)\fR"
 #      The attribute(s) of directory entries that can contain DNs
 #      or URLs. If found, a recursive subsequent search is done
 #      using their values.
 #
-# .ti +4
-#      special_result_attribute = memberdn
+# .nf
+#          special_result_attribute = memberdn
+# .fi
 #
 #      DN recursion retrieves the same result_attributes as the
 #      main query, including the special attributes for further
 #      where the group is expanded, possibly via mailing-list manager or
 #      other special processing.
 #
-# .ti +4
-#      terminal_result_attribute = maildrop
+# .nf
+#          terminal_result_attribute = maildrop
+# .fi
 #
 #      This feature is available with Postfix 2.4 or later.
 # .IP "\fBleaf_result_attribute (default: empty)\fR"
 #      The attributes that represent the email addresses of objects
 #      referenced via a DN (or LDAP URI) go in "leaf_result_attribute".
 #
-# .in +4
-#      result_attribute = memberaddr
-# .br
-#      special_result_attribute = memberdn
-# .br
-#      terminal_result_attribute = maildrop
-# .br
-#      leaf_result_attribute = mail
-# .in -4
+# .nf
+#          result_attribute = memberaddr
+#          special_result_attribute = memberdn
+#          terminal_result_attribute = maildrop
+#          leaf_result_attribute = mail
+# .fi
 #
 #      This feature is available with Postfix 2.4 or later.
 # .IP "\fBscope (default: sub)\fR"
 #      implementations don't require clients to bind, which saves
 #      time. Example:
 #
-# .ti +4
-#      bind = no
+# .nf
+#          bind = no
+# .fi
 #
 #      If you do need to bind, you might consider configuring
 #      Postfix to connect to the local machine on a port that's
 # .IP "\fBbind_dn (default: empty)\fR"
 #      If you do have to bind, do it with this distinguished name. Example:
 #
-# .ti +4
-#      bind_dn = uid=postfix, dc=your, dc=com
+# .nf
+#          bind_dn = uid=postfix, dc=your, dc=com
+# .fi
 # .IP "\fBbind_pw (default: empty)\fR"
 #      The password for the distinguished name above. If you have
 #      to use this, you probably want to make the map configuration
 #      to allow local accounts to submit mail via the sendmail
 #      command. Example:
 #
-# .ti +4
-#      bind_pw = postfixpw
+# .nf
+#          bind_pw = postfixpw
+# .fi
 # .IP "\fBcache (IGNORED with a warning)\fR"
 # .IP "\fBcache_expiry (IGNORED with a warning)\fR"
 # .IP "\fBcache_size (IGNORED with a warning)\fR"
 #      LDAP SSL service can be requested by using a LDAP SSL URL
 #      in the server_host parameter:
 #
-# .ti +4
-#      server_host = ldaps://ldap.example.com:636
+# .nf
+#          server_host = ldaps://ldap.example.com:636
+# .fi
 #
 #      STARTTLS can be turned on with the start_tls parameter:
 #
-# .ti +4
-#      start_tls = yes
+# .nf
+#          start_tls = yes
+# .fi
 #
 #      Both forms require LDAP protocol version 3, which has to be set
 #      explicitly with:
 #
-# .ti +4
-#      version = 3
+# .nf
+#          version = 3
+# .fi
 #
 #      If any of the Postfix programs querying the map is configured in
 #      master.cf to run chrooted, all the certificates and keys involved
 #      aliases.
 #      Assume that in main.cf, you have:
 #
-# .ti +4
-#      alias_maps = hash:/etc/aliases,
-# .ti +8
-#      ldap:/etc/postfix/ldap-aliases.cf
+# .nf
+#          alias_maps = hash:/etc/aliases,
+#                  ldap:/etc/postfix/ldap-aliases.cf
+# .fi
 #
 #      and in ldap:/etc/postfix/ldap-aliases.cf you have:
 #
-# .in +4
-#      server_host = ldap.example.com
-# .br
-#      search_base = dc=example, dc=com
-# .in -4
+# .nf
+#          server_host = ldap.example.com
+#          search_base = dc=example, dc=com
+# .fi
 #
 #      Upon receiving mail for a local address "ldapuser" that
 #      isn't found in the /etc/aliases database, Postfix will
index 9992b61931122b6f2076a9a68822afdf87853a82..a8f8bf2a749940b7434793ec9451d2ae88716177 100644 (file)
@@ -15,8 +15,9 @@
 #      Alternatively, lookup tables can be specified as MySQL databases.
 #      In order to use MySQL lookups, define a MySQL source as a lookup
 #      table in main.cf, for example:
-# .ti +4
-#      alias_maps = mysql:/etc/mysql-aliases.cf
+# .nf
+#          alias_maps = mysql:/etc/mysql-aliases.cf
+# .fi
 #
 #      The file /etc/postfix/mysql-aliases.cf has the same format as
 #      the Postfix main.cf file, and can specify the parameters
 #      The old interface will be gradually phased out. To migrate to
 #      the new interface set:
 #
-# .ti +4
-#      \fBquery\fR = SELECT [\fIselect_field\fR]
-# .ti +8
-#      FROM [\fItable\fR]
-# .ti +8
-#      WHERE [\fIwhere_field\fR] = '%s'
-# .ti +12
-#      [\fIadditional_conditions\fR]
+# .nf
+#          \fBquery\fR = SELECT [\fIselect_field\fR]
+#              FROM [\fItable\fR]
+#              WHERE [\fIwhere_field\fR] = '%s'
+#                  [\fIadditional_conditions\fR]
+# .fi
 #
 #      Insert the value, not the name, of each legacy parameter. Note
 #      that the \fBadditional_conditions\fR parameter is optional
 #      The hosts that Postfix will try to connect to and query from.
 #      Specify \fIunix:\fR for UNIX domain sockets, \fIinet:\fR for TCP
 #      connections (default).  Example:
-# .ti +4
-#      hosts = host1.some.domain host2.some.domain
-# .ti +4
-#      hosts = unix:/file/name
+# .nf
+#          hosts = host1.some.domain host2.some.domain
+#          hosts = unix:/file/name
+# .fi
 #
 #      The hosts are tried in random order, with all connections over
 #      UNIX domain sockets being tried before those over TCP.  The
 #      prefix it with \fIinet:\fR), MySQL will connect to the default
 #      UNIX domain socket.  In order to instruct MySQL to connect to
 #      localhost over TCP you have to specify
-# .ti +4
-#      hosts = 127.0.0.1
+# .nf
+#          hosts = 127.0.0.1
+# .fi
 # .IP "\fBuser, password\fR"
 #      The user name and password to log into the mysql server.
 #      Example:
-# .in +4
-#      user = someone
-# .br
-#      password = some_password
-# .in -4
+# .nf
+#          user = someone
+#          password = some_password
+# .fi
 # .IP "\fBdbname\fR"
 #      The database name on the servers. Example:
-# .ti +4
-#      dbname = customer_database
+# .nf
+#          dbname = customer_database
+# .fi
 # .IP "\fBquery\fR"
 #      The SQL query template used to search the database, where \fB%s\fR
 #      is a substitute for the address Postfix is trying to resolve,
 #      e.g.
-# .ti +4
-#      query = SELECT replacement FROM aliases WHERE mailbox = '%s'
+# .nf
+#          query = SELECT replacement FROM aliases WHERE mailbox = '%s'
+# .fi
 #
 #      This parameter supports the following '%' expansions:
 # .RS
 #      \fBadditional_conditions\fR. The mapping from the old parameters
 #      to the equivalent query is:
 #
-# .ti +4
-#      SELECT [\fBselect_field\fR]
-# .ti +4
-#      FROM [\fBtable\fR]
-# .ti +4
-#      WHERE [\fBwhere_field\fR] = '%s'
-# .ti +10
-#      [\fBadditional_conditions\fR]
+# .nf
+#          SELECT [\fBselect_field\fR]
+#          FROM [\fBtable\fR]
+#          WHERE [\fBwhere_field\fR] = '%s'
+#                [\fBadditional_conditions\fR]
+# .fi
 #
 #      The '%s' in the \fBWHERE\fR clause expands to the escaped search string.
 #      With Postfix 2.2 these legacy parameters are used if the \fBquery\fR
 #      are eligible for lookup: 'user' lookups, bare domain lookups
 #      and "@domain" lookups are not performed. This can significantly
 #      reduce the query load on the MySQL server.
-# .ti +4
-#      domain = postfix.org, hash:/etc/postfix/searchdomains
+# .nf
+#          domain = postfix.org, hash:/etc/postfix/searchdomains
+# .fi
 #
 #      It is best not to use SQL to store the domains eligible
 #      for SQL lookups.
 #      The following parameters can be used to fill in a
 #      SELECT template statement of the form:
 #
-# .ti +4
-#      SELECT [\fBselect_field\fR]
-# .ti +4
-#      FROM [\fBtable\fR]
-# .ti +4
-#      WHERE [\fBwhere_field\fR] = '%s'
-# .ti +10
-#      [\fBadditional_conditions\fR]
+# .nf
+#          SELECT [\fBselect_field\fR]
+#          FROM [\fBtable\fR]
+#          WHERE [\fBwhere_field\fR] = '%s'
+#                [\fBadditional_conditions\fR]
+# .fi
 #
 #      The specifier %s is replaced by the search string, and is
 #      escaped so if it contains single quotes or other odd characters,
 #      interface may be removed in a future release.
 # .IP "\fBselect_field\fR"
 #      The SQL "select" parameter. Example:
-# .ti +4
-#      \fBselect_field\fR = forw_addr
+# .nf
+#          \fBselect_field\fR = forw_addr
+# .fi
 # .IP "\fBtable\fR"
 #      The SQL "select .. from" table name. Example:
-# .ti +4
-#      \fBtable\fR = mxaliases
+# .nf
+#          \fBtable\fR = mxaliases
+# .fi
 # .IP "\fBwhere_field\fR
 #      The SQL "select .. where" parameter. Example:
-# .ti +4
-#      \fBwhere_field\fR = alias
+# .nf
+#          \fBwhere_field\fR = alias
+# .fi
 # .IP "\fBadditional_conditions\fR
 #      Additional conditions to the SQL query. Example:
-# .ti +4
-#      \fBadditional_conditions\fR = AND status = 'paid'
+# .nf
+#          \fBadditional_conditions\fR = AND status = 'paid'
+# .fi
 # SEE ALSO
 #      postmap(1), Postfix lookup table maintenance
 #      postconf(5), configuration parameters
index 3d16d6612361f88abe243395ed77dfd7b6920043..f7ace421aec0030814f5f351d1e0e5f17879b0ed 100644 (file)
@@ -24,8 +24,9 @@
 #      Most of the NIS+ query is specified via the NIS+ map name. The
 #      general format of a Postfix NIS+ map name is as follows:
 #
-# .ti +4
-#      \fBnisplus:[\fIname\fB=%s];\fIname.name.name\fB.:\fIcolumn\fR
+# .fi
+#          \fBnisplus:[\fIname\fB=%s];\fIname.name.name\fB.:\fIcolumn\fR
+# .fi
 #
 #      Postfix NIS+ map names differ from what one normally
 #      would use with commands such as \fBniscat\fR:
 #      of the table column that provides the lookup result. When
 #      no ":\fIcolumn\fR" is specified the first column (1) is used.
 # EXAMPLE
+# .ad
+# .fi
 #      A NIS+ aliases map might be queried as follows:
 #
-# .ti +4
-#      alias_maps = dbm:/etc/mail/aliases,
-# .ti +2
+# .nf
+#          alias_maps = dbm:/etc/mail/aliases,
 #              nisplus:[alias=%s];mail_aliases.org_dir.$mydomain.:1
-# .ad
 # .fi
 #
 #      This queries the local aliases file before the NIS+ file.
index 5b7a1bbd1a43be23c72193b7adc2d0b8fbe2da96..c0ab8f3eb69a8e9d5a4d2fadaf227ae4cba7bbb7 100644 (file)
@@ -9,8 +9,8 @@
 #      \fBpostmap -q - pcre:/etc/postfix/\fIfilename\fR <\fIinputfile\fR
 # DESCRIPTION
 #      The Postfix mail system uses optional tables for address
-#      rewriting or mail routing. These tables are usually in
-#      \fBdbm\fR or \fBdb\fR format.
+#      rewriting, mail routing, or access control. These tables
+#      are usually in \fBdbm\fR or \fBdb\fR format.
 #
 #      Alternatively, lookup tables can be specified in Perl Compatible
 #      Regular Expression form. In this case, each input is compared
index 074ec7f0f85381e7634f76c14a51910b08a9e8c6..6338416c59fe4409c0412f5dec351ced037d4789 100644 (file)
@@ -15,8 +15,9 @@
 #      Alternatively, lookup tables can be specified as PostgreSQL
 #      databases.  In order to use PostgreSQL lookups, define a
 #      PostgreSQL source as a lookup table in main.cf, for example:
-# .ti +4
-#      alias_maps = pgsql:/etc/pgsql-aliases.cf
+# .nf
+#          alias_maps = pgsql:/etc/pgsql-aliases.cf
+# .fi
 #
 #      The file /etc/postfix/pgsql-aliases.cf has the same format as
 #      the Postfix main.cf file, and can specify the parameters
 #      \fBwhere_field\fR and \fBadditional_conditions\fR parameters. To
 #      migrate to the new interface set:
 #
-# .ti +4
-#      \fBquery\fR = SELECT \fIselect_function\fR('%s')
+# .nf
+#          \fBquery\fR = SELECT \fIselect_function\fR('%s')
+# .fi
 #
 #      or in the absence of \fBselection_function\fR, the lower precedence:
 #
-# .ti +4
-#      \fBquery\fR = SELECT \fIselect_field\fR
-# .ti +8
-#      FROM \fItable\fR
-# .ti +8
-#      WHERE \fIwhere_field\fR = '%s'
-# .ti +12
-#      \fIadditional_conditions\fR
+# .nf
+#          \fBquery\fR = SELECT \fIselect_field\fR
+#              FROM \fItable\fR
+#              WHERE \fIwhere_field\fR = '%s'
+#                  \fIadditional_conditions\fR
+# .fi
 #
 #      Use the value, not the name, of each legacy parameter. Note
 #      that the \fBadditional_conditions\fR parameter is optional
 #      The hosts that Postfix will try to connect to and query from.
 #      Specify \fIunix:\fR for UNIX-domain sockets, \fIinet:\fR for TCP
 #      connections (default).  Example:
-# .ti +4
-#      hosts = host1.some.domain host2.some.domain
-# .ti +4
-#      hosts = unix:/file/name
+# .nf
+#          hosts = host1.some.domain host2.some.domain
+#          hosts = unix:/file/name
+# .fi
 #
 #      The hosts are tried in random order, with all connections over
 #      UNIX domain sockets being tried before those over TCP.  The
 # .IP "\fBuser, password\fR"
 #      The user name and password to log into the pgsql server.
 #      Example:
-# .in +4
-#      user = someone
-# .br
-#      password = some_password
-# .in -4
+# .nf
+#          user = someone
+#          password = some_password
+# .fi
 # .IP "\fBdbname\fR"
 #      The database name on the servers. Example:
-# .ti +4
-#      dbname = customer_database
+# .nf
+#          dbname = customer_database
+# .fi
 # .IP "\fBquery\fR"
 #      The SQL query template used to search the database, where \fB%s\fR
 #      is a substitute for the address Postfix is trying to resolve,
 #      e.g.
-# .ti +4
-#      query = SELECT replacement FROM aliases WHERE mailbox = '%s'
+# .nf
+#          query = SELECT replacement FROM aliases WHERE mailbox = '%s'
+# .fi
 #
 #      This parameter supports the following '%' expansions:
 # .RS
 #      are eligible for lookup: 'user' lookups, bare domain lookups
 #      and "@domain" lookups are not performed. This can significantly
 #      reduce the query load on the PostgreSQL server.
-# .ti +4
-#      domain = postfix.org, hash:/etc/postfix/searchdomains
+# .nf
+#          domain = postfix.org, hash:/etc/postfix/searchdomains
+# .fi
 #
 #      It is best not to use SQL to store the domains eligible
 #      for SQL lookups.
 #      Pre-Postfix 2.2 legacy interfaces:
 # .IP "\fBselect_function\fR"
 #      This parameter specifies a database function name. Example:
-# .ti +4
-#      select_function = my_lookup_user_alias
+# .nf
+#          select_function = my_lookup_user_alias
+# .fi
 #
 #      This is equivalent to:
-# .ti +4
-#      query = SELECT my_lookup_user_alias('%s')
+# .nf
+#          query = SELECT my_lookup_user_alias('%s')
+# .fi
 #
 #      This parameter overrides the legacy table-related fields (described
 #      below). With Postfix versions prior to 2.2, it also overrides the
 #      \fBselect_function\fR interface described above) can be used to
 #      build the SQL select statement as follows:
 #
-# .ti +4
-#      SELECT [\fBselect_field\fR]
-# .ti +4
-#      FROM [\fBtable\fR]
-# .ti +4
-#      WHERE [\fBwhere_field\fR] = '%s'
-# .ti +10
-#      [\fBadditional_conditions\fR]
+# .nf
+#          SELECT [\fBselect_field\fR]
+#          FROM [\fBtable\fR]
+#          WHERE [\fBwhere_field\fR] = '%s'
+#                [\fBadditional_conditions\fR]
+# .fi
 #
 #      The specifier %s is replaced with each lookup by the lookup key
 #      and is escaped so if it contains single quotes or other odd
 #      \fBquery\fR interface as this interface is slated to be phased out.
 # .IP "\fBselect_field\fR"
 #      The SQL "select" parameter. Example:
-# .ti +4
-#      \fBselect_field\fR = forw_addr
+# .nf
+#          \fBselect_field\fR = forw_addr
+# .fi
 # .IP "\fBtable\fR"
 #      The SQL "select .. from" table name. Example:
-# .ti +4
-#      \fBtable\fR = mxaliases
+# .nf
+#          \fBtable\fR = mxaliases
+# .fi
 # .IP "\fBwhere_field\fR
 #      The SQL "select .. where" parameter. Example:
-# .ti +4
-#      \fBwhere_field\fR = alias
+# .nf
+#          \fBwhere_field\fR = alias
+# .fi
 # .IP "\fBadditional_conditions\fR
 #      Additional conditions to the SQL query. Example:
-# .ti +4
-#      \fBadditional_conditions\fR = AND status = 'paid'
+# .nf
+#          \fBadditional_conditions\fR = AND status = 'paid'
+# .fi
 # SEE ALSO
 #      postmap(1), Postfix lookup table manager
 #      postconf(5), configuration parameters
index 5560bad9bc805633da269c80d3beacacd8f46c97..3a15f46a912c9b22d02acfbc528044a54f3b1e68 100644 (file)
@@ -9,8 +9,8 @@
 #      \fBpostmap -q - regexp:/etc/postfix/\fIfilename\fR <\fIinputfile\fR
 # DESCRIPTION
 #      The Postfix mail system uses optional tables for address
-#      rewriting or mail routing. These tables are usually in
-#      \fBdbm\fR or \fBdb\fR format.
+#      rewriting, mail routing, or access control. These tables
+#      are usually in \fBdbm\fR or \fBdb\fR format.
 #
 #      Alternatively, lookup tables can be specified in POSIX regular
 #      expression form. In this case, each input is compared against a
index 34b6beee4686e0669f09394887ca1d0caa0cd4ca..6e6c32dfeeddf452f5c51e44524e744f5e706787 100644 (file)
 #      The input format for the \fBpostmap\fR(1) command is as follows:
 # .IP \(bu
 #      An entry has one of the following form:
-# .ti +5
-#      \fIpattern      new_location\fR
-# .br
+#
+# .nf
+#           \fIpattern      new_location\fR
+# .fi
+#
 #      Where \fInew_location\fR specifies contact information such as
 #      an email address, or perhaps a street address or telephone number.
 # .IP \(bu
index 6f1985496456793200cae0db811179f3abbdae17..f51fe30e6f496a990c54ac25155005c3a3f96429 100644 (file)
 #      \fBpostmap -q - /etc/postfix/transport <\fIinputfile\fR
 # DESCRIPTION
 #      The optional \fBtransport\fR(5) table specifies a mapping from email
-#      addresses to message delivery transports and next-hop hosts. The
+#      addresses to message delivery transports and next-hop destinations. 
+#      Message delivery transports such as \fBlocal\fR or \fBsmtp\fR
+#      are defined in the \fBmaster.cf\fR file, and next-hop
+#      destinations are typically hosts or domain names. The
 #      table is searched by the \fBtrivial-rewrite\fR(8) daemon.
 #
 #      This mapping overrides the default \fItransport\fR:\fInexthop\fR
 #      the nexthop information) and specify a wildcard for all other
 #      destinations.
 #
-# .ti +5
-#      \fB\&my.domain    :\fR
-# .ti +5
-#      \fB\&.my.domain   :\fR
-# .ti +5
-#      \fB*         smtp:outbound-relay.my.domain\fR
+# .nf
+#           \fB\&my.domain    :\fR
+#           \fB\&.my.domain   :\fR
+#           \fB*            smtp:outbound-relay.my.domain\fR
+# .fi
 #
 #      In order to send mail for \fBexample.com\fR and its subdomains
 #      via the \fBuucp\fR transport to the UUCP host named \fBexample\fR:
 #
-# .ti +5
-#      \fBexample.com      uucp:example\fR
-# .ti +5
-#      \fB\&.example.com     uucp:example\fR
+# .nf
+#           \fBexample.com      uucp:example\fR
+#           \fB\&.example.com     uucp:example\fR
+# .fi
 #
 #      When no nexthop host name is specified, the destination domain
 #      name is used instead. For example, the following directs mail for
 #      exchanger for \fBexample.com\fR.  The \fBslow\fR transport could be
 #      configured to run at most one delivery process at a time:
 #
-# .ti +5
-#      \fBexample.com      slow:\fR
+# .nf
+#           \fBexample.com      slow:\fR
+# .fi
 #
 #      When no transport is specified, Postfix uses the transport that
 #      matches the address domain class (see DESCRIPTION
 #      above).  The following sends all mail for \fBexample.com\fR and its
 #      subdomains to host \fBgateway.example.com\fR:
 #
-# .ti +5
-#      \fBexample.com      :[gateway.example.com]\fR
-# .ti +5
-#      \fB\&.example.com     :[gateway.example.com]\fR
+# .nf
+#           \fBexample.com      :[gateway.example.com]\fR
+#           \fB\&.example.com     :[gateway.example.com]\fR
+# .fi
 #
 #      In the above example, the [] suppress MX lookups.
 #      This prevents mail routing loops when your machine is primary MX
 #      In the case of delivery via SMTP, one may specify
 #      \fIhostname\fR:\fIservice\fR instead of just a host:
 #
-# .ti +5
-#      \fBexample.com      smtp:bar.example:2025\fR
+# .nf
+#           \fBexample.com      smtp:bar.example:2025\fR
+# .fi
 #
 #      This directs mail for \fIuser\fR@\fBexample.com\fR to host \fBbar.example\fR
 #      port \fB2025\fR. Instead of a numerical port a symbolic name may be
 #
 #      The error mailer can be used to bounce mail:
 #
-# .ti +5
-#      \fB\&.example.com     error:mail for *.example.com is not deliverable\fR
+# .nf
+#           \fB\&.example.com     error:mail for *.example.com is not deliverable\fR
+# .fi
 #
 #      This causes all mail for \fIuser\fR@\fIanything\fB.example.com\fR
 #      to be bounced.
 #      Patterns are applied in the order as specified in the table, until a
 #      pattern is found that matches the search string.
 #
-#      Results are the same as with indexed file lookups, with
-#      the additional feature that parenthesized substrings from the
-#      pattern can be interpolated as \fB$1\fR, \fB$2\fR and so on.
+#      The \fBtrivial-rewrite\fR(8) server disallows regular
+#      expression substitution of $1 etc. in regular expression
+#      lookup tables, because that could open a security hole
+#      (Postfix version 2.3 and later).
 # TCP-BASED TABLES
 # .ad
 # .fi
index 256b977168be1b66191a4f0d8d0579e9b3d7ec90..8a2d28f607dbecab1be42a873e95ce13df07e4f3 100644 (file)
@@ -96,8 +96,9 @@
 #      Postfix SMTP server accepts
 #      mail for any recipient in \fIdomain\fR, regardless of whether
 #      that recipient exists.  This may turn your mail system into
-#      a backscatter source that returns undeliverable spam to
-#      innocent people.
+#      a backscatter source: Postfix first accepts mail for
+#      non-existent recipients and then tries to return that mail
+#      as "undeliverable" to the often forged sender address.
 # RESULT ADDRESS REWRITING
 # .ad
 # .fi
 #
 #      Support for a virtual alias domain looks like:
 #
+# .nf
 #      /etc/postfix/main.cf:
-# .in +4
-#      virtual_alias_maps = hash:/etc/postfix/virtual
+#          virtual_alias_maps = hash:/etc/postfix/virtual
+# .fi
 #
 #      Note: some systems use \fBdbm\fR databases instead of \fBhash\fR.
 #      See the output from "\fBpostconf -m\fR" for available database types.
 #
-# .ti -4
-#      /etc/postfix/virtual:
 # .nf
-# .na
-#      \fIvirtual-alias.domain anything\fR (right-hand content does not matter)
-#      \fIpostmaster@virtual-alias.domain      postmaster\fR
-#      \fIuser1@virtual-alias.domain   address1\fR
-#      \fIuser2@virtual-alias.domain   address2, address3\fR
-# .fi
-# .in -4
-# .ad
+#      /etc/postfix/virtual:
+#          \fIvirtual-alias.domain     anything\fR (right-hand content does not matter)
+#          \fIpostmaster@virtual-alias.domain  postmaster\fR
+#          \fIuser1@virtual-alias.domain       address1\fR
+#          \fIuser2@virtual-alias.domain       address2, address3\fR
 # .fi
 # .sp
 #      The \fIvirtual-alias.domain anything\fR entry is required for a
index ed5c58a3a572751ad277f01a055d975e23a02ddf..79377009030ee95fd201155d94477c91b11ab1d8 100644 (file)
 /* .fi
 /*     To register a new connection send the following request to
 /*     the \fBanvil\fR(8) server:
-/* .PP
-/* .in +4
-/*     \fBrequest=connect\fR
-/* .br
-/*     \fBident=\fIstring\fR
-/* .in
-/* .PP
+/*
+/* .nf
+/*         \fBrequest=connect\fR
+/*         \fBident=\fIstring\fR
+/* .fi
+/*
 /*     The \fBanvil\fR(8) server answers with the number of
 /*     simultaneous connections and the number of connections per
 /*     unit time for the (service, client) combination specified
 /*     with \fBident\fR:
-/* .PP
-/* .in +4
-/*     \fBstatus=0\fR
-/* .br
-/*     \fBcount=\fInumber\fR
-/* .br
-/*     \fBrate=\fInumber\fR
-/* .in
-/* .PP
+/*
+/* .nf
+/*         \fBstatus=0\fR
+/*         \fBcount=\fInumber\fR
+/*         \fBrate=\fInumber\fR
+/* .fi
+/*
 /*     To register a disconnect event send the following request
 /*     to the \fBanvil\fR(8) server:
-/* .PP
-/* .in +4
-/*     \fBrequest=disconnect\fR
-/* .br
-/*     \fBident=\fIstring\fR
-/* .in
-/* .PP
+/*
+/* .nf
+/*         \fBrequest=disconnect\fR
+/*         \fBident=\fIstring\fR
+/* .fi
+/*
 /*     The \fBanvil\fR(8) server replies with:
-/* .PP
-/* .ti +4
-/*     \fBstatus=0\fR
+/*
+/* .nf
+/*         \fBstatus=0\fR
+/* .fi
 /* MESSAGE RATE CONTROL
 /* .ad
 /* .fi
 /*     To register a message delivery request send the following
 /*     request to the \fBanvil\fR(8) server:
-/* .PP
-/* .in +4
-/*     \fBrequest=message\fR
-/* .br
-/*     \fBident=\fIstring\fR
-/* .in
-/* .PP
+/*
+/* .nf
+/*         \fBrequest=message\fR
+/*         \fBident=\fIstring\fR
+/* .fi
+/*
 /*     The \fBanvil\fR(8) server answers with the number of message
 /*     delivery requests per unit time for the (service, client)
 /*     combination specified with \fBident\fR:
-/* .PP
-/* .in +4
-/*     \fBstatus=0\fR
-/* .br
-/*     \fBrate=\fInumber\fR
-/* .in
+/*
+/* .nf
+/*         \fBstatus=0\fR
+/*         \fBrate=\fInumber\fR
+/* .fi
 /* RECIPIENT RATE CONTROL
 /* .ad
 /* .fi
 /*     To register a recipient request send the following request
 /*     to the \fBanvil\fR(8) server:
-/* .PP
-/* .in +4
-/*     \fBrequest=recipient\fR
-/* .br
-/*     \fBident=\fIstring\fR
-/* .in
-/* .PP
+/*
+/* .nf
+/*         \fBrequest=recipient\fR
+/*         \fBident=\fIstring\fR
+/* .fi
+/*
 /*     The \fBanvil\fR(8) server answers with the number of recipient
 /*     addresses per unit time for the (service, client) combination
 /*     specified with \fBident\fR:
-/* .PP
-/* .in +4
-/*     \fBstatus=0\fR
-/* .br
-/*     \fBrate=\fInumber\fR
-/* .in
+/*
+/* .nf
+/*         \fBstatus=0\fR
+/*         \fBrate=\fInumber\fR
+/* .fi
 /* TLS SESSION NEGOTIATION RATE CONTROL
 /* .ad
 /* .fi
 /*
 /*     To register a request for a new (i.e. not cached) TLS session
 /*     send the following request to the \fBanvil\fR(8) server:
-/* .PP
-/* .in +4
-/*     \fBrequest=newtls\fR
-/* .br
-/*     \fBident=\fIstring\fR
-/* .in
-/* .PP
+/*
+/* .nf
+/*         \fBrequest=newtls\fR
+/*         \fBident=\fIstring\fR
+/* .fi
+/*
 /*     The \fBanvil\fR(8) server answers with the number of new
 /*     TLS session requests per unit time for the (service, client)
 /*     combination specified with \fBident\fR:
-/* .PP
-/* .in +4
-/*     \fBstatus=0\fR
-/* .br
-/*     \fBrate=\fInumber\fR
-/* .in
-/* .PP
+/*
+/* .nf
+/*         \fBstatus=0\fR
+/*         \fBrate=\fInumber\fR
+/* .fi
+/*
 /*     To retrieve new TLS session request rate information without
 /*     updating the counter information, send:
-/* .PP
-/* .in +4
-/*     \fBrequest=newtls_report\fR
-/* .br
-/*     \fBident=\fIstring\fR
-/* .in
-/* .PP
+/*
+/* .nf
+/*         \fBrequest=newtls_report\fR
+/*         \fBident=\fIstring\fR
+/* .fi
+/*
 /*     The \fBanvil\fR(8) server answers with the number of new
 /*     TLS session requests per unit time for the (service, client)
 /*     combination specified with \fBident\fR:
-/* .PP
-/* .in +4
-/*     \fBstatus=0\fR
-/* .br
-/*     \fBrate=\fInumber\fR
-/* .in
+/*
+/* .nf
+/*         \fBstatus=0\fR
+/*         \fBrate=\fInumber\fR
+/* .fi
 /* SECURITY
 /* .ad
 /* .fi
index 48063735e4278070a2f87be8103434a93269abcd..8afb4cef9cbd480cbe843eb4a4a78cf6f5ab9ac9 100644 (file)
@@ -9,7 +9,7 @@ This is the mail system at host $myhostname.
 I'm sorry to have to inform you that your message could not
 be delivered to one or more recipients. It's attached below.
 
-For further assistance, please send mail to <postmaster>
+For further assistance, please send mail to postmaster.
 
 If you do so, please include this problem report. You can
 delete your own text from the attached returned message.
@@ -32,7 +32,7 @@ This is the mail system at host $myhostname.
 Your message could not be delivered for more than $delay_warning_time_hours hour(s).
 It will be retried until it is $maximal_queue_lifetime_days day(s) old.
 
-For further assistance, please send mail to <postmaster>
+For further assistance, please send mail to postmaster.
 
 If you do so, please include this problem report. You can
 delete your own text from the attached returned message.
@@ -77,7 +77,7 @@ This is the mail system at host $myhostname.
 I'm sorry to have to inform you that your message could not
 be delivered to one or more recipients. It's attached below.
 
-For further assistance, please send mail to <postmaster>
+For further assistance, please send mail to postmaster.
 
 If you do so, please include this problem report. You can
 delete your own text from the attached returned message.
@@ -100,7 +100,7 @@ This is the mail system at host $myhostname.
 Your message could not be delivered for more than $delay_warning_time_hours hour(s).
 It will be retried until it is $maximal_queue_lifetime_days day(s) old.
 
-For further assistance, please send mail to <postmaster>
+For further assistance, please send mail to postmaster.
 
 If you do so, please include this problem report. You can
 delete your own text from the attached returned message.
index 4769d56acab68c27c8fa3f62666873a4d5b9649c..e03bb5b8b46f0a8267cc519831070b076f25603d 100644 (file)
@@ -9,7 +9,7 @@ This is the mail system at host $myhostname.
 I'm sorry to have to inform you that your message could not
 be delivered to one or more recipients. It's attached below.
 
-For further assistance, please send mail to <postmaster>
+For further assistance, please send mail to postmaster.
 
 If you do so, please include this problem report. You can
 delete your own text from the attached returned message.
@@ -32,7 +32,7 @@ This is the mail system at host $myhostname.
 Your message could not be delivered for more than $delay_warning_time_hours hour(s).
 It will be retried until it is $maximal_queue_lifetime_days day(s) old.
 
-For further assistance, please send mail to <postmaster>
+For further assistance, please send mail to postmaster.
 
 If you do so, please include this problem report. You can
 delete your own text from the attached returned message.
index b624ee382930548693db2d41d8782cb551b683b5..bf4954ff8ec0abdf7901bb7612c5ff856f31e3d1 100644 (file)
@@ -20,8 +20,8 @@
   * Patches change both the patchlevel and the release date. Snapshots have no
   * patchlevel; they change the release date only.
   */
-#define MAIL_RELEASE_DATE      "20070325"
-#define MAIL_VERSION_NUMBER    "2.4"
+#define MAIL_RELEASE_DATE      "20070328"
+#define MAIL_VERSION_NUMBER    "2.5"
 
 #ifdef SNAPSHOT
 # define MAIL_VERSION_DATE     "-" MAIL_RELEASE_DATE
index 164896ca681c35c0301528d7578b93b8cb8328d7..d56584ca7b077e0c12f4d8927ff7319a746a515e 100644 (file)
 /*
 /*     To prevent Postfix from sending multiple recipients per delivery
 /*     request, specify
-/*
-/* .ti +4
-/*     \fItransport\fB_destination_recipient_limit = 1\fR
+/* .sp
+/* .nf
+/*         \fItransport\fB_destination_recipient_limit = 1\fR
+/* .fi
 /*
 /*     in the Postfix \fBmain.cf\fR file, where \fItransport\fR
 /*     is the name in the first column of the Postfix \fBmaster.cf\fR
 /*     Caution: a null sender address is easily mis-parsed by
 /*     naive software. For example, when the \fBpipe\fR(8) daemon
 /*     executes a command such as:
-/*
-/* .ti +4
-/*     command -f$sender -- $recipient (\fIbad\fR)
-/*
+/* .sp
+/* .nf
+/*         command -f$sender -- $recipient (\fIbad\fR)
+/* .fi
+/* .IP
 /*     the command will mis-parse the -f option value when the
 /*     sender address is a null string.  For correct parsing,
 /*     specify \fB$sender\fR as an argument by itself:
-/*
-/* .ti +4
-/*     command -f $sender -- $recipient (\fIgood\fR)
-/*
+/* .sp
+/* .nf
+/*         command -f $sender -- $recipient (\fIgood\fR)
+/* .fi
+/* .IP
 /*     This feature is available with Postfix 2.3 and later.
 /* .IP "\fBsize\fR=\fIsize_limit\fR (optional)"
 /*     Messages greater in size than this limit (in bytes) will
index 5befc3e695ac0c1a4afac75c684f3c0aa5309cee..0f09630bbb68c7bc16224abb3cb882ec3bec7518 100644 (file)
@@ -13,8 +13,9 @@
 /*     lookup tables, or updates an existing one. The input and output
 /*     file formats are expected to be compatible with:
 /*
-/* .ti +4
-/*     \fBmakemap \fIfile_type\fR \fIfile_name\fR < \fIfile_name\fR
+/* .nf
+/*         \fBmakemap \fIfile_type\fR \fIfile_name\fR < \fIfile_name\fR
+/* .fi
 /*
 /*     If the result files do not exist they will be created with the
 /*     same group and other read permissions as their source file.
@@ -30,8 +31,9 @@
 /* .IP \(bu
 /*     A table entry has the form
 /* .sp
-/* .ti +5
-/*     \fIkey\fR whitespace \fIvalue\fR
+/* .nf
+/*          \fIkey\fR whitespace \fIvalue\fR
+/* .fi
 /* .IP \(bu
 /*     Empty lines and whitespace-only lines are ignored, as
 /*     are lines whose first non-whitespace character is a `#'.
index 47f67485c84dac7741413f90232e6821aac3d292..65172d08a639a1222e8da4c2a779716996e49db2 100644 (file)
 /*     queue IDs from standard input. For example, to delete all mail
 /*     with exactly one recipient \fBuser@example.com\fR:
 /* .sp
+/* .nf
 /*     mailq | tail +2 | grep -v '^ *(' | awk  \'BEGIN { RS = "" }
-/* .ti +4
-/*     # $7=sender, $8=recipient1, $9=recipient2
-/* .ti +4
-/*     { if ($8 == "user@example.com" && $9 == "")
-/* .ti +10
-/*     print $1 }
-/* .br
+/*         # $7=sender, $8=recipient1, $9=recipient2
+/*         { if ($8 == "user@example.com" && $9 == "")
+/*               print $1 }
 /*     \' | tr -d '*!' | postsuper -d -
+/* .fi
 /* .sp
 /*     Specify "\fB-d ALL\fR" to remove all messages; for example, specify
 /*     "\fB-d ALL deferred\fR" to delete all mail in the \fBdeferred\fR queue.
index a9eb0c06b6c1dc8dbbedcbfaf66d7a133fcbbf49..a4412058e3e70fa74ccc9fe63aab3ab0023b6f04 100644 (file)
 /*     practical to maintain a copy of the passwd file in the chroot
 /*     jail.  The solution:
 /* .sp
+/* .nf
 /*     local_recipient_maps =
-/* .ti +4
-/*     proxy:unix:passwd.byname $alias_maps
+/*         proxy:unix:passwd.byname $alias_maps
+/* .fi
 /* .IP \(bu
 /*     To consolidate the number of open lookup tables by sharing
 /*     one open table among multiple processes. For example, making
 /*     mysql connections from every Postfix daemon process results
 /*     in "too many connections" errors. The solution:
 /* .sp
+/* .nf
 /*     virtual_alias_maps =
-/* .ti +4
-/*     proxy:mysql:/etc/postfix/virtual_alias.cf
+/*         proxy:mysql:/etc/postfix/virtual_alias.cf
+/* .fi
 /* .sp
 /*     The total number of connections is limited by the number of
 /*     proxymap server processes.
index c522278746f28d120c221c693a89be3035ada4d8..7d6e1b8e8617a368da49ade3b465901b4d8f1e2c 100644 (file)
@@ -26,8 +26,9 @@
 /*
 /*     The mailbox pathname is constructed as follows:
 /*
-/* .ti +2
-/*     \fB$virtual_mailbox_base/$virtual_mailbox_maps(\fIrecipient\fB)\fR
+/* .nf
+/*       \fB$virtual_mailbox_base/$virtual_mailbox_maps(\fIrecipient\fB)\fR
+/* .fi
 /*
 /*     where \fIrecipient\fR is the full recipient address.
 /* UNIX MAILBOX FORMAT