]> git.ipfire.org Git - thirdparty/postfix.git/commitdiff
snapshot-20001118
authorWietse Venema <wietse@porcupine.org>
Sat, 18 Nov 2000 05:00:00 +0000 (00:00 -0500)
committerViktor Dukhovni <viktor@dukhovni.org>
Tue, 5 Feb 2013 06:26:54 +0000 (06:26 +0000)
40 files changed:
postfix/HISTORY
postfix/SASL_README
postfix/conf/aliases
postfix/conf/canonical
postfix/conf/sample-rewrite.cf
postfix/conf/virtual
postfix/html/aliases.5.html
postfix/html/canonical.5.html
postfix/html/faq.html
postfix/html/flush.8.html
postfix/html/local.8.html
postfix/html/sendmail.1.html
postfix/html/smtpd.8.html
postfix/html/virtual.5.html
postfix/man/man1/sendmail.1
postfix/man/man5/aliases.5
postfix/man/man5/canonical.5
postfix/man/man5/virtual.5
postfix/man/man8/flush.8
postfix/man/man8/local.8
postfix/man/man8/smtpd.8
postfix/proto/aliases
postfix/proto/canonical
postfix/proto/virtual
postfix/src/global/mail_version.h
postfix/src/local/local.c
postfix/src/local/recipient.c
postfix/src/master/master.c
postfix/src/nqmgr/qmgr_message.c
postfix/src/nqmgr/qmgr_peer.c
postfix/src/nqmgr/qmgr_queue.c
postfix/src/qmgr/qmgr_queue.c
postfix/src/sendmail/sendmail.c
postfix/src/smtpd/smtpd.c
postfix/src/smtpd/smtpd_chat.c
postfix/src/smtpd/smtpd_check.c
postfix/src/smtpd/smtpd_check.ref
postfix/src/smtpd/smtpd_check.ref2
postfix/src/util/clean_env.c
postfix/src/util/dict_ldap.c

index 209aa5cb336b1ed9ca03c1187694fd67a8964243..fb2f94b1ed49e5c360c3f951582a28ae3380ccd6 100644 (file)
@@ -4445,3 +4445,53 @@ Apologies for any names omitted.
 
        Cleanup: changed prototype of internal function that did
        not return a useful result. File: src/util/vstream_popen.c.
+
+20001110
+
+       Workaround: the Debian post install script passes an open
+       file descriptor into the master server and waits forever.
+       Reported by Lamont Jones. File: master/master.c.
+
+20001114
+
+       Compatibility: added sendmail -G (gateway submission) option
+       for compatibility with the sendmail rmail command. Requested
+       by David Gilbert, Velocet Communications.
+
+20001116
+
+       Documentation: added MAILER-DAEMON to the list of sample
+       masquerade_exceptions settings in conf/sample-rewrite.cf.
+       Suggested by Karl O. Pinc, pop.artic.edu.
+
+       Performance: the slow start (gradually increase number of
+       parallel connections to the same site) was too gentle and
+       Postfix would back off too quickly. Files: qmgr/qmgr_queue.c
+       and nqmgr/qmgr_queue.c. Yup, changed the same code, again.
+       We now allow for a margin above the actual concurrency,
+       with the size of the initial destination concurrency.
+
+       Bugfix: the recipient home directory test broke mailbox_transport
+       support for non-UNIX recipients.  File:  local/recipient.c.
+
+20001117
+
+       Robustness: additional integrity tests for the nqmgr by
+       Patrik Rak. File: nqmgr/qmgr_message.c.
+
+20001118
+
+       Bugfix: the new LDAP client code did not work properly if
+       the new ldap_domain parameter was not specified. LaMont
+       Jones, HP.  File: util/dict_ldap.c.
+
+       Feature: the soft_bounce safety net is extended to the SMTP
+       server. With "soft_bounce = yes", The SMTP server changes
+       all 5xx (reject) replies into 4xx (try again) replies.
+
+       Documentation: the virtual(5) man page now documents both
+       Postfix-style virtual domains and Sendmail-style virtual
+       domains, including their interaction with local usernames,
+       aliases and mailing lists. Hopefully, this ends some of
+       the confusion surrounding virtual domain support. Updated
+       several FAQ entries concerning virtual domain support.
index 2714879616fb600d05094e19437ce980a1946fa8..537337715157490f7c25a26bbf3e4720c0d25fed 100644 (file)
@@ -45,6 +45,10 @@ from:
 IMPORTANT: if you install the Cyrus SASL libraries as per the default,
 you will have to symlink /usr/lib/sasl -> /usr/local/lib/sasl.
 
+Reportedly, Microsoft Internet Explorer version 5 requires the
+non-standard SASL LOGIN authentication method. To enable this
+authentication method, specify ``./configure --enable-login''.
+
 Building Postfix with SASL authentication support
 =================================================
 
index cdf06c1fbdb06a0b7f13bc6c3c7b1692f11ed715..6ef99b3ff767f1ca5e873be7faec78148a7115ce 100644 (file)
@@ -43,16 +43,17 @@ decode:             root
 # 
 # DESCRIPTION
 #        The aliases file provides a system-wide mechanism to redi-
-#        rect mail for local recipients.
+#        rect mail for local recipients. The redirections are  pro-
+#        cessed by the Postfix local(8) delivery agent.
 # 
-#        The file serves as input to the postalias(1) command.  The
-#        result,  an  indexed file in dbm or db format, is used for
-#        fast lookup  by  the  mail  system.  Execute  the  command
-#        newaliases  in  order  to  rebuild  the indexed file after
+#        The  file serves as input to the postalias(1) command. The
+#        result, an indexed file in dbm or db format, is  used  for
+#        fast  lookup  by  the  mail  system.  Execute  the command
+#        newaliases in order to  rebuild  the  indexed  file  after
 #        changing the Postfix alias database.
 # 
-#        The input and output file formats are expected to be  com-
-#        patible  with  Sendmail  version 8, and are expected to be
+#        The  input and output file formats are expected to be com-
+#        patible with Sendmail version 8, and are  expected  to  be
 #        suitable for the use as NIS maps.
 # 
 #        Users can control delivery of their own mail by setting up
@@ -66,57 +67,56 @@ decode:             root
 # 
 #                    name: value1, value2, ...
 # 
-#        o      Lines that begin with whitespace continue the  pre-
+#        o      Lines  that begin with whitespace continue the pre-
 #               vious line.
 # 
-#        o      Blank  lines  are  ignored,  as are lines beginning
+#        o      Blank lines are ignored,  as  are  lines  beginning
 #               with `#'.
 # 
-#        The name is a local address (no domain part).  Use  double
-#        quotes  when the name contains any special characters such
-#        as whitespace, `#', `:', or `@'. The  name  is  folded  to
+#        The  name is a local address (no domain part).  Use double
+#        quotes when the name contains any special characters  such
+#        as  whitespace,  `#',  `:',  or `@'. The name is folded to
 #        lowercase, in order to make database lookups case insensi-
 #        tive.
 # 
 #        In addition, when an alias exists for owner-name, delivery
-#        diagnostics  are  directed  to that address, instead of to
+#        diagnostics are directed to that address,  instead  of  to
 #        the originator.  This is typically used to direct delivery
-#        errors  to the owner of a mailing list, who is in a better
-#        position to deal with mailing list delivery problems  than
+#        errors to the owner of a mailing list, who is in a  better
+#        position  to deal with mailing list delivery problems than
 #        the originator of the undelivered mail.
 # 
 #        The value contains one or more of the following:
 # 
-#        address
-#               Mail  is  forwarded to address, which is compatible
-# 
 #                                                                 1
 # 
 # ALIASES(5)                                             ALIASES(5)
 # 
+#        address
+#               Mail is forwarded to address, which  is  compatible
 #               with the RFC 822 standard.
 # 
 #        /file/name
-#               Mail is appended to /file/name.  See  local(8)  for
-#               details  of delivery to file.  Delivery is not lim-
-#               ited to regular files.  For example, to dispose  of
+#               Mail  is  appended  to /file/name. See local(8) for
+#               details of delivery to file.  Delivery is not  lim-
+#               ited  to regular files.  For example, to dispose of
 #               unwanted mail, deflect it to /dev/null.
 # 
 #        |command
-#               Mail  is  piped into command. Commands that contain
-#               special characters, such as whitespace,  should  be
-#               enclosed  between  double  quotes. See local(8) for
+#               Mail is piped into command. Commands  that  contain
+#               special  characters,  such as whitespace, should be
+#               enclosed between double quotes.  See  local(8)  for
 #               details of delivery to command.
 # 
 #               When the command fails, a limited amount of command
-#               output  is  mailed  back  to  the sender.  The file
-#               /usr/include/sysexits.h defines the  expected  exit
-#               status  codes. For example, use |"exit 67" to simu-
-#               late a "user  unknown"  error,  and  |"exit  0"  to
+#               output is mailed back  to  the  sender.   The  file
+#               /usr/include/sysexits.h  defines  the expected exit
+#               status codes. For example, use |"exit 67" to  simu-
+#               late  a  "user  unknown"  error,  and  |"exit 0" to
 #               implement an expensive black hole.
 # 
 #        :include:/file/name
-#               Mail  is  sent  to  the  destinations listed in the
+#               Mail is sent to  the  destinations  listed  in  the
 #               named file.  Lines in :include: files have the same
 #               syntax as the right-hand side of alias entries.
 # 
@@ -128,37 +128,37 @@ decode:           root
 # 
 # ADDRESS EXTENSION
 #        When alias database search fails, and the recipient local-
-#        part contains  the  optional  recipient  delimiter  (e.g.,
-#        user+foo),  the  search  is  repeated  for  the unextended
+#        part  contains  the  optional  recipient  delimiter (e.g.,
+#        user+foo), the  search  is  repeated  for  the  unextended
 #        address (e.g., user).
 # 
 # CONFIGURATION PARAMETERS
-#        The following main.cf parameters are  especially  relevant
-#        to  this  topic.  See  the Postfix main.cf file for syntax
-#        details and for default values.  Use  the  postfix  reload
+#        The  following  main.cf parameters are especially relevant
+#        to this topic. See the Postfix  main.cf  file  for  syntax
+#        details  and  for  default  values. Use the postfix reload
 #        command after a configuration change.
 # 
 #        alias_maps
 #               List of alias databases.
 # 
 #        allow_mail_to_commands
-#               Restrict  the  usage  of  mail delivery to external
-#               command.
-# 
-#        allow_mail_to_files
 #               Restrict the usage of  mail  delivery  to  external
-#               file.
+#               command.
 # 
 #                                                                 2
 # 
 # ALIASES(5)                                             ALIASES(5)
 # 
+#        allow_mail_to_files
+#               Restrict  the  usage  of  mail delivery to external
+#               file.
+# 
 #        owner_request_special
 #               Give special treatment to owner-xxx and xxx-request
 #               addresses.
 # 
 #        recipient_delimiter
-#               Delimiter that separates  recipients  from  address
+#               Delimiter  that  separates  recipients from address
 #               extensions.
 # 
 # STANDARDS
@@ -169,7 +169,7 @@ decode:             root
 #        postalias(1) alias database management
 # 
 # LICENSE
-#        The  Secure  Mailer  license must be distributed with this
+#        The Secure Mailer license must be  distributed  with  this
 #        software.
 # 
 # AUTHOR(S)
index c00227c2986ae3bdb27a8ff40ef2e9341b95fd90..6be24c04083f317abd84c4b1d8e9a0e90f7f008b 100644 (file)
@@ -8,50 +8,51 @@
 #        postmap /etc/postfix/canonical
 # 
 # DESCRIPTION
-#        The  optional  canonical file specifies an address mapping
+#        The  optional canonical table specifies an address mapping
 #        for local and non-local addresses. The mapping is used  by
 #        the  cleanup(8) daemon.  The address mapping is recursive.
 # 
-#        Normally, the file serves as input to the postmap(1)  com-
-#        mand.  The result, an indexed file in dbm or db format, is
-#        used for fast searching by the mail  system.  Execute  the
-#        command postmap /etc/postfix/canonical in order to rebuild
-#        the indexed file after changing the canonical table.
+#        Normally, the canonical table is specified as a text  file
+#        that  serves  as  input  to  the  postmap(1) command.  The
+#        result, an indexed file in dbm or db format, is  used  for
+#        fast  searching  by  the  mail system. Execute the command
+#        postmap /etc/postfix/canonical in  order  to  rebuild  the
+#        indexed file after changing the text file.
 # 
-#        When the table is provided via other means  such  as  NIS,
-#        LDAP  or  SQL,  the  same lookups are done as for ordinary
+#        When  the  table  is provided via other means such as NIS,
+#        LDAP or SQL, the same lookups are  done  as  for  ordinary
 #        indexed files.
 # 
-#        Alternatively, the table can be  provided  as  a  regular-
+#        Alternatively,  the  table  can  be provided as a regular-
 #        expression map where patterns are given as regular expres-
-#        sions. In that case, the lookups are done  in  a  slightly
+#        sions.  In  that  case, the lookups are done in a slightly
 #        different way as described below.
 # 
-#        The   canonical   mapping   affects  both  message  header
+#        The  canonical  mapping  affects   both   message   header
 #        addresses (i.e. addresses that appear inside messages) and
-#        message  envelope  addresses  (for  example, the addresses
-#        that are used in SMTP protocol commands).  Think  Sendmail
+#        message envelope addresses  (for  example,  the  addresses
+#        that  are  used in SMTP protocol commands). Think Sendmail
 #        rule set S3, if you like.
 # 
-#        Typically,  one  would  use the canonical table to replace
-#        login  names  by  Firstname.Lastname,  or  to   clean   up
+#        Typically, one would use the canonical  table  to  replace
+#        login   names   by  Firstname.Lastname,  or  to  clean  up
 #        addresses produced by legacy mail systems.
 # 
-#        The  canonical  mapping is not to be confused with virtual
+#        The canonical mapping is not to be confused  with  virtual
 #        domain support. Use the virtual(5) map for that purpose.
 # 
-#        The canonical mapping is not to  be  confused  with  local
+#        The  canonical  mapping  is  not to be confused with local
 #        aliasing.  Use the aliases(5) map for that purpose.
 # 
 # TABLE FORMAT
 #        The format of the canonical table is as follows:
 # 
 #        blanks and comments
-#               Blank  lines  are  ignored,  as are lines beginning
+#               Blank lines are ignored,  as  are  lines  beginning
 #               with `#'.
 # 
 #        leading whitespace
-#               Lines that begin with whitespace continue the  pre-
+#               Lines  that begin with whitespace continue the pre-
 #               vious line.
 # 
 #                                                                 1
 # CANONICAL(5)                                         CANONICAL(5)
 # 
 #        pattern result
-#               When  pattern matches a mail address, replace it by
+#               When pattern matches a mail address, replace it  by
 #               the corresponding result.
 # 
 #        With lookups from indexed files such as DB or DBM, or from
-#        networked  tables  such  as NIS, LDAP or SQL, patterns are
+#        networked tables such as NIS, LDAP or  SQL,  patterns  are
 #        tried in the order as listed below:
 # 
 #        user@domain address
-#               user@domain is replaced by address. This  form  has
+#               user@domain  is  replaced by address. This form has
 #               the highest precedence.
 # 
-#               This  form useful to clean up addresses produced by
-#               legacy mail systems.  It can also be used  to  pro-
-#               duce  Firstname.Lastname  style  addresses, but see
+#               This form useful to clean up addresses produced  by
+#               legacy  mail  systems.  It can also be used to pro-
+#               duce Firstname.Lastname style  addresses,  but  see
 #               below for a simpler solution.
 # 
 #        user address
 #               user@site is replaced by address when site is equal
-#               to  $myorigin,  when  site is listed in $mydestina-
+#               to $myorigin, when site is  listed  in  $mydestina-
 #               tion, or when it is listed in $inet_interfaces.
 # 
-#               This form is useful for replacing  login  names  by
+#               This  form  is  useful for replacing login names by
 #               Firstname.Lastname.
 # 
 #        @domain address
-#               Every  address  in  domain  is replaced by address.
+#               Every address in domain  is  replaced  by  address.
 #               This form has the lowest precedence.
 # 
