Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
GENERIC(5)		      File Formats Manual		    GENERIC(5)

NAME
       generic - Postfix generic table format

SYNOPSIS
       postmap /usr/local/etc/postfix/generic

       postmap -q "string" /usr/local/etc/postfix/generic

       postmap -q - /usr/local/etc/postfix/generic <inputfile

DESCRIPTION
       The optional generic(5) table specifies an address mapping that applies
       when  mail  is delivered. This is the opposite of canonical(5) mapping,
       which applies when mail is received.

       Typically, one would use	the generic(5) table on	a system that does not
       have a valid Internet domain name and that uses something like localdo-
       main.local instead.  The	generic(5) table is then used by  the  smtp(8)
       client  to  transform local mail	addresses into valid Internet mail ad-
       dresses when mail has to	be sent	across the Internet.  See the  EXAMPLE
       section at the end of this document.

       The  generic(5) mapping affects both message header addresses (i.e. ad-
       dresses that appear inside messages)  and  message  envelope  addresses
       (for example, the addresses that	are used in SMTP protocol commands).

       Normally,  the generic(5) 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 /usr/local/etc/postfix/generic" to	rebuild	an in-
       dexed file after	changing the corresponding 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,	or lookups can be  di-
       rected to a TCP-based server. In	those cases, the lookups are done in a
       slightly	different way as described below under "REGULAR	EXPRESSION TA-
       BLES" or	"TCP-BASED TABLES".

CASE FOLDING
       The  search string is folded to lowercase before	database lookup. As of
       Postfix 2.3, the	search string is not case folded with  database	 types
       such  as	 regexp: or pcre: whose	lookup fields can match	both upper and
       lower case.