-#        In all the above forms, when address has the form  @other-
+#        In  all the above forms, when address has the form @other-
 #        domain, the result is the same user in otherdomain.
 # 
 # ADDRESS EXTENSION
-#        When  table  lookup  fails, and the address localpart con-
-#        tains   the   optional    recipient    delimiter    (e.g.,
-#        user+foo@domain),  the  search  is  repeated for the unex-
-#        tended address  (e.g.   user@domain),  and  the  unmatched
+#        When table lookup fails, and the  address  localpart  con-
+#        tains    the    optional    recipient   delimiter   (e.g.,
+#        user+foo@domain), the search is  repeated  for  the  unex-
+#        tended  address  (e.g.   user@domain),  and  the unmatched
 #        extension is propagated to the result of table lookup. The
 #        matching order is: user+foo@domain, user@domain, user+foo,
 #        user, and @domain.
 # 
 # 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
+#        Each  pattern  is  a regular expression that is applied to
 #        the entire address being looked up. Thus, user@domain mail
-#        addresses are not broken up into their  user  and  @domain
+#        addresses  are  not  broken up into their user and @domain
 #        constituent parts, nor is user+foo broken up into user and
 #        foo.
 # 
-#        Patterns are applied in the  order  as  specified  in  the
+#        Patterns  are  applied  in  the  order as specified in the
 # 
 #                                                                 2
 # 
 # CANONICAL(5)                                         CANONICAL(5)
 # 
-#        table,  until  a  pattern is found that matches the search
+#        table, until a pattern is found that  matches  the  search
 #        string.
 # 
-#        Results are the same as with normal indexed file  lookups,
-#        with  the additional feature that parenthesized substrings
-#        from the pattern can be interpolated as $1, $2 and so  on.
+#        Results  are the same as with normal indexed file lookups,
+#        with the additional feature that parenthesized  substrings
+#        from  the pattern can be interpolated as $1, $2 and so on.
 # 
 # BUGS
-#        The  table format does not understand quoting conventions.
+#        The table format does not understand quoting  conventions.
 # 
 # CONFIGURATION PARAMETERS
-#        The following main.cf parameters are  especially  relevant
-#        to  this  topic.  See  the Postfix main.cf file for syntax
-#        details and for default values.  Use  the  postfix  reload
+#        The  following  main.cf parameters are especially relevant
+#        to this topic. See the Postfix  main.cf  file  for  syntax
+#        details  and  for  default  values. Use the postfix reload
 #        command after a configuration change.
 # 
 #        canonical_maps
 #        Other parameters of interest:
 # 
 #        inet_interfaces
-#               The  network  interface  addresses that this system
+#               The network interface addresses  that  this  system
 #               receives mail on.
 # 
 #        masquerade_domains
-#               List of domains that hide  their  subdomain  struc-
+#               List  of  domains  that hide their subdomain struc-
 #               ture.
 # 
 #        masquerade_exceptions
-#               List  of user names that are not subject to address
+#               List of user names that are not subject to  address
 #               masquerading.
 # 
 #        mydestination
-#               List of domains that  this  mail  system  considers
+#               List  of  domains  that  this mail system considers
 #               local.
 # 
 #        myorigin
 #        regexp_table(5) format of POSIX regular expression tables
 # 
 # LICENSE
-#        The  Secure  Mailer  license must be distributed with this
+#        The Secure Mailer license must be  distributed  with  this
 #        software.
 # 
 # AUTHOR(S)
index 5b5f3a5848c155c4887ac81d03ebc8d736040a73..b4073fb4be087a6cd334364608c6de4784d5ac55 100644 (file)
@@ -40,6 +40,7 @@ masquerade_domains =
 # 
 # By default, address masquerading makes no exceptions.
 # 
+#masquerade_exceptions = root,mailer-daemon
 #masquerade_exceptions = root
 masquerade_exceptions =
 
index 591f146ac46a4819ccc96d768618152a3d8f1181..28066d9813a676b6f2d5f9473e231001d9654b09 100644 (file)
 #        postmap /etc/postfix/virtual
 # 
 # DESCRIPTION
-#        The  optional  virtual  table  specifies  redirections for
-#        local and non-local recipients or  domains.  The  redirec-
-#        tions  are used by the cleanup(8) daemon. The redirections
-#        are recursive.
+#        The  optional virtual table specifies address redirections
+#        for local and non-local recipients or domains.  The  redi-
+#        rections  are  used by the cleanup(8) daemon. The redirec-
+#        tions are recursive.
 # 
-#        The virtual redirection is applied only to  the  recipient
-#        envelope  address,  and  does  not affect message headers.
+#        The virtual redirection is applied only to recipient enve-
+#        lope  addresses,  and  does  not  affect  message headers.
 #        Think Sendmail rule set S0, if you like. Use  canonical(5)
 #        mapping  to  rewrite header and envelope addresses in gen-
 #        eral.
 # 
-#        Normally, the file serves as input to the postmap(1)  com-
-#        mand.  The result, an indexed file in dbm or db format, is
-#        used for fast searching by the mail  system.  Execute  the
-#        command  postmap  /etc/postfix/virtual in order to rebuild
-#        the indexed file after changing the virtual table.
+#        Normally, the virtual table is specified as  a  text  file
+#        that  serves  as  input  to  the  postmap(1) command.  The
+#        result, an indexed file in dbm or db format, is  used  for
+#        fast  searching  by  the  mail system. Execute the command
+#        postmap  /etc/postfix/virtual  in  order  to  rebuild  the
+#        indexed file after changing the text file.
 # 
-#        When the table is provided via other means  such  as  NIS,
-#        LDAP  or  SQL,  the  same lookups are done as for ordinary
+#        When  the  table  is provided via other means such as NIS,
+#        LDAP or SQL, the same lookups are  done  as  for  ordinary
 #        indexed files.
 # 
-#        Alternatively, the table can be  provided  as  a  regular-
+#        Alternatively,  the  table  can  be provided as a regular-
 #        expression map where patterns are given as regular expres-
-#        sions. In that case, the lookups are done  in  a  slightly
+#        sions.  In  that  case, the lookups are done in a slightly
 #        different way as described below.
 # 
-# TABLE FORMAT
-#        Typical  support  for a virtual domain looks like the fol-
-#        lowing:
+# POSTFIX-STYLE VIRTUAL DOMAINS
+#        With a Postfix-style virtual domain,  the  virtual  domain
+#        has  its  own  user  name  space. Local (i.e. non-virtual)
+#        usernames are  not  visible  in  a  Postfix-style  virtual
+#        domain.  In particular, local aliases(5) and mailing lists
+#        are not visible in a Postfix-style virtual domain.
+# 
+#        Use a Sendmail-style virtual domain (see below)  if  local
+#        usernames,  aliases(5)  or mailing lists should be visible
+#        in that virtual domain.
 # 
+#        Support for a Postfix-style virtual domain looks like:
+# 
+#        /etc/postfix/virtual:
 #            virtual.domain       anything (right-hand content does not matter)
 #            postmaster@virtual.domain    postmaster
 #            user1@virtual.domain address1
 #            user2@virtual.domain address2, address3
 # 
-#        With this, the SMTP server accepts mail for virtual.domain
-#        and  rejects mail for unknown@virtual.domain as undeliver-
+#        The  virtual.domain  anything  entry  is  required  for  a
+# 
+#                                                                 1
+# 
+# VIRTUAL(5)                                             VIRTUAL(5)
+# 
+#        Postfix-style virtual domain.
+# 
+#        Do  not  list the virtual domain in the main.cf mydestina-
+#        tion configuration parameter. Such an  entry  is  required
+#        only for a Sendmail-style virtual domain.
+# 
+#        With  a  Postfix-style  virtual  domain,  the Postfix SMTP
+#        server  accepts  mail  for  known-user@virtual.domain  and
+#        rejects mail for unknown-user@virtual.domain as undeliver-
 #        able.
 # 
+# SENDMAIL-STYLE VIRTUAL DOMAINS
+#        With a Sendmail-style virtual domain,  every  local  (i.e.
+#        non-virtual) username is visible in the virtual domain. In
+#        particular, every local alias and mailing list is  visible
+#        in a Sendmail-style virtual domain.
+# 
+#        Use  a  Postfix-style  virtual domain (see above) if local
+#        usernames, aliases(5) or mailing lists should not be visi-
+#        ble in that virtual domain.
+# 
+#        Support for a Sendmail-style virtual domain looks like:
+# 
+#        /etc/postfix/main.cf:
+#            mydestination = $myhostname localhost.$mydomain $mydomain
+#                virtual.domain
+# 
+#        /etc/postfix/virtual:
+#            user1@virtual.domain address1
+#            user2@virtual.domain address2, address3
+# 
+#        The  main.cf  mydestination  entry is required for a Send-
+#        mail-style virtual domain.
+# 
+#        Do not specify a virtual.domain whatever entry in the vir-
+#        tual table. Such an entry is required only with a Postfix-
+#        style virtual domain.
+# 
+#        With a Sendmail-style virtual domain,  the  Postfix  local
+#        delivery  agent  delivers  mail  for  an unknown user@vir-
+#        tual.domain to a local (i.e.  non-virtual) user  that  has
+#        the  same  name;  if no such recipient exists, the Postfix
+#        local delivery agent bounces the mail to the sender.
+# 
+# TABLE FORMAT
 #        The format of the virtual table is  as  follows,  mappings
 #        being tried in the order as listed in this manual page:
 # 
 #               Blank  lines  are  ignored,  as are lines beginning
 #               with `#'.
 # 
-#                                                                 1
+#        leading whitespace
+#               Lines  that  begin  with  whitespace  continue  the
+# 
+#                                                                 2
 # 
 # VIRTUAL(5)                                             VIRTUAL(5)
 # 
-#        leading whitespace
-#               Lines that begin with whitespace continue the  pre-
-#               vious line.
+#               previous line.
 # 
 #        pattern result
 #               When  pattern matches a mail address, replace it by
 #        constituent parts, nor is user+foo broken up into user and
 #        foo.
 # 
-#                                                                 2
+#        Patterns  are  applied  in  the  order as specified in the
+# 
+#                                                                 3
 # 
 # VIRTUAL(5)                                             VIRTUAL(5)
 # 
-#        Patterns  are  applied  in  the  order as specified in the
 #        table, until a pattern is found that  matches  the  search
 #        string.
 # 
 #        P.O. Box 704
 #        Yorktown Heights, NY 10598, USA
 # 
-#                                                                 3
+#                                                                 4
 # 
index 146d267f13e3ef4781203fda0a08b1f66cfd582c..a5ddb2163d3b6d5d885259ef074aecc0b502ab12 100644 (file)
@@ -13,16 +13,17 @@ ALIASES(5)                                             ALIASES(5)
 
 <b>DESCRIPTION</b>
        The <b>aliases</b> file provides a system-wide mechanism to redi-
-       rect mail for local recipients.
+       rect mail for local recipients. The redirections are  pro-
+       cessed by the Postfix <a href="local.8.html"><b>local</b>(8)</a> delivery agent.
 
-       The file serves as input to the <a href="postalias.1.html"><b>postalias</b>(1)</a> command.  The
-       result,  an  indexed file in <b>dbm</b> or <b>db</b> format, is used for
-       fast lookup  by  the  mail  system.  Execute  the  command
-       <b>newaliases</b>  in  order  to  rebuild  the indexed file after
+       The  file serves as input to the <a href="postalias.1.html"><b>postalias</b>(1)</a> command. The
+       result, an indexed file in <b>dbm</b> or <b>db</b> format, is  used  for
+       fast  lookup  by  the  mail  system.  Execute  the command
+       <b>newaliases</b> in order to  rebuild  the  indexed  file  after
        changing the Postfix alias database.
 
-       The input and output file formats are expected to be  com-
-       patible  with  Sendmail  version 8, and are expected to be
+       The  input and output file formats are expected to be com-
+       patible with Sendmail version 8, and are  expected  to  be
        suitable for the use as NIS maps.
 
        Users can control delivery of their own mail by setting up
@@ -36,29 +37,28 @@ ALIASES(5)                                             ALIASES(5)
 
                    <i>name</i>: <i>value1</i>, <i>value2</i>, <i>...</i>
 
-       <b>o</b>      Lines that begin with whitespace continue the  pre-
+       <b>o</b>      Lines  that begin with whitespace continue the pre-
               vious line.
 
-       <b>o</b>      Blank  lines  are  ignored,  as are lines beginning
+       <b>o</b>      Blank lines are ignored,  as  are  lines  beginning
               with `#'.
 
-       The <i>name</i> is a local address (no domain part).  Use  double
-       quotes  when the name contains any special characters such
-       as whitespace, `#', `:', or `@'. The  <i>name</i>  is  folded  to
+       The  <i>name</i> is a local address (no domain part).  Use double
+       quotes when the name contains any special characters  such
+       as  whitespace,  `#',  `:',  or `@'. The <i>name</i> is folded to
        lowercase, in order to make database lookups case insensi-
        tive.
 
        In addition, when an alias exists for <b>owner-</b><i>name</i>, delivery
-       diagnostics  are  directed  to that address, instead of to
+       diagnostics are directed to that address,  instead  of  to
        the originator.  This is typically used to direct delivery
-       errors  to the owner of a mailing list, who is in a better
-       position to deal with mailing list delivery problems  than
+       errors to the owner of a mailing list, who is in a  better
+       position  to deal with mailing list delivery problems than
        the originator of the undelivered mail.
 
        The <i>value</i> contains one or more of the following:
 
-       <i>address</i>
-              Mail  is  forwarded to <i>address</i>, which is compatible
+
 
 
 
@@ -71,29 +71,31 @@ ALIASES(5)                                             ALIASES(5)
 ALIASES(5)                                             ALIASES(5)
 
 
+       <i>address</i>
+              Mail is forwarded to <i>address</i>, which  is  compatible
               with the <a href="http://www.faqs.org/rfcs/rfc822.html">RFC 822</a> standard.
 
        <i>/file/name</i>
-              Mail is appended to <i>/file/name</i>.  See  <a href="local.8.html"><b>local</b>(8)</a>  for
-              details  of delivery to file.  Delivery is not lim-
-              ited to regular files.  For example, to dispose  of
+              Mail  is  appended  to <i>/file/name</i>. See <a href="local.8.html"><b>local</b>(8)</a> for
+              details of delivery to file.  Delivery is not  lim-
+              ited  to regular files.  For example, to dispose of
               unwanted mail, deflect it to <b>/dev/null</b>.
 
        |<i>command</i>
-              Mail  is  piped into <i>command</i>. Commands that contain
-              special characters, such as whitespace,  should  be
-              enclosed  between  double  quotes. See <a href="local.8.html"><b>local</b>(8)</a> for
+              Mail is piped into <i>command</i>. Commands  that  contain
+              special  characters,  such as whitespace, should be
+              enclosed between double quotes.  See  <a href="local.8.html"><b>local</b>(8)</a>  for
               details of delivery to command.
 
               When the command fails, a limited amount of command
-              output  is  mailed  back  to  the sender.  The file
-              <b>/usr/include/sysexits.h</b> defines the  expected  exit
-              status  codes. For example, use <b>|"exit</b> <b>67"</b> to simu-
-              late a "user  unknown"  error,  and  <b>|"exit</b>  <b>0"</b>  to
+              output is mailed back  to  the  sender.   The  file
+              <b>/usr/include/sysexits.h</b>  defines  the expected exit
+              status codes. For example, use <b>|"exit</b> <b>67"</b> to  simu-
+              late  a  "user  unknown"  error,  and  <b>|"exit</b> <b>0"</b> to
               implement an expensive black hole.
 
        <b>:include:</b><i>/file/name</i>
-              Mail  is  sent  to  the  destinations listed in the
+              Mail is sent to  the  destinations  listed  in  the
               named file.  Lines in <b>:include:</b> files have the same
               syntax as the right-hand side of alias entries.
 
@@ -105,26 +107,24 @@ ALIASES(5)                                             ALIASES(5)
 
 <b>ADDRESS</b> <b>EXTENSION</b>
        When alias database search fails, and the recipient local-
-       part contains  the  optional  recipient  delimiter  (e.g.,
-       <i>user+foo</i>),  the  search  is  repeated  for  the unextended
+       part  contains  the  optional  recipient  delimiter (e.g.,
+       <i>user+foo</i>), the  search  is  repeated  for  the  unextended
        address (e.g., <i>user</i>).
 
 <b>CONFIGURATION</b> <b>PARAMETERS</b>
-       The following <b>main.cf</b> parameters are  especially  relevant
-       to  this  topic.  See  the Postfix <b>main.cf</b> file for syntax
-       details and for default values.  Use  the  <b>postfix</b>  <b>reload</b>
+       The  following  <b>main.cf</b> parameters are especially relevant
+       to this topic. See the Postfix  <b>main.cf</b>  file  for  syntax
+       details  and  for  default  values. Use the <b>postfix</b> <b>reload</b>
        command after a configuration change.
 
        <b>alias</b><i>_</i><b>maps</b>
               List of alias databases.
 
        <b>allow</b><i>_</i><b>mail</b><i>_</i><b>to</b><i>_</i><b>commands</b>
-              Restrict  the  usage  of  mail delivery to external
+              Restrict the usage of  mail  delivery  to  external
               command.
 
-       <b>allow</b><i>_</i><b>mail</b><i>_</i><b>to</b><i>_</i><b>files</b>
-              Restrict the usage of  mail  delivery  to  external
-              file.
+
 
 
 
@@ -137,12 +137,16 @@ ALIASES(5)                                             ALIASES(5)
 ALIASES(5)                                             ALIASES(5)
 
 
+       <b>allow</b><i>_</i><b>mail</b><i>_</i><b>to</b><i>_</i><b>files</b>
+              Restrict  the  usage  of  mail delivery to external
+              file.
+
        <b>owner</b><i>_</i><b>request</b><i>_</i><b>special</b>
               Give special treatment to <b>owner-</b><i>xxx</i> and <i>xxx</i><b>-request</b>
               addresses.
 
        <b>recipient</b><i>_</i><b>delimiter</b>
-              Delimiter that separates  recipients  from  address
+              Delimiter  that  separates  recipients from address
               extensions.
 
 <b>STANDARDS</b>
@@ -153,7 +157,7 @@ ALIASES(5)                                             ALIASES(5)
        <a href="postalias.1.html">postalias(1)</a> alias database management
 
 <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>
@@ -185,10 +189,6 @@ ALIASES(5)                                             ALIASES(5)
 
 
 
-
-
-
-
 
 
 
index 664326072f987d50f0b9eb277a6dae23e0b35609..aedf505260f4b75a272d0965dd81dd484d627d56 100644 (file)
@@ -12,56 +12,56 @@ CANONICAL(5)                                         CANONICAL(5)
        <b>postmap</b> <b>/etc/postfix/canonical</b>
 
 <b>DESCRIPTION</b>
-       The  optional  <b>canonical</b> file specifies an address mapping
+       The  optional <b>canonical</b> table specifies an address mapping
        for local and non-local addresses. The mapping is used  by
        the  <a href="cleanup.8.html"><b>cleanup</b>(8)</a> daemon.  The address mapping is recursive.
 
-       Normally, the file serves as input to the <a href="postmap.1.html"><b>postmap</b>(1)</a>  com-
-       mand.  The result, an indexed file in <b>dbm</b> or <b>db</b> format, is
-       used for fast searching by the mail  system.  Execute  the
-       command <b>postmap</b> <b>/etc/postfix/canonical</b> in order to rebuild
-       the indexed file after changing the canonical table.
+       Normally, the <b>canonical</b> table is specified as a text  file
+       that  serves  as  input  to  the  <a href="postmap.1.html"><b>postmap</b>(1)</a> command.  The
+       result, an indexed file in <b>dbm</b> or <b>db</b> format, is  used  for
+       fast  searching  by  the  mail system. Execute the command
+       <b>postmap</b> <b>/etc/postfix/canonical</b> in  order  to  rebuild  the
+       indexed file after changing the text file.
 
-       When the table is provided via other means  such  as  NIS,
-       LDAP  or  SQL,  the  same lookups are done as for ordinary
+       When  the  table  is provided via other means such as NIS,
+       LDAP or SQL, the same lookups are  done  as  for  ordinary
        indexed files.
 
-       Alternatively, the table can be  provided  as  a  regular-
+       Alternatively,  the  table  can  be provided as a regular-
        expression map where patterns are given as regular expres-
-       sions. In that case, the lookups are done  in  a  slightly
+       sions.  In  that  case, the lookups are done in a slightly
        different way as described below.
 
-       The   <b>canonical</b>   mapping   affects  both  message  header
+       The  <b>canonical</b>  mapping  affects   both   message   header
        addresses (i.e. addresses that appear inside messages) and
-       message  envelope  addresses  (for  example, the addresses
-       that are used in SMTP protocol commands).  Think  Sendmail
+       message envelope addresses  (for  example,  the  addresses
+       that  are  used in SMTP protocol commands). Think Sendmail
        rule set <b>S3</b>, if you like.
 
-       Typically,  one  would  use the <b>canonical</b> table to replace
-       login  names  by  <i>Firstname.Lastname</i>,  or  to   clean   up
+       Typically, one would use the <b>canonical</b>  table  to  replace
+       login   names   by  <i>Firstname.Lastname</i>,  or  to  clean  up
        addresses produced by legacy mail systems.
 
-       The  <b>canonical</b>  mapping is not to be confused with <i>virtual</i>
+       The <b>canonical</b> mapping is not to be confused  with  <i>virtual</i>
        <i>domain</i> support. Use the <a href="virtual.5.html"><b>virtual</b>(5)</a> map for that purpose.
 
-       The <b>canonical</b> mapping is not to  be  confused  with  local
+       The  <b>canonical</b>  mapping  is  not to be confused with local
        aliasing.  Use the <a href="aliases.5.html"><b>aliases</b>(5)</a> map for that purpose.
 
 <b>TABLE</b> <b>FORMAT</b>
        The format of the <b>canonical</b> table is as follows:
 
        blanks and comments