TABLE FORMAT
       The input format	for the	postmap(1) command is as follows:

       pattern result
	      When pattern matches a mail address, replace it  by  the	corre-
	      sponding result.

       blank lines and comments
	      Empty  lines and whitespace-only lines are ignored, as are lines
	      whose first non-whitespace character is a	`#'.

       multi-line text
	      A	logical	line starts with  non-whitespace  text.	 A  line  that
	      starts with whitespace continues a logical line.

TABLE SEARCH ORDER
       With  lookups  from  indexed files such as DB or	DBM, or	from networked
       tables such as NIS, LDAP	or SQL,	each user@domain query produces	a  se-
       quence of query patterns	as described below.

       Each query pattern is sent to each specified lookup table before	trying
       the next	query pattern, until a match is	found.

       user@domain address
	      Replace user@domain by address. This form	has the	highest	prece-
	      dence.

       user address
	      Replace  user@site  by  address when site	is equal to $myorigin,
	      when site	is listed in $mydestination, or	when it	is  listed  in
	      $inet_interfaces or $proxy_interfaces.

       @domain address
	      Replace other addresses in domain	by address.  This form has the
	      lowest precedence.

RESULT ADDRESS REWRITING
       The lookup result is subject to address rewriting:

             When  the	 result	 has the form @otherdomain, the	result becomes
	      the same user in otherdomain.

             When "append_at_myorigin=yes", append "@$myorigin" to  addresses
	      without "@domain".

             When "append_dot_mydomain=yes", append ".$mydomain" to addresses
	      without ".domain".

ADDRESS	EXTENSION
       When a mail address localpart contains the optional recipient delimiter
       (e.g.,  user+foo@domain),  the  lookup  order becomes: user+foo@domain,
       user@domain, user+foo, user, and	@domain.

       The propagate_unmatched_extensions parameter controls  whether  an  un-
       matched	address	 extension (+foo) is propagated	to the result of table
       lookup.

REGULAR	EXPRESSION TABLES
       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, see regexp_table(5) or pcre_table(5).

       Each pattern is a regular expression that is applied to the entire  ad-
       dress  being looked up. Thus, user@domain mail addresses	are not	broken
       up into their user and @domain constituent parts, nor is	user+foo  bro-
       ken up into user	and foo.

       Patterns	 are  applied  in the order as specified in the	table, until a
       pattern is found	that matches the search	string.

       Results are the same as with indexed file lookups, with the  additional
       feature	that parenthesized substrings from the pattern can be interpo-
       lated as	$1, $2 and so on.

TCP-BASED TABLES
       This section describes how the table lookups change  when  lookups  are
       directed	  to  a	 TCP-based  server.  For  a  description  of  the  TCP
       client/server lookup  protocol,	see  tcp_table(5).   This  feature  is
       available in Postfix 2.5	and later.

       Each  lookup operation uses the entire address once.  Thus, user@domain
       mail addresses are not broken up	 into  their  user  and	 @domain  con-
       stituent	parts, nor is user+foo broken up into user and foo.

       Results are the same as with indexed file lookups.

EXAMPLE
       The  following shows a generic mapping with an indexed file.  When mail
       is sent to a remote host	via SMTP, this replaces	 his@localdomain.local
       by his ISP mail address,	replaces her@localdomain.local by her ISP mail
       address,	and replaces other local addresses by his ISP account, with an
       address extension of +local (this example assumes that the ISP supports
       "+" style address extensions).

       /usr/local/etc/postfix/main.cf:
	   smtp_generic_maps = hash:$config_directory/generic

       /usr/local/etc/postfix/generic:
	   his@localdomain.local   hisaccount@hisisp.example
	   her@localdomain.local   heraccount@herisp.example
	   @localdomain.local	   hisaccount+local@hisisp.example

       Execute	the  command "postmap /usr/local/etc/postfix/generic" whenever
       the table is changed.  Instead of hash, some systems use	 dbm  database
       files.  To  find	 out  what tables your system supports use the command
       "postconf -m".

BUGS
       The table format	does not understand quoting conventions.

CONFIGURATION PARAMETERS
       The following main.cf parameters	are especially relevant.  The text be-
       low provides only a parameter summary. See postconf(5) for more details
       including examples.

       smtp_generic_maps (empty)
	      Optional lookup tables that perform  address  rewriting  in  the
	      Postfix  SMTP client, typically to transform a locally valid ad-
	      dress into a globally valid address when sending mail across the
	      Internet.

       propagate_unmatched_extensions (canonical, virtual)
	      What address lookup tables copy an address  extension  from  the
	      lookup key to the	lookup result.

       Other parameters	of interest:

       inet_interfaces (all)
	      The  local network interface addresses that this mail system re-
	      ceives mail on.

       proxy_interfaces	(empty)
	      The remote network interface addresses that this mail system re-
	      ceives mail on by	way of a proxy or network address  translation
	      unit.

       mydestination ($myhostname, localhost.$mydomain,	localhost)
	      The  list	of domains that	are delivered via the $local_transport
	      mail delivery transport.

       myorigin	($myhostname)
	      The domain name that locally-posted mail appears to  come	 from,
	      and that locally posted mail is delivered	to.

       owner_request_special (yes)
	      Enable  special  treatment  for  owner-listname  entries	in the
	      aliases(5) file, and don't split owner-listname and listname-re-
	      quest address localparts when the	recipient_delimiter is set  to
	      "-".

SEE ALSO
       postmap(1), Postfix lookup table	manager
       postconf(5), configuration parameters
       smtp(8),	Postfix	SMTP client

README FILES
       Use  "postconf readme_directory"	or "postconf html_directory" to	locate
       this information.
       ADDRESS_REWRITING_README, address rewriting guide
       DATABASE_README,	Postfix	lookup table overview
       STANDARD_CONFIGURATION_README, configuration examples

LICENSE
       The Secure Mailer license must be distributed with this software.

HISTORY
       A genericstable feature appears in the Sendmail MTA.

       This feature is available in Postfix 2.2	and later.

AUTHOR(S)
       Wietse Venema
       IBM T.J.	Watson Research
       P.O. Box	704
       Yorktown	Heights, NY 10598, USA

       Wietse Venema
       Google, Inc.
       111 8th Avenue
       New York, NY 10011, USA

								    GENERIC(5)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=generic&sektion=5&manpath=FreeBSD+Ports+14.3.quarterly>

home | help