-              Blank  lines  are  ignored,  as are lines beginning
+              Blank lines are ignored,  as  are  lines  beginning
               with `#'.
 
        leading whitespace
-              Lines that begin with whitespace continue the  pre-
+              Lines  that begin with whitespace continue the pre-
               vious line.
 
 
 
 
-
                                                                 1
 
 
@@ -72,59 +72,59 @@ CANONICAL(5)                                         CANONICAL(5)
 
 
        <i>pattern</i> <i>result</i>
-              When  <i>pattern</i> matches a mail address, replace it by
+              When <i>pattern</i> matches a mail address, replace it  by
               the corresponding <i>result</i>.
 
        With lookups from indexed files such as DB or DBM, or from
-       networked  tables  such  as NIS, LDAP or SQL, patterns are
+       networked tables such as NIS, LDAP or  SQL,  patterns  are
        tried in the order as listed below:
 
        <i>user</i>@<i>domain</i> <i>address</i>
-              <i>user</i>@<i>domain</i> is replaced by <i>address</i>. This  form  has
+              <i>user</i>@<i>domain</i>  is  replaced by <i>address</i>. This form has
               the highest precedence.
 
-              This  form useful to clean up addresses produced by
-              legacy mail systems.  It can also be used  to  pro-
-              duce  <i>Firstname.Lastname</i>  style  addresses, but see
+              This form useful to clean up addresses produced  by
+              legacy  mail  systems.  It can also be used to pro-
+              duce <i>Firstname.Lastname</i> style  addresses,  but  see
               below for a simpler solution.
 
        <i>user</i> <i>address</i>
               <i>user</i>@<i>site</i> is replaced by <i>address</i> when <i>site</i> is equal
-              to  $<b>myorigin</b>,  when  <i>site</i> is listed in $<b>mydestina-</b>
+              to $<b>myorigin</b>, when <i>site</i> is  listed  in  $<b>mydestina-</b>
               <b>tion</b>, or when it is listed in $<b>inet</b><i>_</i><b>interfaces</b>.
 
-              This form is useful for replacing  login  names  by
+              This  form  is  useful for replacing login names by
               <i>Firstname.Lastname</i>.
 
        @<i>domain</i> <i>address</i>
-              Every  address  in  <i>domain</i>  is replaced by <i>address</i>.
+              Every address in <i>domain</i>  is  replaced  by  <i>address</i>.
               This form has the lowest precedence.
 
-       In all the above forms, when <i>address</i> has the form  @<i>other-</i>
+       In  all the above forms, when <i>address</i> has the form @<i>other-</i>
        <i>domain</i>, the result is the same user in <i>otherdomain</i>.
 
 <b>ADDRESS</b> <b>EXTENSION</b>
-       When  table  lookup  fails, and the address localpart con-
-       tains   the   optional    recipient    delimiter    (e.g.,
-       <i>user+foo</i>@<i>domain</i>),  the  search  is  repeated for the unex-
-       tended address  (e.g.   <i>user</i>@<i>domain</i>),  and  the  unmatched
+       When table lookup fails, and the  address  localpart  con-
+       tains    the    optional    recipient   delimiter   (e.g.,
+       <i>user+foo</i>@<i>domain</i>), the search is  repeated  for  the  unex-
+       tended  address  (e.g.   <i>user</i>@<i>domain</i>),  and  the unmatched
        extension is propagated to the result of table lookup. The
        matching order is: <i>user+foo</i>@<i>domain</i>, <i>user</i>@<i>domain</i>, <i>user+foo</i>,
        <i>user</i>, and @<i>domain</i>.
 
 <b>REGULAR</b> <b>EXPRESSION</b> <b>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</b><i>_</i><b>table</b>(5)</a> or <a href="pcre_table.5.html"><b>pcre</b><i>_</i><b>table</b>(5)</a>.
 
-       Each pattern is a regular expression that  is  applied  to
+       Each  pattern  is  a regular expression that is applied to
        the entire address being looked up. Thus, <i>user@domain</i> mail
-       addresses are not broken up into their  <i>user</i>  and  <i>@domain</i>
+       addresses  are  not  broken up into their <i>user</i> and <i>@domain</i>
        constituent parts, nor is <i>user+foo</i> broken up into <i>user</i> and
        <i>foo</i>.
 
-       Patterns are applied in the  order  as  specified  in  the
+       Patterns  are  applied  in  the  order as specified in the
 
 
 
@@ -137,20 +137,20 @@ CANONICAL(5)                                         CANONICAL(5)
 CANONICAL(5)                                         CANONICAL(5)
 
 
-       table,  until  a  pattern is found that matches the search
+       table, until a pattern is found that  matches  the  search
        string.
 
-       Results are the same as with normal 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.
+       Results  are the same as with normal 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.
 
 <b>BUGS</b>
-       The  table format does not understand quoting conventions.
+       The table format does not understand quoting  conventions.
 
 <b>CONFIGURATION</b> <b>PARAMETERS</b>
-       The following <b>main.cf</b> parameters are  especially  relevant
-       to  this  topic.  See  the Postfix <b>main.cf</b> file for syntax
-       details and for default values.  Use  the  <b>postfix</b>  <b>reload</b>
+       The  following  <b>main.cf</b> parameters are especially relevant
+       to this topic. See the Postfix  <b>main.cf</b>  file  for  syntax
+       details  and  for  default  values. Use the <b>postfix</b> <b>reload</b>
        command after a configuration change.
 
        <b>canonical</b><i>_</i><b>maps</b>
@@ -167,19 +167,19 @@ CANONICAL(5)                                         CANONICAL(5)
        Other parameters of interest:
 
        <b>inet</b><i>_</i><b>interfaces</b>
-              The  network  interface  addresses that this system
+              The network interface addresses  that  this  system
               receives mail on.
 
        <b>masquerade</b><i>_</i><b>domains</b>
-              List of domains that hide  their  subdomain  struc-
+              List  of  domains  that hide their subdomain struc-
               ture.
 
        <b>masquerade</b><i>_</i><b>exceptions</b>
-              List  of user names that are not subject to address
+              List of user names that are not subject to  address
               masquerading.
 
        <b>mydestination</b>
-              List of domains that  this  mail  system  considers
+              List  of  domains  that  this mail system considers
               local.
 
        <b>myorigin</b>
@@ -209,7 +209,7 @@ CANONICAL(5)                                         CANONICAL(5)
        <a href="regexp_table.5.html">regexp_table(5)</a> format of POSIX regular expression tables
 
 <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 2433606ad9187fdf7cead7be02157000332841f2..db0cfd95b0607fea7752b338db47070d882b0953 100644 (file)
@@ -128,7 +128,7 @@ addresses</a>
 
 <li><a href="#mobile">Relaying mail for mobile users</a>
 
-<li><a href="#virtual_setup">Postfix refuses mail for virtual
+<li><a href="#virtual_relay">Postfix refuses mail for virtual
 domains with "relay access denied"</a>
 
 <li><a href="#relay_restrict">Restricting what users can send mail to off-site destinations</a>
@@ -155,6 +155,8 @@ domains with "relay access denied"</a>
 
 <li><a href="#root">Root's mail is delivered to nobody</a>
 
+<li><a href="#biff">What does "biff_notify: Connection refused" mean?</a>
+
 <li><a href="#bogus">Postfix accepts mail for non-existing local users</a>
 
 <li><a href="#some_local">Delivering some users locally while
@@ -190,27 +192,24 @@ distribution list</a>
 
 <li><a href="#owner-foo">Postfix ignores the owner-list alias</a>
 
+<li><a href="#virtual_command">Commands and mailing lists don't work in Postfix virtual maps</a>
+
 </ul>
 
 <a name="virtual_domains"><h3>Virtual domains</h3>
 
 <ul>
 
-<li><a href="#virtual_setup">How to configure a Postfix virtual domain</a>
-
-<li><a href="#virtual_setup">Postfix does not refuse mail for
-unknown virtual users</a>
+<li><a href="#unknown_virtual_accept">Postfix does not refuse mail for
+unknown users in virtual domains</a>
 
-<li><a href="#virtual_setup">Mail for unknown virtual users fails
-with "mail loops back to myself"</a>
+<li><a href="#unknown_virtual_loop">Mail for unknown users in
+virtual domains fails with "mail loops back to myself"</a>
 
-<li><a href="#virtual_setup">Postfix refuses mail for virtual
-domains with "user unknown"</a>
-
-<li><a href="#virtual_setup">Postfix refuses mail for virtual
+<li><a href="#virtual_relay">Postfix refuses mail for virtual
 domains with "relay access denied"</a>
 
-<li><a href="#command">Commands don't work in Postfix virtual maps</a>
+<li><a href="#virtual_command">Commands and mailing lists don't work in Postfix virtual maps</a>
 
 <li><a href="#domain_mailbox">Receiving a virtual domain in a
 mailbox</a>
@@ -1480,10 +1479,41 @@ To find out the location for your system, execute the command
 
 <hr>
 
+<a name="biff"><h3>What does "biff_notify: Connection refused" mean?</h3>
+
+By default, the Postfix local delivery agent attempts to notify
+local users of the arrival of new mail. This feature makes use of
+the <b>comsat</b> network service, which is turned off on many UNIX
+systems for performance and/or security reasons.
+
+<p>
+
+The warning message means that new mail notificiation failed because
+the <b>comsat</b> network service is turned off.
+
+<p>
+
+To disable the <b>comsat</b> client code in the Postfix delivery agent,
+specify:
+
+<p>
+
+<pre>
+/etc/postfix/main.cf:
+    biff = no
+</pre>
+
+<p>
+
+To enable the <b>comsat</b> network service, uncomment the
+corresponding entry in the <b>inetd.conf</b> file.
+
+<hr>
+
 <a name="bogus"><h3>Postfix accepts mail for non-existing local users</h3>
 
-See elsewhere for how to reject mail for <a href="#virtual_setup">unknown
-virtual</a> users.
+See elsewhere for how to reject mail for <a
+href="#unknown_virtual_accept">unknown users in virtual domains</a>.
 
 <p>
 
@@ -1527,9 +1557,9 @@ The only way to find out is to try.
 
 <p>
 
-By default, the Postfix SMTP server does know about Postfix <a
-href="#virtual_setup">virtual</a> maps, and will reject mail for
-<i>unknown@virtual.domain</i> without further configuration.
+By default, the Postfix SMTP server is aware of Postfix <a
+href="virtual.5.html">virtual</a> maps, and will accept mail for
+<i>known-user@virtual.domain</i> without further configuration.
 
 <hr>
 
@@ -1928,69 +1958,38 @@ sense to make it moderated.
 
 <hr>
 
-<a name="virtual_setup"><h3>How to configure a Postfix virtual domain</h3>
-
-Problem:
-
-<p> 
-
-<ul>
+<a name="unknown_virtual_accept"><h3>Postfix does not refuse mail for
+unknown users in virtual domains</h3></a>
 
-<li>Postfix does not refuse mail for unknown virtual users.
+<a name="unknown_virtual_loop"><h3>Mail for unknown users in a
+virtual domain fails with "mail loops back to myself"</h3></a>
 
-<li>Mail for unknown virtual users fails with "mail loops back to
-myself".
+<a name="virtual_relay"><h3>Postfix refuses mail for virtual
+domains with "relay access denied"</h3></a>
 
-<li>Postfix refuses mail for virtual domains with "user unknown".
-
-<li>Postfix refuses mail for virtual domains with "relay access
-denied".
-
-</ul>
+Solution: specify a Postfix-style virtual domain or a Sendmail-style
+virtual domain.
 
 <p>
 
-Solution:
-
-<p>
+Be sure to follow instructions in the <a href="virtual.5.html">
+virtual</a> manual page.
 
-<ul>
+<hr>
 
-<li> Add a magical entry to the Postfix virtual maps for
-each Postfix virtual domain:
+<a name="virtual_command"><h3>Commands and mailing lists don't work
+in Postfix virtual maps</h3>
 
-<p>
-
-<pre>
-    /etc/postfix/virtual:
-        virtual.domain whatever
-</pre>
+Short reply: specify a Sendmail-style <a href="virtual.5.html">virtual</a>
+domain, and specify the command or mailing list in the local <a
+href="aliases.5.html">aliases</a> file.
 
 <p>
 
-<li> Do not list Postfix virtual domains in the <a
-href="basic.html#mydestination">mydestination</a> parameter.
-
-<li> Do not list Postfix virtual maps in the <b>local_recipient_maps</b>
-parameter.
-
-<li>As of Postfix version 19991226 it is no longer necessary to
-specify virtual maps in the <a
-href="uce.html#relay_domains">relay_domains</a> parameter.  To find
-out what Postfix version you have, execute the command <b>postconf
-mail_version</b>.
-
-</ul>
+Long reply follows.
 
 <p>
 
-For more information on how to set up virtual domains, see the <a
-href="virtual.5.html">virtual</a> manual page.
-
-<hr>
-
-<a name="command"><h3>Commands don't work in Postfix virtual maps</h3>
-
 Delivering mail to a command is a security-sensitive operation,
 because the command must be executed with the right privileges.
 Only <b>root</b>-privileged software such as the Postfix local
@@ -2003,56 +2002,6 @@ privileges where possible. In particular, Postfix virtual mapping
 is done by an unprivileged daemon, so there is no secure way to
 execute commands found in virtual maps.
 
-<p>
-
-Solution: specify a local alias instead. The Postfix local delivery
-agent has sufficient privilege to execute commands with the right
-privileges.
-
-<p>
-
-<ul>
-
-<li>Set up a local alias that executes the command:
-
-<p>
-
-<pre>
-    /etc/aliases:
-        name-virtual.domain     "|/some/where/command..."
-</pre>
-
-<p>
-
-<li>Execute the command <b>newaliases</b> whenever you edit the
-alias database.
-
-<p>
-
-<li>Forward mail for the virtual address to the local alias:
-
-<p>
-
-<pre>
-    /etc/postfix/virtual:
-        virtual.domain          whatever
-        name@virtual.domain     name-virtual.domain
-</pre>
-
-<p>
-
-<li>Execute the command <b>postmap /etc/postfix/virtual</b> whenever
-you edit the virtual database.
-
-</ul>
-
-<p>
-
-
-Note: on some systems the alias database is not in <b>/etc/aliases</b>.
-To find out the location for your system, execute the command
-<b>postconf alias_maps</b>.
-
 <hr>
 
 <a name="domain_mailbox"><h3>Receiving a virtual domain in a mailbox</h3>
index b28f20fb32818f97543c8f13fa9649fee617015a..5dd44230a9c95588b1d0c146d8d233f9810a6a59 100644 (file)
@@ -56,7 +56,7 @@ FLUSH(8)                                                 FLUSH(8)
 
        <b>FLUSH</b><i>_</i><b>REQ</b><i>_</i><b>REFRESH</b> (completes in the background)
               Refresh  non-empty  per-destination  logfiles  that
-              were not read in $<b>fast</b><i>_</i><b>flush</b><i>_</i><b>refresh</b><i>_</i><b>time</b> hours, by
+              were not read in <b>$fast</b><i>_</i><b>flush</b><i>_</i><b>refresh</b><i>_</i><b>time</b> hours, by
               simulating send requests (see above) for the corre-
               sponding destinations.
 
@@ -78,8 +78,8 @@ FLUSH(8)                                                 FLUSH(8)
               Refresh  all non-empty per-destination logfiles, by
               simulating send requests (see above) for the corre-
               sponding  destinations.   This  can  be  incredibly
-              expensive when logging is enabled for all  deferred
-              mail, and is not recommended.
+              expensive when logging is enabled for many destina-
+              tions, and is not recommended.
 
               Delete empty per-destination logfiles that were not
               updated in <b>fast</b><i>_</i><b>flush</b><i>_</i><b>purge</b><i>_</i><b>time</b> days.
@@ -115,12 +115,12 @@ FLUSH(8)                                                 FLUSH(8)
        tion file.
 
        Upon receipt of a request to deliver all mail for an  eli-
-       gible  destination,  this  server requests delivery of all
-       messages that are listed in  that  destination's  logfile,
-       regardless  of  the  recipients of those messages. This is
-       not an issue for mail that is sent to a <b>relay</b><i>_</i><b>domains</b> des-
-       tination  because  such mail typically only has recipients
-       in one domain.
+       gible  destination,  the <b>flush</b> server requests delivery of
+       all messages that are listed in  that  destination's  log-
+       file, regardless of the recipients of those messages. This
+       is not an issue for mail that is sent to  a  <b>relay</b><i>_</i><b>domains</b>
+       destination  because  such mail typically only has recipi-
+       ents in one domain.
 
 <b>FILES</b>
        /var/spool/postfix/flush, location of "fast flush" logfiles.
index c2d7bfea6957b46c215394bcce96bd775de805f5..2eb0be78678568e005129d2fa0669057d647d02a 100644 (file)
@@ -309,20 +309,20 @@ LOCAL(8)                                                 LOCAL(8)
        <b>alias</b><i>_</i><b>maps</b>
               List of alias databases.
 
+       <b>biff</b>   Enable or disable notification of new mail via  the
+              <b>comsat</b> network service.
+
        <b>expand</b><i>_</i><b>owner</b><i>_</i><b>alias</b>
               When delivering to an alias that has an owner- com-
-              panion  alias,  set  the envelope sender address to
-              the right-hand side of  the  owner  alias,  instead
+              panion alias, set the envelope  sender  address  to
+              the  right-hand  side  of  the owner alias, instead
               using of the left-hand side address.
 
        <b>forward</b><i>_</i><b>path</b>
               Search list for .forward files.  The names are sub-
               ject to <i>$name</i> expansion.
 
-       <b>local</b><i>_</i><b>command</b><i>_</i><b>shell</b>
-              Shell to use for external  command  execution  (for
-              example,  /some/where/smrsh  -c).   When a shell is
-              specified, it is  invoked  even  when  the  command
+
 
 
 
@@ -335,7 +335,11 @@ LOCAL(8)                                                 LOCAL(8)
 LOCAL(8)                                                 LOCAL(8)
 
 
-              contains no shell built-in commands or meta charac-
+       <b>local</b><i>_</i><b>command</b><i>_</i><b>shell</b>
+              Shell  to  use  for external command execution (for
+              example, /some/where/smrsh -c).  When  a  shell  is
+              specified, it is invoked even when the command con-
+              tains no shell built-in commands  or  meta  charac-
               ters.
 
        <b>owner</b><i>_</i><b>request</b><i>_</i><b>special</b>
@@ -343,10 +347,10 @@ LOCAL(8)                                                 LOCAL(8)
               addresses.
 
        <b>prepend</b><i>_</i><b>delivered</b><i>_</i><b>header</b>
-              Prepend   an  optional  <b>Delivered-To:</b>  header  upon
-              external forwarding, delivery to command  or  file.
-              Specify  zero  or  more of: <b>command,</b> <b>file,</b> <b>forward</b>.
-              Turning off <b>Delivered-To:</b> when forwarding  mail  is
+              Prepend  an  optional  <b>Delivered-To:</b>  header   upon
+              external  forwarding,  delivery to command or file.
+              Specify zero or more of:  <b>command,</b>  <b>file,</b>  <b>forward</b>.
+              Turning  off  <b>Delivered-To:</b> when forwarding mail is
               not recommended.
 
        <b>recipient</b><i>_</i><b>delimiter</b>
@@ -354,41 +358,37 @@ LOCAL(8)                                                 LOCAL(8)
 
        <b>test</b><i>_</i><b>home</b><i>_</i><b>directory</b>
               Require that a recipient's home directory is acces-
-              sible by the recipient before attempting  delivery.
+              sible  by the recipient before attempting delivery.
 
 <b>Mailbox</b> <b>delivery</b>
        <b>fallback</b><i>_</i><b>transport</b>
               Message transport for recipients that are not found
-              in the UNIX passwd database.  This parameter  over-
+              in  the UNIX passwd database.  This parameter over-
               rides <b>luser</b><i>_</i><b>relay</b>.
 
        <b>home</b><i>_</i><b>mailbox</b>
-              Pathname  of  a  mailbox  relative to a user's home
+              Pathname of a mailbox relative  to  a  user's  home
               directory.  Specify a path ending in <b>/</b> for maildir-
               style delivery.
 
        <b>luser</b><i>_</i><b>relay</b>
-              Destination  (<i>@domain</i>  or <i>address</i>) for non-existent
-              users.  The <i>address</i> is subjected  to  <i>$name</i>  expan-
+              Destination (<i>@domain</i> or <i>address</i>)  for  non-existent
+              users.   The  <i>address</i>  is subjected to <i>$name</i> expan-
               sion.
 
        <b>mail</b><i>_</i><b>spool</b><i>_</i><b>directory</b>
-              Directory  with  UNIX-style  mailboxes. The default
+              Directory with UNIX-style  mailboxes.  The  default
               pathname is system dependent.
 
        <b>mailbox</b><i>_</i><b>command</b>
-              External command to use for mailbox  delivery.  The
+              External  command  to use for mailbox delivery. The
               command  executes  with  the  recipient  privileges
-              (exception: root). The string is subject  to  $name
+              (exception:  root).  The string is subject to $name
               expansions.
 
        <b>mailbox</b><i>_</i><b>transport</b>
-              Message  transport  to  use for mailbox delivery to
+              Message transport to use for  mailbox  delivery  to
               all local recipients, whether or not they are found
-              in  the UNIX passwd database.  This parameter over-
-              rides all other configuration parameters that  con-
-              trol mailbox delivery, including <b>luser</b><i>_</i><b>relay</b>.
-
 
 
 
@@ -401,13 +401,17 @@ LOCAL(8)                                                 LOCAL(8)
 LOCAL(8)                                                 LOCAL(8)
 
 
+              in the UNIX passwd database.  This parameter  over-
+              rides  all other configuration parameters that con-
+              trol mailbox delivery, including <b>luser</b><i>_</i><b>relay</b>.
+
 <b>Locking</b> <b>controls</b>
        <b>deliver</b><i>_</i><b>lock</b><i>_</i><b>attempts</b>
-              Limit  the  number of attempts to acquire an exclu-
+              Limit the number of attempts to acquire  an  exclu-
               sive lock on a mailbox or external file.
 
        <b>deliver</b><i>_</i><b>lock</b><i>_</i><b>delay</b>
-              Time in  seconds  between  successive  attempts  to
+              Time  in  seconds  between  successive  attempts to
               acquire an exclusive lock.
 
        <b>stale</b><i>_</i><b>lock</b><i>_</i><b>time</b>
@@ -415,45 +419,41 @@ LOCAL(8)                                                 LOCAL(8)
 
 <b>Resource</b> <b>controls</b>
        <b>command</b><i>_</i><b>time</b><i>_</i><b>limit</b>
-              Limit the amount of time for delivery  to  external
+              Limit  the  amount of time for delivery to external
               command.
 
        <b>duplicate</b><i>_</i><b>filter</b><i>_</i><b>limit</b>
-              Limit  the size of the duplicate filter for results
+              Limit the size of the duplicate filter for  results
               from alias etc. expansion.
 
        <b>line</b><i>_</i><b>length</b><i>_</i><b>limit</b>
-              Limit the amount of memory used  for  processing  a
+              Limit  the  amount  of memory used for processing a
               partial input line.
 
        <b>local</b><i>_</i><b>destination</b><i>_</i><b>concurrency</b><i>_</i><b>limit</b>
               Limit the number of parallel deliveries to the same
-              user.   The  default  limit  is  taken   from   the
+              user.    The   default  limit  is  taken  from  the
               <b>default</b><i>_</i><b>destination</b><i>_</i><b>concurrency</b><i>_</i><b>limit</b> parameter.
 
        <b>local</b><i>_</i><b>destination</b><i>_</i><b>recipient</b><i>_</i><b>limit</b>
-              Limit  the  number of recipients per message deliv-
-              ery.   The  default  limit  is   taken   from   the
+              Limit the number of recipients per  message  deliv-
+              ery.    The   default   limit  is  taken  from  the
               <b>default</b><i>_</i><b>destination</b><i>_</i><b>recipient</b><i>_</i><b>limit</b> parameter.
 
 <b>Security</b> <b>controls</b>
        <b>allow</b><i>_</i><b>mail</b><i>_</i><b>to</b><i>_</i><b>commands</b>
-              Restrict  the  usage  of  mail delivery to external
+              Restrict the usage of  mail  delivery  to  external
               command.
 
        <b>allow</b><i>_</i><b>mail</b><i>_</i><b>to</b><i>_</i><b>files</b>
-              Restrict the usage of  mail  delivery  to  external
+              Restrict  the  usage  of  mail delivery to external
               file.
 
        <b>command</b><i>_</i><b>expansion</b><i>_</i><b>filter</b>
-              What  characters  are  allowed  to  appear in $name
-              expansions of mailbox_command.  Illegal  characters
+              What characters are  allowed  to  appear  in  $name
+              expansions  of  mailbox_command. Illegal characters
               are replaced by underscores.
 
-       <b>default</b><i>_</i><b>privs</b>
-              Default  rights  for  delivery  to external file or
-              command.
-
 
 
 
@@ -467,16 +467,20 @@ LOCAL(8)                                                 LOCAL(8)
 LOCAL(8)                                                 LOCAL(8)
 
 
+       <b>default</b><i>_</i><b>privs</b>
+              Default rights for delivery  to  external  file  or
+              command.
+
        <b>forward</b><i>_</i><b>expansion</b><i>_</i><b>filter</b>
-              What characters are  allowed  to  appear  in  $name
-              expansions  of forward_path. Illegal characters are
+              What  characters  are  allowed  to  appear in $name
+              expansions of forward_path. Illegal characters  are
               replaced by underscores.
 
 <b>HISTORY</b>
-       The <b>Delivered-To:</b> header appears in the  <b>qmail</b>  system  by
+       The  <b>Delivered-To:</b>  header  appears in the <b>qmail</b> system by
        Daniel Bernstein.
 
-       The  <i>maildir</i>  structure  appears  in  the  <b>qmail</b> system by
+       The <i>maildir</i> structure  appears  in  the  <b>qmail</b>  system  by
        Daniel Bernstein.
 
 <b>SEE</b> <b>ALSO</b>
@@ -487,7 +491,7 @@ LOCAL(8)                                                 LOCAL(8)
        <a href="qmgr.8.html">qmgr(8)</a> queue manager
 
 <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>
@@ -515,10 +519,6 @@ LOCAL(8)                                                 LOCAL(8)
 
 
 
-
-
-
-
 
 
 
index b981bb65250d089b0febaa8cf16a17a873993296..43b48ba14262bf4ef2b150b58e3a58a324e3fb8f 100644 (file)
@@ -87,44 +87,44 @@ SENDMAIL(1)                                           SENDMAIL(1)
               Set  the  sender  full name. This is used only with
               messages that have no <b>From:</b> message header.
 
-       <b>-I</b>     Initialize alias database. See the <b>newaliases</b>  com-
+       <b>-G</b> (ignored)
+              Gateway (relay) submission, as opposed  to  initial
+              user submission.
+
+       <b>-I</b>     Initialize  alias database. See the <b>newaliases</b> com-
               mand above.
 
        <b>-N</b> <i>dsn</i> (ignored)
-              Delivery  status  notification  control. Currently,
+              Delivery status  notification  control.  Currently,
               Postfix does not implement <b>DSN</b>.
 
        <b>-R</b> <i>return_limit</i> (ignored)
-              Limit  the  size   of   bounced   mail.   Use   the
-              <b>bounce</b><i>_</i><b>size</b><i>_</i><b>limit</b>  configuration parameter instead.
+              Limit   the   size   of   bounced   mail.  Use  the
+              <b>bounce</b><i>_</i><b>size</b><i>_</i><b>limit</b> configuration parameter  instead.
 
        <b>-X</b> <i>log_file</i> (ignored)
-              Log mailer traffic.  Use  the  <b>debug</b><i>_</i><b>peer</b><i>_</i><b>list</b>  and
-              <b>debug</b><i>_</i><b>peer</b><i>_</i><b>level</b>  configuration parameters instead.
+              Log  mailer  traffic.  Use  the <b>debug</b><i>_</i><b>peer</b><i>_</i><b>list</b> and
+              <b>debug</b><i>_</i><b>peer</b><i>_</i><b>level</b> configuration parameters  instead.
 
        <b>-U</b> (ignored)
               Initial user submission.
 
-       <b>-bd</b>    Go into daemon mode.  This  mode  of  operation  is
+       <b>-bd</b>    Go  into  daemon  mode.  This  mode of operation is
               implemented by executing the <b>postfix</b> <b>start</b> command.
 
-       <b>-bi</b>    Initialize alias database. See the <b>newaliases</b>  com-
+       <b>-bi</b>    Initialize  alias database. See the <b>newaliases</b> com-
               mand above.
 
-       <b>-bm</b>    Read  mail  from  standard  input  and  arrange for
+       <b>-bm</b>    Read mail  from  standard  input  and  arrange  for
               delivery.  This is the default mode of operation.
 
        <b>-bp</b>    List the mail queue. See the <b>mailq</b> command above.
 
-       <b>-bs</b>    Stand-alone SMTP server mode.  Read  SMTP  commands
-              from  standard  input, and write responses to stan-
+       <b>-bs</b>    Stand-alone  SMTP  server  mode. Read SMTP commands
+              from standard input, and write responses  to  stan-
               dard output.  This mode of operation is implemented
               by running the <a href="smtpd.8.html"><b>smtpd</b>(8)</a> daemon.
 
-       <b>-f</b> <i>sender</i>
-              Set  the  envelope  sender  address.  This  is  the
-              address where delivery problems are sent to, unless
-              the  message contains an <b>Errors-To:</b> message header.
 
 
 
@@ -137,12 +137,17 @@ SENDMAIL(1)                                           SENDMAIL(1)
 SENDMAIL(1)                                           SENDMAIL(1)
 
 
+       <b>-f</b> <i>sender</i>
+              Set  the  envelope  sender  address.  This  is  the
+              address where delivery problems are sent to, unless
+              the message contains an <b>Errors-To:</b> message  header.
+
        <b>-h</b> <i>hop_count</i> (ignored)
-              Hop count limit. Use the <b>hopcount</b><i>_</i><b>limit</b>  configura-
+              Hop  count limit. Use the <b>hopcount</b><i>_</i><b>limit</b> configura-
               tion parameter instead.
 
-       <b>-i</b>     When  reading  a message from standard input, don't
-              treat a line with only a <b>.</b> character as the end  of
+       <b>-i</b>     When reading a message from standard  input,  don't
+              treat  a line with only a <b>.</b> character as the end of
               input.
 
        <b>-m</b> (ignored)
@@ -152,45 +157,40 @@ SENDMAIL(1)                                           SENDMAIL(1)
               Backwards compatibility.
 
        <b>-oA</b><i>alias_database</i>
-              Non-default  alias  database.  Specify  <i>pathname</i> or
+              Non-default alias  database.  Specify  <i>pathname</i>  or
               <i>type</i>:<i>pathname</i>. See <a href="postalias.1.html"><b>postalias</b>(1)</a> for details.
 
        <b>-o7</b> (ignored)
 
        <b>-o8</b> (ignored)
-              The message body type.  Currently,  Postfix  imple-
+              The  message  body  type. Currently, Postfix imple-
               ments <b>just-send-eight</b>.
 
-       <b>-oi</b>    When  reading  a message from standard input, don't
-              treat a line with only a <b>.</b> character as the end  of
+       <b>-oi</b>    When reading a message from standard  input,  don't
+              treat  a line with only a <b>.</b> character as the end of
               input.
 
        <b>-om</b> (ignored)
-              The  sender  is  never  eliminated  from alias etc.
+              The sender is  never  eliminated  from  alias  etc.
               expansions.
 
        <b>-o</b> <i>x</i> <i>value</i> (ignored)
-              Set option <i>x</i> to <i>value</i>. Use the equivalent  configu-
+              Set  option <i>x</i> to <i>value</i>. Use the equivalent configu-
               ration parameter in <b>main.cf</b> instead.
 
        <b>-r</b> <i>sender</i>
               Set  the  envelope  sender  address.  This  is  the
               address where delivery problems are sent to, unless
-              the  message contains an <b>Errors-To:</b> message header.
+              the message contains an <b>Errors-To:</b> message  header.
 
-       <b>-q</b>     Attempt to deliver all queued mail. This is  imple-
+       <b>-q</b>     Attempt  to deliver all queued mail. This is imple-
               mented by kicking the <a href="qmgr.8.html"><b>qmgr</b>(8)</a> daemon.
 
        <b>-q</b><i>interval</i> (ignored)
-              The   interval   between   queue   runs.   Use  the
+              The  interval   between   queue   runs.   Use   the
               <b>queue</b><i>_</i><b>run</b><i>_</i><b>delay</b> configuration parameter instead.
 
-       <b>-qR</b><i>site</i>
-              Schedule immediate delivery of  all  mail  that  is
-              queued  for the named <i>site</i>. Depending on the desti-
-              nation, this uses "fast flush" service, or  it  has
-              the  same  effect  as  <b>sendmail</b> <b>-q</b>.  This is imple-
-              mented by connecting to the local SMTP server.  See
+
 
 
 
@@ -203,29 +203,35 @@ SENDMAIL(1)                                           SENDMAIL(1)
 SENDMAIL(1)                                           SENDMAIL(1)
 
 
+       <b>-qR</b><i>site</i>
+              Schedule  immediate  delivery  of  all mail that is
+              queued for the named <i>site</i>. Depending on the  desti-
+              nation,  this  uses "fast flush" service, or it has
+              the same effect as <b>sendmail</b>  <b>-q</b>.   This  is  imple-
+              mented by connecting to the local SMTP server.  See
               <a href="smtpd.8.html"><b>smtpd</b>(8)</a>  for  more  information  about  the  "fast
               flush" service.
 
        <b>-qS</b><i>site</i>
-              This command is not  implemented.  Use  the  slower
+              This  command  is  not  implemented. Use the slower
               <b>sendmail</b> <b>-q</b> command instead.
 
-       <b>-t</b>     Extract   recipients  from  message  headers.  This
-              requires that no recipients  be  specified  on  the
+       <b>-t</b>     Extract  recipients  from  message  headers.   This
+              requires  that  no  recipients  be specified on the
               command line.
 
        <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>SECURITY</b>
-       By  design,  this  program  is not set-user (or group) id.
-       However, it must  handle  data  from  untrusted  users  or
-       untrusted  machines.   Thus, the usual precautions need to
+       By design, this program is not  set-user  (or  group)  id.
+       However,  it  must  handle  data  from  untrusted users or
+       untrusted machines.  Thus, the usual precautions  need  to
        be taken against malicious inputs.
 
 <b>DIAGNOSTICS</b>
-       Problems are logged to  <b>syslogd</b>(8)  and  to  the  standard
+       Problems  are  logged  to  <b>syslogd</b>(8)  and to the standard
        error stream.
 
 <b>ENVIRONMENT</b>
@@ -237,7 +243,7 @@ SENDMAIL(1)                                           SENDMAIL(1)
 
        <b>MAIL</b><i>_</i><b>DEBUG</b>
               Enable debugging with an external command, as spec-
-              ified  with  the   <b>debugger</b><i>_</i><b>command</b>   configuration
+              ified   with   the  <b>debugger</b><i>_</i><b>command</b>  configuration
               parameter.
 
 <b>FILES</b>
@@ -245,18 +251,12 @@ SENDMAIL(1)                                           SENDMAIL(1)
        /etc/postfix, configuration files
 
 <b>CONFIGURATION</b> <b>PARAMETERS</b>
-       See  the  Postfix  <b>main.cf</b> file for syntax details and for
-       default values. Use the <b>postfix</b>  <b>reload</b>  command  after  a
+       See the Postfix <b>main.cf</b> file for syntax  details  and  for
+       default  values.  Use  the  <b>postfix</b> <b>reload</b> command after a
        configuration change.
 
        <b>alias</b><i>_</i><b>database</b>
-              Default   alias  database(s)  for  <b>newaliases</b>.  The
-              default value for  this  parameter  is  system-spe-
-              cific.
-
-       <b>bounce</b><i>_</i><b>size</b><i>_</i><b>limit</b>
-              The amount of original message context that is sent
-              along with a non-delivery notification.
+              Default  alias  database(s)  for  <b>newaliases</b>.   The
 
 
 
@@ -269,6 +269,13 @@ SENDMAIL(1)                                           SENDMAIL(1)
 SENDMAIL(1)                                           SENDMAIL(1)
 
 
+              default  value  for  this  parameter is system-spe-
+              cific.
+
+       <b>bounce</b><i>_</i><b>size</b><i>_</i><b>limit</b>
+              The amount of original message context that is sent
+              along with a non-delivery notification.
+
        <b>database</b><i>_</i><b>type</b>
               Default alias etc. database type. On many UNIX sys-
               tems the default type is either <b>dbm</b> or <b>hash</b>.
@@ -278,51 +285,44 @@ SENDMAIL(1)                                           SENDMAIL(1)
               initialized.
 
        <b>debug</b><i>_</i><b>peer</b><i>_</i><b>level</b>
-              Increment in verbose logging level  when  a  remote
+              Increment  in  verbose  logging level when a remote
               host  matches  a  pattern  in  the  <b>debug</b><i>_</i><b>peer</b><i>_</i><b>list</b>
               parameter.
 
        <b>debug</b><i>_</i><b>peer</b><i>_</i><b>list</b>
-              List of domain or network patterns. When  a  remote
-              host  matches  a pattern, increase the verbose log-
-              ging  level  by  the  amount   specified   in   the
+              List  of  domain or network patterns. When a remote
+              host matches a pattern, increase the  verbose  log-
+              ging   level   by   the  amount  specified  in  the
               <b>debug</b><i>_</i><b>peer</b><i>_</i><b>level</b> parameter.
 
        <b>fast</b><i>_</i><b>flush</b><i>_</i><b>domains</b>
               List of domains that will receive "fast flush" ser-
-              vice (default: all  domains  that  this  system  is
-              willing  to  relay  mail to). This greatly improves
-              the performance of the SMTP <b>ETRN</b>  request,  and  of
-              the  <b>sendmail</b>  <b>-qR</b>  command. For domains not in the
+              vice  (default:  all  domains  that  this system is
+              willing to relay mail to).  This  greatly  improves
+              the  performance  of  the SMTP <b>ETRN</b> request, and of
+              the <b>sendmail</b> <b>-qR</b> command. For domains  not  in  the
               list, Postfix simply attempts to deliver all queued
               mail.
 
        <b>fork</b><i>_</i><b>attempts</b>
-              Number  of attempts to <b>fork</b>() a process before giv-
+              Number of attempts to <b>fork</b>() a process before  giv-
               ing up.
 
        <b>fork</b><i>_</i><b>delay</b>
-              Delay  in   seconds   between   successive   <b>fork</b>()
+              Delay   in   seconds   between   successive  <b>fork</b>()
               attempts.
 
        <b>hopcount</b><i>_</i><b>limit</b>
               Limit the number of <b>Received:</b> message headers.
 
        <b>mail</b><i>_</i><b>owner</b>
-              The  owner  of  the  mail queue and of most Postfix
+              The owner of the mail queue  and  of  most  Postfix
               processes.
 
        <b>command</b><i>_</i><b>directory</b>
-              Directory with Postfix support  commands  (default:
-              <b>$program</b><i>_</i><b>directory</b>).
-
-       <b>daemon</b><i>_</i><b>directory</b>
-              Directory  with  Postfix  daemon programs (default:
+              Directory  with  Postfix support commands (default:
               <b>$program</b><i>_</i><b>directory</b>).
 
-       <b>queue</b><i>_</i><b>directory</b>
-              Top-level directory of the Postfix queue.  This  is
-              also the root directory of Postfix daemons that run
 
 
 
@@ -335,10 +335,17 @@ SENDMAIL(1)                                           SENDMAIL(1)
 SENDMAIL(1)                                           SENDMAIL(1)
 
 
+       <b>daemon</b><i>_</i><b>directory</b>
+              Directory with Postfix  daemon  programs  (default:
+              <b>$program</b><i>_</i><b>directory</b>).
+
+       <b>queue</b><i>_</i><b>directory</b>
+              Top-level  directory  of the Postfix queue. This is
+              also the root directory of Postfix daemons that run
               chrooted.
 
        <b>queue</b><i>_</i><b>run</b><i>_</i><b>delay</b>
-              The time between successive scans of  the  deferred
+              The  time  between successive scans of the deferred
               queue.
 
 <b>SEE</b> <b>ALSO</b>
@@ -350,11 +357,11 @@ SENDMAIL(1)                                           SENDMAIL(1)
        <a href="qmgr.8.html">qmgr(8)</a> queue manager
        <a href="showq.8.html">showq(8)</a> list mail queue
        <a href="smtpd.8.html">smtpd(8)</a> SMTP server
-       <a href="flushd.8.html">flushd(8)</a> fast flush service
+       flushd(8) fast flush service
        syslogd(8) system logging
 
 <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>
@@ -377,13 +384,6 @@ SENDMAIL(1)                                           SENDMAIL(1)
 
 
 
-
-
-
-
-
-
-
 
 
 
index 7f80d48ca153065f925108d6c21223eec0f2d946..c81578a9b45c9872cdb612ec72980da104cfb515 100644 (file)
@@ -181,16 +181,16 @@ SMTPD(8)                                                 SMTPD(8)
               Limit  the  time  to  send a server response and to
               receive a client request.
 
+       <b>soft</b><i>_</i><b>bounce</b>
+              Change hard (5xx) reject responses into soft  (4xx)
+              reject  responses.   This can be useful for testing
+              purposes.
+
 <b>Resource</b> <b>controls</b>
        <b>line</b><i>_</i><b>length</b><i>_</i><b>limit</b>
               Limit the amount of memory in bytes  used  for  the
               handling of partial input lines.
 
-       <b>message</b><i>_</i><b>size</b><i>_</i><b>limit</b>
-              Limit the total size in bytes of a message, includ-
-              ing on-disk storage for envelope information.
-
-
 
 
 
@@ -203,6 +203,10 @@ SMTPD(8)                                                 SMTPD(8)
 SMTPD(8)                                                 SMTPD(8)
 
 
+       <b>message</b><i>_</i><b>size</b><i>_</i><b>limit</b>
+              Limit the total size in bytes of a message, includ-
+              ing on-disk storage for envelope information.
+
        <b>queue</b><i>_</i><b>minfree</b>
               Minimal amount of free space in bytes in the  queue
               file  system for the SMTP server to accept any mail
@@ -253,10 +257,6 @@ SMTPD(8)                                                 SMTPD(8)
               Restrict what domain names can be used in <b>ETRN</b> com-
               mands, and what clients may issue <b>ETRN</b> commands.
 
-       <b>allow</b><i>_</i><b>untrusted</b><i>_</i><b>routing</b>
-              Allow  untrusted  clients to specify addresses with
-              sender-specified routing.  Enabling this  opens  up
-              nasty  relay  loopholes involving trusted backup MX
 
 
 
@@ -269,6 +269,10 @@ SMTPD(8)                                                 SMTPD(8)
 SMTPD(8)                                                 SMTPD(8)
 
 
+       <b>allow</b><i>_</i><b>untrusted</b><i>_</i><b>routing</b>
+              Allow  untrusted  clients to specify addresses with
+              sender-specified routing.  Enabling this  opens  up
+              nasty  relay  loopholes involving trusted backup MX
               hosts.
 
        <b>restriction</b><i>_</i><b>classes</b>
@@ -319,10 +323,6 @@ SMTPD(8)                                                 SMTPD(8)
               Server   response   when   a  client  violates  the
               <b>reject</b><i>_</i><b>unknown</b><i>_</i><b>hostname</b> restriction.
 
-<b>SEE</b> <b>ALSO</b>
-       <a href="cleanup.8.html">cleanup(8)</a> message canonicalization
-       <a href="master.8.html">master(8)</a> process manager
-       syslogd(8) system logging
 
 
 
@@ -335,6 +335,11 @@ SMTPD(8)                                                 SMTPD(8)
 SMTPD(8)                                                 SMTPD(8)
 
 
+<b>SEE</b> <b>ALSO</b>
+       <a href="cleanup.8.html">cleanup(8)</a> message canonicalization
+       <a href="master.8.html">master(8)</a> process manager
+       syslogd(8) system logging
+
 <b>LICENSE</b>
        The Secure Mailer license must be  distributed  with  this
        software.
@@ -381,11 +386,6 @@ SMTPD(8)                                                 SMTPD(8)
 
 
 
-
-
-
-
-
 
 
 
index b31557443bb7351c244d174fcc32abe305de76f1..b7a867598e6059332e43efaeb2a34e626d918610 100644 (file)
@@ -12,45 +12,110 @@ VIRTUAL(5)                                             VIRTUAL(5)
        <b>postmap</b> <b>/etc/postfix/virtual</b>
 
 <b>DESCRIPTION</b>
-       The  optional  <b>virtual</b>  table  specifies  redirections for
-       local and non-local recipients or  domains.  The  redirec-
-       tions  are used by the <a href="cleanup.8.html"><b>cleanup</b>(8)</a> daemon. The redirections
-       are recursive.
+       The  optional <b>virtual</b> table specifies address redirections
+       for local and non-local recipients or domains.  The  redi-
+       rections  are  used by the <a href="cleanup.8.html"><b>cleanup</b>(8)</a> daemon. The redirec-
+       tions are recursive.
 
-       The <b>virtual</b> redirection is applied only to  the  recipient
-       envelope  address,  and  does  not affect message headers.
+       The <b>virtual</b> redirection is applied only to recipient enve-
+       lope  addresses,  and  does  not  affect  message headers.
        Think Sendmail rule set <b>S0</b>, if you like. Use  <a href="canonical.5.html"><b>canonical</b>(5)</a>
        mapping  to  rewrite header and envelope addresses in gen-
        eral.
 
-       Normally, the file serves as input to the <a href="postmap.1.html"><b>postmap</b>(1)</a>  com-
-       mand.  The result, an indexed file in <b>dbm</b> or <b>db</b> format, is
-       used for fast searching by the mail  system.  Execute  the
-       command  <b>postmap</b>  <b>/etc/postfix/virtual</b> in order to rebuild
-       the indexed file after changing the virtual table.
+       Normally, the <b>virtual</b> table is specified as  a  text  file
+       that  serves  as  input  to  the  <a href="postmap.1.html"><b>postmap</b>(1)</a> command.  The
+       result, an indexed file in <b>dbm</b> or <b>db</b> format, is  used  for
+       fast  searching  by  the  mail system. Execute the command
+       <b>postmap</b>  <b>/etc/postfix/virtual</b>  in  order  to  rebuild  the
+       indexed file after changing the text file.
 
-       When the table is provided via other means  such  as  NIS,
-       LDAP  or  SQL,  the  same lookups are done as for ordinary
+       When  the  table  is provided via other means such as NIS,
+       LDAP or SQL, the same lookups are  done  as  for  ordinary
        indexed files.
 
-       Alternatively, the table can be  provided  as  a  regular-
+       Alternatively,  the  table  can  be provided as a regular-
        expression map where patterns are given as regular expres-
-       sions. In that case, the lookups are done  in  a  slightly
+       sions.  In  that  case, the lookups are done in a slightly
        different way as described below.
 
-<b>TABLE</b> <b>FORMAT</b>
-       Typical  support  for a virtual domain looks like the fol-
-       lowing:
+<b>POSTFIX-STYLE</b> <b>VIRTUAL</b> <b>DOMAINS</b>
+       With a Postfix-style virtual domain,  the  virtual  domain
+       has  its  own  user  name  space. Local (i.e. non-virtual)
+       usernames are  not  visible  in  a  Postfix-style  virtual
+       domain.  In particular, local <a href="aliases.5.html"><b>aliases</b>(5)</a> and mailing lists
+       are not visible in a Postfix-style virtual domain.
+
+       Use a Sendmail-style virtual domain (see below)  if  local
+       usernames,  <a href="aliases.5.html"><b>aliases</b>(5)</a>  or mailing lists should be visible
+       in that virtual domain.
+
+       Support for a Postfix-style virtual domain looks like:
 
+       /etc/postfix/virtual:
            <i>virtual.domain</i>       <i>anything</i> (right-hand content does not matter)
            <i>postmaster@virtual.domain</i>    <i>postmaster</i>
            <i>user1@virtual.domain</i> <i>address1</i>
            <i>user2@virtual.domain</i> <i>address2,</i> <i>address3</i>
 
-       With this, the SMTP server accepts mail for <i>virtual.domain</i>
-       and  rejects mail for <i>unknown</i>@<i>virtual.domain</i> as undeliver-
+       The  <i>virtual.domain</i>  <i>anything</i>  entry  is  required  for  a
+
+
+
+                                                                1
+
+
+
+
+
+VIRTUAL(5)                                             VIRTUAL(5)
+
+
+       Postfix-style virtual domain.
+
+       Do  not  list the virtual domain in the <b>main.cf</b> <b>mydestina-</b>
+       <b>tion</b> configuration parameter. Such an  entry  is  required
+       only for a Sendmail-style virtual domain.
+
+       With  a  Postfix-style  virtual  domain,  the Postfix SMTP
+       server  accepts  mail  for  <i>known-user@virtual.domain</i>  and
+       rejects mail for <i>unknown-user</i>@<i>virtual.domain</i> as undeliver-
        able.
 
+<b>SENDMAIL-STYLE</b> <b>VIRTUAL</b> <b>DOMAINS</b>
+       With a Sendmail-style virtual domain,  every  local  (i.e.
+       non-virtual) username is visible in the virtual domain. In
+       particular, every local alias and mailing list is  visible
+       in a Sendmail-style virtual domain.
+
+       Use  a  Postfix-style  virtual domain (see above) if local
+       usernames, <a href="aliases.5.html"><b>aliases</b>(5)</a> or mailing lists should not be visi-
+       ble in that virtual domain.
+
+       Support for a Sendmail-style virtual domain looks like:
+
+       /etc/postfix/main.cf:
+           mydestination = $myhostname localhost.$mydomain $mydomain
+               <i>virtual.domain</i>
+
+       /etc/postfix/virtual:
+           <i>user1@virtual.domain</i> <i>address1</i>
+           <i>user2@virtual.domain</i> <i>address2,</i> <i>address3</i>
+
+       The  <b>main.cf</b>  <b>mydestination</b>  entry is required for a Send-
+       mail-style virtual domain.
+
+       Do not specify a <i>virtual.domain</i> <i>whatever</i> entry in the vir-
+       tual table. Such an entry is required only with a Postfix-
+       style virtual domain.
+
+       With a Sendmail-style virtual domain,  the  Postfix  local
+       delivery  agent  delivers  mail  for  an unknown <i>user</i>@<i>vir-</i>
+       <i>tual.domain</i> to a local (i.e.  non-virtual) user  that  has
+       the  same  name;  if no such recipient exists, the Postfix
+       local delivery agent bounces the mail to the sender.
+
+<b>TABLE</b> <b>FORMAT</b>
        The format of the virtual table is  as  follows,  mappings
        being tried in the order as listed in this manual page:
 
@@ -58,11 +123,12 @@ VIRTUAL(5)                                             VIRTUAL(5)
               Blank  lines  are  ignored,  as are lines beginning
               with `#'.
 
+       leading whitespace
+              Lines  that  begin  with  whitespace  continue  the
 
 
 
-
-                                                                1
+                                                                2
 
 
 
@@ -71,9 +137,7 @@ VIRTUAL(5)                                             VIRTUAL(5)
 VIRTUAL(5)                                             VIRTUAL(5)
 
 
-       leading whitespace
-              Lines that begin with whitespace continue the  pre-
-              vious line.
+              previous line.
 
        <i>pattern</i> <i>result</i>
               When  <i>pattern</i> matches a mail address, replace it by
@@ -126,9 +190,11 @@ VIRTUAL(5)                                             VIRTUAL(5)
        constituent parts, nor is <i>user+foo</i> broken up into <i>user</i> and
        <i>foo</i>.
 
+       Patterns  are  applied  in  the  order as specified in the
 
 
-                                                                2
+
+                                                                3
 
 
 
@@ -137,7 +203,6 @@ VIRTUAL(5)                                             VIRTUAL(5)
 VIRTUAL(5)                                             VIRTUAL(5)
 
 
-       Patterns  are  applied  in  the  order as specified in the
        table, until a pattern is found that  matches  the  search
        string.
 
@@ -194,7 +259,8 @@ VIRTUAL(5)                                             VIRTUAL(5)
 
 
 
-                                                                3
+
+                                                                4
 
 
 </pre> </body> </html>
index c396513a9190483c1fae4e87ec5aab705e7a5f94..51fee8715040711c9871e24a2f087e2604c1b943 100644 (file)
@@ -65,6 +65,8 @@ files are kept in \fB/etc/postfix\fR.
 .IP "\fB-F \fIfull_name\fR
 Set the sender full name. This is used only with messages that
 have no \fBFrom:\fR message header.
+.IP "\fB-G\fR (ignored)"
+Gateway (relay) submission, as opposed to initial user submission.
 .IP \fB-I\fR
 Initialize alias database. See the \fBnewaliases\fR
 command above.
index fc01b57fe859c6bf47d5aeed9df052a163147a9d..fe84a184483fb2c6fcba2ef1316f3a9b590e2a34 100644 (file)
@@ -14,7 +14,8 @@ format of the Postfix alias database
 .ad
 .fi
 The \fBaliases\fR file provides a system-wide mechanism to
-redirect mail for local recipients.
+redirect mail for local recipients. The redirections are
+processed by the Postfix \fBlocal\fR(8) delivery agent.
 
 The file serves as input to the \fBpostalias\fR(1) command. The
 result, an indexed file in \fBdbm\fR or \fBdb\fR format, is
index 2a7112e9fe1a62e94c5dbf50c269469002408524..8dfaf2933f0782da10fc6d07844d8cf744b4a25c 100644 (file)
@@ -12,15 +12,16 @@ format of Postfix canonical table
 .SH DESCRIPTION
 .ad
 .fi
-The optional \fBcanonical\fR file specifies an address mapping for
+The optional \fBcanonical\fR table specifies an address mapping for
 local and non-local addresses. The mapping is used by the
 \fBcleanup\fR(8) daemon.  The address mapping is recursive.
 
-Normally, the file serves as input to the \fBpostmap\fR(1) command.
+Normally, the \fBcanonical\fR table is specified as a text file
+that serves as input to the \fBpostmap\fR(1) command.
 The result, an indexed file in \fBdbm\fR or \fBdb\fR format,
 is used for fast searching by the mail system. Execute the command
 \fBpostmap /etc/postfix/canonical\fR in order to rebuild the indexed
-file after changing the canonical table.
+file after changing the text file.
 
 When the table is provided via other means such as NIS, LDAP
 or SQL, the same lookups are done as for ordinary indexed files.
index 2aeb77afc8a755424fbd8ea9d224230aaa21eb99..78cdb0209197194596a4bd3b1ac4f4cc37be80cd 100644 (file)
@@ -12,20 +12,21 @@ format of Postfix virtual table
 .SH DESCRIPTION
 .ad
 .fi
-The optional \fBvirtual\fR table specifies redirections for local
-and non-local recipients or domains. The redirections are used by
-the \fBcleanup\fR(8) daemon. The redirections are recursive.
+The optional \fBvirtual\fR table specifies address redirections for
+local and non-local recipients or domains. The redirections are used
+by the \fBcleanup\fR(8) daemon. The redirections are recursive.
 
-The \fBvirtual\fR redirection is applied only to the recipient
-envelope address, and does not affect message headers.
+The \fBvirtual\fR redirection is applied only to recipient
+envelope addresses, and does not affect message headers.
 Think Sendmail rule set \fBS0\fR, if you like. Use \fBcanonical\fR(5)
 mapping to rewrite header and envelope addresses in general.
 
-Normally, the file serves as input to the \fBpostmap\fR(1) command.
+Normally, the \fBvirtual\fR table is specified as a text file that
+serves as input to the \fBpostmap\fR(1) command.
 The result, an indexed file in \fBdbm\fR or \fBdb\fR format,
 is used for fast searching by the mail system. Execute the command
 \fBpostmap /etc/postfix/virtual\fR in order to rebuild the indexed
-file after changing the virtual table.
+file after changing the text file.
 
 When the table is provided via other means such as NIS, LDAP
 or SQL, the same lookups are done as for ordinary indexed files.
@@ -33,13 +34,24 @@ or SQL, the same lookups are done as for ordinary indexed files.
 Alternatively, the table can be provided as a regular-expression
 map where patterns are given as regular expressions. In that case,
 the lookups are done in a slightly different way as described below.
-.SH TABLE FORMAT
+.SH POSTFIX-STYLE VIRTUAL DOMAINS
 .na
 .nf
 .ad
 .fi
-Typical support for a virtual domain looks like the following:
+With a Postfix-style virtual domain, the virtual domain has its
+own user name space. Local (i.e. non-virtual) usernames are not
+visible in a Postfix-style virtual domain. In particular, local
+\fBaliases\fR(5) and mailing lists are not visible in a
+Postfix-style virtual domain.
+
+Use a Sendmail-style virtual domain (see below) if local usernames,
+\fBaliases\fR(5) or mailing lists should be visible in that virtual
+domain.
 
+Support for a Postfix-style virtual domain looks like:
+.sp
+/etc/postfix/virtual:
 .in +4
 .nf
 \fIvirtual.domain       anything\fR (right-hand content does not matter)
@@ -49,9 +61,66 @@ Typical support for a virtual domain looks like the following:
 .fi
 .in -4
 
-With this, the SMTP server accepts mail for \fIvirtual.domain\fR and
-rejects mail for \fIunknown\fR@\fIvirtual.domain\fR as undeliverable.
+The \fIvirtual.domain anything\fR entry is required for a
+Postfix-style virtual domain.
+
+Do not list the virtual domain in the \fBmain.cf mydestination\fR
+configuration parameter. Such an entry is required only for a
+Sendmail-style virtual domain.
+
+With a Postfix-style virtual domain, the Postfix SMTP server
+accepts mail for \fIknown-user@virtual.domain\fR and rejects
+mail for \fIunknown-user\fR@\fIvirtual.domain\fR as undeliverable.
+.SH SENDMAIL-STYLE VIRTUAL DOMAINS
+.na
+.nf
+.ad
+.fi
+With a Sendmail-style virtual domain, every local (i.e. non-virtual)
+username is visible in the virtual domain. In particular, every
+local alias and mailing list is visible in a Sendmail-style virtual
+domain.
+
+Use a Postfix-style virtual domain (see above) if local usernames,
+\fBaliases\fR(5) or mailing lists should not be visible in that
+virtual domain.
+
+Support for a Sendmail-style virtual domain looks like:
+.sp
+/etc/postfix/main.cf:
+.in +4
+.nf
+mydestination = $myhostname localhost.$mydomain $mydomain
+.ti +4
+\fIvirtual.domain\fR
+.fi
+.in -4
+.sp
+/etc/postfix/virtual:
+.in +4
+.nf
+\fIuser1@virtual.domain address1\fR
+\fIuser2@virtual.domain address2, address3\fR
+.fi
+.in -4
+
+The \fBmain.cf mydestination\fR entry is required for a Sendmail-style
+virtual domain.
+
+Do not specify a \fIvirtual.domain whatever\fR entry in the
+virtual table. Such an entry is required only with a
+Postfix-style virtual domain.
 
+With a Sendmail-style virtual domain, the Postfix local delivery
+agent delivers mail for an unknown \fIuser\fR@\fIvirtual.domain\fR
+to a local (i.e.  non-virtual) user that has the same name; if no
+such recipient exists, the Postfix local delivery agent bounces the
+mail to the sender.
+.SH TABLE FORMAT
+.na
+.nf
+.ad
+.fi
 The format of the virtual table is as follows, mappings being
 tried in the order as listed in this manual page:
 .IP "blanks and comments"
index dd4f31a98ce78b7c249fa3cfe9f4778a1ea1bd6f..7a994205bda9f4ef43844fa2e847f5336bad1867 100644 (file)
@@ -50,7 +50,7 @@ This wakeup request from the master is an alternative way to
 request \fBFLUSH_REQ_REFRESH\fR.
 .IP "\fBFLUSH_REQ_REFRESH\fR (completes in the background)"
 Refresh non-empty per-destination logfiles that were not read in
-$\fBfast_flush_refresh_time\fR hours, by simulating
+\fB$fast_flush_refresh_time\fR hours, by simulating
 send requests (see above) for the corresponding destinations.
 .sp
 Delete empty per-destination logfiles that were not updated in
@@ -59,7 +59,7 @@ Delete empty per-destination logfiles that were not updated in
 Refresh all non-empty per-destination logfiles, by simulating
 send requests (see above) for the corresponding destinations.
 This can be incredibly expensive when logging is enabled for
-all deferred mail, and is not recommended.
+many destinations, and is not recommended.
 .sp
 Delete empty per-destination logfiles that were not updated in
 \fBfast_flush_purge_time\fR days.
@@ -95,8 +95,8 @@ be automated with a suitable wakeup timer setting in the
 \fBmaster.cf\fR configuration file.
 
 Upon receipt of a request to deliver all mail for an eligible
-destination, this server requests delivery of all messages that
-are listed in that destination's logfile, regardless of the
+destination, the \fBflush\fR server requests delivery of all messages
+that are listed in that destination's logfile, regardless of the
 recipients of those messages. This is not an issue for mail
 that is sent to a \fBrelay_domains\fR destination because
 such mail typically only has recipients in one domain.
index b7489f5f80b41e6f91e6a718a96b080be27ed325..67fc0ee056d5a76d1e09a4e3e044ddc0202fb848 100644 (file)
@@ -284,6 +284,9 @@ a configuration change.
 .fi
 .IP \fBalias_maps\fR
 List of alias databases.
+.IP \fBbiff\fR
+Enable or disable notification of new mail via the
+\fBcomsat\fR network service.
 .IP \fBexpand_owner_alias\fR
 When delivering to an alias that has an owner- companion alias,
 set the envelope sender address to the right-hand side of the
index dbabd4ed4b2cd3fb3f10e242e56901d04e2794be..832e3e19db3482fad3474d3a28a2b46331637eaa 100644 (file)
@@ -138,6 +138,9 @@ per message delivery.
 .IP \fBsmtpd_timeout\fR
 Limit the time to send a server response and to receive a client
 request.
+.IP \fBsoft_bounce\fR
+Change hard (5xx) reject responses into soft (4xx) reject responses.
+This can be useful for testing purposes.
 .SH "Resource controls"
 .ad
 .fi
index 681280cac47e3acb67d5a026d4b3ff33441795c3..16f44bfb9617fc1aa84a7069921ff2a8dd1b4acd 100644 (file)
@@ -8,7 +8,8 @@
 #      \fBnewaliases\fR
 # DESCRIPTION
 #      The \fBaliases\fR file provides a system-wide mechanism to
-#      redirect mail for local recipients.
+#      redirect mail for local recipients. The redirections are
+#      processed by the Postfix \fBlocal\fR(8) delivery agent.
 #
 #      The file serves as input to the \fBpostalias\fR(1) command. The
 #      result, an indexed file in \fBdbm\fR or \fBdb\fR format, is
index 5836a56ffc2528464c5db4e44275ac0f90242e39..4eaf21f79ffee38ff177a7923607978e13ebed3e 100644 (file)
@@ -6,15 +6,16 @@
 # SYNOPSIS
 #      \fBpostmap /etc/postfix/canonical\fR
 # DESCRIPTION
-#      The optional \fBcanonical\fR file specifies an address mapping for
+#      The optional \fBcanonical\fR table specifies an address mapping for
 #      local and non-local addresses. The mapping is used by the
 #      \fBcleanup\fR(8) daemon.  The address mapping is recursive.
 #
-#      Normally, the file serves as input to the \fBpostmap\fR(1) command.
+#      Normally, the \fBcanonical\fR table is specified as a text file
+#      that serves as input to the \fBpostmap\fR(1) command.
 #      The result, an indexed file in \fBdbm\fR or \fBdb\fR format,
 #      is used for fast searching by the mail system. Execute the command
 #      \fBpostmap /etc/postfix/canonical\fR in order to rebuild the indexed
-#      file after changing the canonical table.
+#      file after changing the text file.
 #
 #      When the table is provided via other means such as NIS, LDAP
 #      or SQL, the same lookups are done as for ordinary indexed files.
index ba6680b68a99798051ceed403f3979c002822d2b..12ebedd38ddbd376c7db70fec55fb51cd64b051d 100644 (file)
@@ -6,20 +6,21 @@
 # SYNOPSIS
 #      \fBpostmap /etc/postfix/virtual\fR
 # DESCRIPTION
-#      The optional \fBvirtual\fR table specifies redirections for local
-#      and non-local recipients or domains. The redirections are used by
-#      the \fBcleanup\fR(8) daemon. The redirections are recursive.
+#      The optional \fBvirtual\fR table specifies address redirections for
+#      local and non-local recipients or domains. The redirections are used
+#      by the \fBcleanup\fR(8) daemon. The redirections are recursive.
 #
-#      The \fBvirtual\fR redirection is applied only to the recipient
-#      envelope address, and does not affect message headers.
+#      The \fBvirtual\fR redirection is applied only to recipient
+#      envelope addresses, and does not affect message headers.
 #      Think Sendmail rule set \fBS0\fR, if you like. Use \fBcanonical\fR(5)
 #      mapping to rewrite header and envelope addresses in general.
 #
-#      Normally, the file serves as input to the \fBpostmap\fR(1) command.
+#      Normally, the \fBvirtual\fR table is specified as a text file that
+#      serves as input to the \fBpostmap\fR(1) command.
 #      The result, an indexed file in \fBdbm\fR or \fBdb\fR format,
 #      is used for fast searching by the mail system. Execute the command
 #      \fBpostmap /etc/postfix/virtual\fR in order to rebuild the indexed
-#      file after changing the virtual table.
+#      file after changing the text file.
 #
 #      When the table is provided via other means such as NIS, LDAP
 #      or SQL, the same lookups are done as for ordinary indexed files.
 #      Alternatively, the table can be provided as a regular-expression
 #      map where patterns are given as regular expressions. In that case,
 #      the lookups are done in a slightly different way as described below.
-# TABLE FORMAT
+# POSTFIX-STYLE VIRTUAL DOMAINS
 # .ad
 # .fi
-#      Typical support for a virtual domain looks like the following:
+#      With a Postfix-style virtual domain, the virtual domain has its
+#      own user name space. Local (i.e. non-virtual) usernames are not
+#      visible in a Postfix-style virtual domain. In particular, local
+#      \fBaliases\fR(5) and mailing lists are not visible in a
+#      Postfix-style virtual domain.
+#
+#      Use a Sendmail-style virtual domain (see below) if local usernames,
+#      \fBaliases\fR(5) or mailing lists should be visible in that virtual
+#      domain.
 #
+#      Support for a Postfix-style virtual domain looks like:
+# .sp
+#      /etc/postfix/virtual:
 # .in +4
 # .nf
 #      \fIvirtual.domain       anything\fR (right-hand content does not matter)
 # .fi
 # .in -4
 #
-#      With this, the SMTP server accepts mail for \fIvirtual.domain\fR and
-#      rejects mail for \fIunknown\fR@\fIvirtual.domain\fR as undeliverable.
+#      The \fIvirtual.domain anything\fR entry is required for a
+#      Postfix-style virtual domain.
+#
+#      Do not list the virtual domain in the \fBmain.cf mydestination\fR
+#      configuration parameter. Such an entry is required only for a
+#      Sendmail-style virtual domain.
+#
+#      With a Postfix-style virtual domain, the Postfix SMTP server
+#      accepts mail for \fIknown-user@virtual.domain\fR and rejects
+#      mail for \fIunknown-user\fR@\fIvirtual.domain\fR as undeliverable.
+# SENDMAIL-STYLE VIRTUAL DOMAINS
+# .ad
+# .fi
+#      With a Sendmail-style virtual domain, every local (i.e. non-virtual)
+#      username is visible in the virtual domain. In particular, every
+#      local alias and mailing list is visible in a Sendmail-style virtual
+#      domain.
+#
+#      Use a Postfix-style virtual domain (see above) if local usernames,
+#      \fBaliases\fR(5) or mailing lists should not be visible in that
+#      virtual domain.
 #
+#      Support for a Sendmail-style virtual domain looks like:
+# .sp
+#      /etc/postfix/main.cf:
+# .in +4
+# .nf
+#      mydestination = $myhostname localhost.$mydomain $mydomain
+# .ti +4
+#      \fIvirtual.domain\fR
+# .fi
+# .in -4
+# .sp
+#      /etc/postfix/virtual:
+# .in +4
+# .nf
+#      \fIuser1@virtual.domain address1\fR
+#      \fIuser2@virtual.domain address2, address3\fR
+# .fi
+# .in -4
+#
+#      The \fBmain.cf mydestination\fR entry is required for a Sendmail-style
+#      virtual domain.
+#
+#      Do not specify a \fIvirtual.domain whatever\fR entry in the
+#      virtual table. Such an entry is required only with a
+#      Postfix-style virtual domain.
+#
+#      With a Sendmail-style virtual domain, the Postfix local delivery
+#      agent delivers mail for an unknown \fIuser\fR@\fIvirtual.domain\fR
+#      to a local (i.e.  non-virtual) user that has the same name; if no
+#      such recipient exists, the Postfix local delivery agent bounces the
+#      mail to the sender.
+# TABLE FORMAT
+# .ad
+# .fi
 #      The format of the virtual table is as follows, mappings being
 #      tried in the order as listed in this manual page:
 # .IP "blanks and comments"
 #      or \fBpcre_table\fR(5).
 #
 #      Each pattern is a regular expression that is applied to the entire
-#      address being looked up. Thus, \fIuser@domain\fR mail addresses are not 
+#      address being looked up. Thus, \fIuser@domain\fR mail addresses are not
 #      broken up into their \fIuser\fR and \fI@domain\fR constituent parts,
 #      nor is \fIuser+foo\fR broken up into \fIuser\fR and \fIfoo\fR.
 #
-#      Patterns are applied in the order as specified in the table, until a 
+#      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 normal indexed file lookups, with
index cc43c9b7f5c98291d698d4631417791bf47e7adc..ee5d0376d8e2e1d457d5646b83868ea5c33cfc97 100644 (file)
@@ -15,7 +15,7 @@
   * Version of this program.
   */
 #define VAR_MAIL_VERSION       "mail_version"
-#define DEF_MAIL_VERSION       "Snapshot-20001109"
+#define DEF_MAIL_VERSION       "Snapshot-20001118"
 extern char *var_mail_version;
 
 /* LICENSE
index fd25801947939dcf55031d78006fab43e18eafc9..a38fc3c32255f9159c0e7adf89c5832250a032f7 100644 (file)
 /* .fi
 /* .IP \fBalias_maps\fR
 /*     List of alias databases.
+/* .IP \fBbiff\fR
+/*     Enable or disable notification of new mail via the
+/*     \fBcomsat\fR network service.
 /* .IP \fBexpand_owner_alias\fR
 /*     When delivering to an alias that has an owner- companion alias,
 /*     set the envelope sender address to the right-hand side of the
index badf887ec5b7d64e9fb04bd1fe55f4b0c2f854f1..737382295ad437a853a89d8984b8aec0147bcf2b 100644 (file)
@@ -177,9 +177,8 @@ static int deliver_switch(LOCAL_STATE state, USER_ATTR usr_attr)
      * $HOME/.forward file, then mailbox delivery. Back off when the user's
      * home directory does not exist.
      */
-    if ((mypwd = mypwnam(state.msg_attr.user)) == 0)
-       return (deliver_unknown(state, usr_attr));
     if (var_stat_home_dir
+       && (mypwd = mypwnam(state.msg_attr.user)) != 0
        && stat_as(mypwd->pw_dir, &st, mypwd->pw_uid, mypwd->pw_gid) < 0)
        return (defer_append(BOUNCE_FLAG_KEEP,
                             BOUNCE_ATTR(state.msg_attr),
index 8bcbf4e66a9437e10116378850a924f4231715b1..6006f3f14616620a51e7394e90d71d58e86aed93 100644 (file)
 #include <stringops.h>
 #include <myflock.h>
 #include <watchdog.h>
+#include <clean_env.h>
 
 /* Global library. */
 
@@ -183,6 +184,12 @@ int     main(int argc, char **argv)
     if (getenv(CONF_ENV_DEBUG))
        debug_me = 1;
 
+    /*
+     * Ad-hoc environment filter, to enforce consistent behavior whether
+     * Postfix is started by hand, or at system boot time.
+     */
+    clean_env();
+
     /*
      * Don't die when a process goes away unexpectedly.
      */
@@ -202,12 +209,16 @@ int     main(int argc, char **argv)
      * Some systems such as AIX have a huge per-process open file limit. In
      * those cases, limit the search for potential file descriptor leaks to
      * just the first couple hundred.
+     * 
+     * The Debian post-installation script passes an open file descriptor into
+     * the master process and waits forever for someone to close it. Because
+     * of this we have to close descriptors > 2, and pray that doing so does
+     * not break things.
      */
     if (fd_limit > 500)
        fd_limit = 500;
     for (fd = 3; fd < fd_limit; fd++)
-       if ((n = fcntl(fd, F_GETFD, 0)) >= 0 && (n & FD_CLOEXEC) == 0)
-           fcntl(fd, F_SETFD, n | FD_CLOEXEC);
+       (void) close(fd);
 
     /*
      * Initialize logging and exit handler.
index dfbb93e62a171eeb70866e7076af5e55096aad90..1f317427cc9e1d60212c5abd3c9dcff41c2de8e2 100644 (file)
@@ -51,7 +51,8 @@
 /*     structure members. A null result means that the file could not be
 /*     read or that the file contained incorrect information. Recipient
 /*     limit imposed this time is based on the position of the message
-/*     job(s) on corresponding transport job list(s).
+/*     job(s) on corresponding transport job list(s). It's considered
+/*     an error to call this when the recipient slots can't be allocated.
 /*
 /*     qmgr_message_free() destroys an in-core message structure and makes
 /*     the resources available for reuse. It is an error to destroy
@@ -288,7 +289,7 @@ static int qmgr_message_read(QMGR_MESSAGE *message)
 
     /*
      * If we re-open this file, skip over on-file recipient records that we
-     * already looked at, and reset the in-core recipient address list.
+     * already looked at, and refill the in-core recipient address list.
      * 
      * For the first time, the message recipient limit is calculated from the
      * global recipient limit. This is to avoid reading little recipients
@@ -302,6 +303,8 @@ static int qmgr_message_read(QMGR_MESSAGE *message)
     if (message->rcpt_offset) {
        if (message->rcpt_list.len)
            msg_panic("%s: recipient list not empty on recipient reload", message->queue_id);
+       if (message->rcpt_limit <= message->rcpt_count)
+           msg_panic("%s: no recipient slots available", message->queue_id);
        if (vstream_fseek(message->fp, message->rcpt_offset, SEEK_SET) < 0)
            msg_fatal("seek file %s: %m", VSTREAM_PATH(message->fp));
        message->rcpt_offset = 0;
index 1de7941b2dfb5b9bbef2ccbfa9f24721643250a2..fde7efa06d247045a28edc7482ce1ff4d09ca581 100644 (file)
@@ -116,7 +116,9 @@ QMGR_PEER *qmgr_peer_select(QMGR_JOB *job)
        if (queue->window > queue->busy_refcount && peer->entry_list.next != 0) {
            QMGR_LIST_ROTATE(job->peer_list, peer, peers);
            if (msg_verbose)
-               msg_info("qmgr_peer_select: %s %s", job->message->queue_id, queue->name);
+               msg_info("qmgr_peer_select: %s %s %s (%d of %d)",
+               job->message->queue_id, queue->transport->name, queue->name,
+                        queue->busy_refcount + 1, queue->window);
            return (peer);
        }
     }
index 028850ed2b986e3cb13982c15dc748af96d06cc3..0f079b2e380d87e7b5444267455bb0d923486932 100644 (file)
@@ -141,11 +141,12 @@ void    qmgr_queue_unthrottle(QMGR_QUEUE *queue)
 
     /*
      * Increase the destination's concurrency limit until we reach the
-     * transport's concurrency limit.
+     * transport's concurrency limit. Allow for a margin the size of the
+     * initial destination concurrency, so that we're not too gentle.
      */
     if (transport->dest_concurrency_limit == 0
        || transport->dest_concurrency_limit > queue->window)
-       if (queue->window <= queue->busy_refcount)
+       if (queue->window <= queue->busy_refcount + transport->init_dest_concurrency)
            queue->window++;
 }
 
index 985e6118d8e6432165ef4acf266854165dc1395e..8b38d4462579a38da6f148814dc319ae4c48beef 100644 (file)
@@ -143,11 +143,12 @@ void    qmgr_queue_unthrottle(QMGR_QUEUE *queue)
 
     /*
      * Increase the destination's concurrency limit until we reach the
-     * transport's concurrency limit.
+     * transport's concurrency limit. Allow for a margin the size of the
+     * initial destination concurrency, so that we're not too gentle.
      */
     if (transport->dest_concurrency_limit == 0
        || transport->dest_concurrency_limit > queue->window)
-       if (queue->window <= queue->busy_refcount)
+       if (queue->window <= queue->busy_refcount + transport->init_dest_concurrency)
            queue->window++;
 }
 
index bb4845a68c5b15cf65619fcdefcb51fadda05fa2..0fdf61d04d5dbb402d9fad14193d2ac015d02cfe 100644 (file)
@@ -59,6 +59,8 @@
 /* .IP "\fB-F \fIfull_name\fR
 /*     Set the sender full name. This is used only with messages that
 /*     have no \fBFrom:\fR message header.
+/* .IP "\fB-G\fR (ignored)"
+/*     Gateway (relay) submission, as opposed to initial user submission.
 /* .IP \fB-I\fR
 /*     Initialize alias database. See the \fBnewaliases\fR
 /*     command above.
@@ -568,7 +570,7 @@ static void flush_queue(void)
 
 /* chat - send command and examine reply */
 
-static void chat(VSTREAM * fp, VSTRING * buf, const char *fmt,...)
+static void chat(VSTREAM *fp, VSTRING *buf, const char *fmt,...)
 {
     va_list ap;
 
@@ -791,7 +793,7 @@ int     main(int argc, char **argv)
            optind++;
            continue;
        }
-       if ((c = GETOPT(argc, argv, "B:C:F:IN:R:UX:b:ce:f:h:imno:p:r:q:tvx")) <= 0)
+       if ((c = GETOPT(argc, argv, "B:C:F:GIN:R:UX:b:ce:f:h:imno:p:r:q:tvx")) <= 0)
            break;
        switch (c) {
        default:
@@ -805,6 +807,8 @@ int     main(int argc, char **argv)
        case 'F':                               /* full name */
            full_name = optarg;
            break;
+       case 'G':                               /* gateway submission */
+           break;
        case 'I':                               /* newaliases */
            mode = SM_MODE_NEWALIAS;
            break;
index 29e49cf86fd1a8e2df0e622907e50f41830a054f..5e658807d2e3c32c2e9499838aee29482826cf1c 100644 (file)
 /* .IP \fBsmtpd_timeout\fR
 /*     Limit the time to send a server response and to receive a client
 /*     request.
+/* .IP \fBsoft_bounce\fR
+/*     Change hard (5xx) reject responses into soft (4xx) reject responses.
+/*     This can be useful for testing purposes.
 /* .SH "Resource controls"
 /* .ad
 /* .fi
@@ -861,6 +864,9 @@ static int data_cmd(SMTPD_STATE *state, int argc, SMTPD_TOKEN *unused_argv)
      * XXX Force an empty record when the queue file content begins with
      * whitespace, so that it won't be considered as being part of our own
      * Received: header. What an ugly Kluge.
+     * 
+     * XXX Deal with UNIX-style From_ lines at the start of message content
+     * because sendmail permits it.
      */
     if (vstream_fflush(state->cleanup))
        state->err = CLEANUP_STAT_WRITE;
@@ -873,11 +879,14 @@ static int data_cmd(SMTPD_STATE *state, int argc, SMTPD_TOKEN *unused_argv)
        start = vstring_str(state->buffer);
        len = VSTRING_LEN(state->buffer);
        if (first) {
+           if (strncmp(start + strspn(start, ">"), "From ", 5) == 0) {
+               rec_fprintf(state->cleanup, curr_rec_type,
+                           "Mbox-Line: %s", start);
+               continue;
+           }
            first = 0;
            if (len > 0 && ISSPACE(start[0]))
                rec_put(state->cleanup, REC_TYPE_NORM, "", 0);
-           else if (strncmp(start + strspn(start, ">"), "From ", 5) == 0)
-               continue;
        }
        if (prev_rec_type != REC_TYPE_CONT
            && *start == '.' && (++start, --len) == 0)
index 276e413efe89981a57cd73e3af39ed0e00c2b751..2d1f8772672be9f998b6a0f0d1582ca2d1876e95 100644 (file)
@@ -28,6 +28,8 @@
 /*
 /*     smtpd_chat_reply() formats a server reply, sends it to the
 /*     client, and appends a copy to the SMTP transaction log.
+/*     When soft_bounce is enabled, all 5xx (reject) reponses are
+/*     replaced by 4xx (try again).
 /*
 /*     smtpd_chat_notify() sends a copy of the SMTP transaction log
 /*     to the postmaster for review. The postmaster notice is sent only
@@ -138,6 +140,8 @@ void    smtpd_chat_reply(SMTPD_STATE *state, char *format,...)
     va_start(ap, format);
     vstring_vsprintf(state->buffer, format, ap);
     va_end(ap);
+    if (var_soft_bounce && STR(state->buffer)[0] == '5')
+       STR(state->buffer)[0] = '4';
     smtp_chat_append(state, "Out: ");
 
     if (msg_verbose)
index 09dfad47934df5c28378d6b3f5b7a2ac545d9de6..cba8d818144892fba19e83ed92f5d814fde0a767 100644 (file)
@@ -1956,52 +1956,45 @@ char   *smtpd_check_rcptmap(SMTPD_STATE *state, char *recipient)
        if (!resolve_local(domain))
            SMTPD_CHECK_RCPT_RETURN(0);
 
+#define NOMATCH(map, rcpt) \
+    (mail_addr_find(map, rcpt, (char **) 0) == 0 && dict_errno == 0)
+
     /*
-     * Reject mail to unknown addresses in domains that match $mydestination
-     * or $inet_interfaces (Postfix local). Reject mail to unknown addresses
-     * in Postfix virtual domains (Postfix virtual). Accept mail to other
-     * domains. Toss any extension information found by the lookup routines.
-     */
-#define NOP ((char **) 0)
-
-    if (resolve_local(domain)) {
-       if (*var_virtual_maps
-           && maps_find(virtual_maps, domain, 0)) {
-           msg_warn("virtual domain \"%s\" is listed in $mydestination",
-                    domain);
-           msg_warn("the $local_recipient_maps feature requires that no");
-           msg_warn("virtual domains are listed in $mydestination");
-           msg_warn("be sure to specify the required \"%s whatever\"",
-                    domain);
-           msg_warn("entry in the virtual map, as explained in the man");
-           msg_warn("page and in the FAQ entry for virtual domains");
-           SMTPD_CHECK_RCPT_RETURN(0);
-       }
-       dict_errno = 0;
-       if (*var_local_rcpt_maps
-           && !mail_addr_find(rcpt_canon_maps, STR(reply.recipient), NOP)
-           && !mail_addr_find(canonical_maps, STR(reply.recipient), NOP)
-           && !mail_addr_find(relocated_maps, STR(reply.recipient), NOP)
-           && !mail_addr_find(local_rcpt_maps, STR(reply.recipient), NOP)) {
+     * Reject mail to unknown addresses in Postfix-style virtual domains.
+     */
+    if (*var_virtual_maps && maps_find(virtual_maps, domain, 0)) {
+       if (NOMATCH(rcpt_canon_maps, STR(reply.recipient))
+           && NOMATCH(canonical_maps, STR(reply.recipient))
+           && NOMATCH(relocated_maps, STR(reply.recipient))
+           && NOMATCH(virtual_maps, STR(reply.recipient))) {
            (void) smtpd_check_reject(state, MAIL_ERROR_BOUNCE,
-                                     "%d <%s>: User unknown",
-                                     dict_errno ? 450 : 550, recipient);
+                                  "%d <%s>: User unknown", 550, recipient);
            SMTPD_CHECK_RCPT_RETURN(STR(error_text));
        }
-    } else {
-       dict_errno = 0;
-       if (*var_virtual_maps
-           && !mail_addr_find(rcpt_canon_maps, STR(reply.recipient), NOP)
-           && !mail_addr_find(canonical_maps, STR(reply.recipient), NOP)
-           && !mail_addr_find(relocated_maps, STR(reply.recipient), NOP)
-           && !mail_addr_find(virtual_maps, STR(reply.recipient), NOP)
-           && maps_find(virtual_maps, domain, 0)) {
+    }
+
+    /*
+     * Reject mail to unknown addresses in local domains (domains that match
+     * $mydestination or $inet_interfaces). Accept mail for addresses in
+     * Sendmail-style virtual domains.
+     */
+    if (*var_local_rcpt_maps && resolve_local(domain)) {
+       if (NOMATCH(relocated_maps, STR(reply.recipient))
+           && NOMATCH(rcpt_canon_maps, STR(reply.recipient))
+           && NOMATCH(canonical_maps, STR(reply.recipient))
+           && NOMATCH(relocated_maps, STR(reply.recipient))
+           && NOMATCH(virtual_maps, STR(reply.recipient))
+           && NOMATCH(local_rcpt_maps, STR(reply.recipient))) {
            (void) smtpd_check_reject(state, MAIL_ERROR_BOUNCE,
-                                     "%d <%s>: User unknown",
-                                     dict_errno ? 450 : 550, recipient);
+                                  "%d <%s>: User unknown", 550, recipient);
            SMTPD_CHECK_RCPT_RETURN(STR(error_text));
        }
     }
+
+    /*
+     * Accept all other addresses - including addresses that passed the above
+     * tests because of some table lookup problem.
+     */
     SMTPD_CHECK_RCPT_RETURN(0);
 }
 
index 29103605a75feb6c910145ad37b85bc12a683a89..b631b3c86bdf47616d22c02813702753c5f1e351 100644 (file)
@@ -47,6 +47,8 @@ OK
 >>> client foo 123.123.123.123
 OK
 >>> helo foo.
+./smtpd_check: warning: valid_hostname: misplaced delimiter: foo.
+./smtpd_check: warning: valid_hostname: misplaced delimiter: foo.
 ./smtpd_check: reject: HELO from foo[123.123.123.123]: 450 <foo.>: Helo command rejected: Host not found
 450 <foo.>: Helo command rejected: Host not found
 >>> helo foo
@@ -65,6 +67,8 @@ OK
 OK
 >>> helo 123.123.123.123
 ./smtpd_check: warning: valid_hostname: numeric hostname: 123.123.123.123
+./smtpd_check: warning: valid_hostname: numeric hostname: 123.123.123.123
+./smtpd_check: warning: valid_hostname: numeric hostname: 123.123.123.123
 ./smtpd_check: reject: HELO from foo[123.123.123.123]: 450 <123.123.123.123>: Helo command rejected: Host not found
 450 <123.123.123.123>: Helo command rejected: Host not found
 >>> helo_restrictions permit_naked_ip_address,reject_invalid_hostname,reject_unknown_hostname
index 8a7347673d887f7b0e3377bc3d9bb881eba01f47..155cb6104d1c7a38b4c8b534d70eb7aa98f9de1f 100644 (file)
@@ -47,6 +47,8 @@ OK
 >>> client foo 123.123.123.123
 OK
 >>> helo foo.
+./smtpd_check: warning: valid_hostname: misplaced delimiter: foo.
+./smtpd_check: warning: valid_hostname: misplaced delimiter: foo.
 ./smtpd_check: reject: HELO from foo[123.123.123.123]: 450 <foo.>: Helo command rejected: Host not found
 450 <foo.>: Helo command rejected: Host not found
 >>> helo foo
index 969e0a042215d7a14217867ccfa192ab1144d090..559d55b8944da1b6965d4f174dbdbdf181cfd90c 100644 (file)
@@ -38,6 +38,8 @@
 void    clean_env(void)
 {
     char   *TZ;
+    char   *DISPLAY;
+    char   *XAUTHORITY;
     extern char **environ;
 
     /*
@@ -45,6 +47,8 @@ void    clean_env(void)
      * configurable.
      */
     TZ = getenv("TZ");
+    DISPLAY = getenv("DISPLAY");
+    XAUTHORITY = getenv("XAUTHORITY");
 
     /*
      * Truncate the process environment, if available. On some systems
@@ -58,6 +62,10 @@ void    clean_env(void)
      */
     if (TZ && setenv("TZ", TZ, 1))
        msg_fatal("setenv: %m");
+    if (DISPLAY && setenv("DISPLAY", DISPLAY, 1))
+       msg_fatal("setenv: %m");
+    if (XAUTHORITY && setenv("XAUTHORITY", XAUTHORITY, 1))
+       msg_fatal("setenv: %m");
 
     /*
      * Update the process environment with configurable initial values.
index 250a1e646eb026b25c928e8b383b54cfd4f7f010..ac2c6edd17a952bdbda13c40cce8a8e5657e9465 100644 (file)
@@ -676,15 +676,17 @@ DICT   *dict_ldap_open(const char *ldapsource, int dummy, int dict_flags)
     domainlist =
        mystrdup((char *) get_mail_conf_str(vstring_str(config_param),
                                            "", 0, 0));
-    if (domainlist) {
+    if (*domainlist) {
        dict_ldap->domain = match_list_init(domainlist, 1, match_string);
        if (dict_ldap->domain == NULL)
            msg_warn("%s: domain match list creation using \"%s\" failed, will continue without it", myname, domainlist);
        if (msg_verbose)
            msg_info("%s: domain list created using \"%s\"", myname,
                     domainlist);
-       myfree(domainlist);
+    } else {
+       dict_ldap->domain = NULL;
     }
+    myfree(domainlist);
 
     /*
      * get configured value of "ldapsource_timeout"; default to 10 seconds