1#++ 2# NAME 3# virtual 5 4# SUMMARY 5# Postfix virtual alias table format 6# SYNOPSIS 7# \fBpostmap /etc/postfix/virtual\fR 8# 9# \fBpostmap -q "\fIstring\fB" /etc/postfix/virtual\fR 10# 11# \fBpostmap -q - /etc/postfix/virtual <\fIinputfile\fR 12# DESCRIPTION 13# The optional \fBvirtual\fR(5) alias table rewrites recipient 14# addresses for all local, all virtual, and all remote mail 15# destinations. 16# This is unlike the \fBaliases\fR(5) table which is used 17# only for \fBlocal\fR(8) delivery. Virtual aliasing is 18# recursive, and is implemented by the Postfix \fBcleanup\fR(8) 19# daemon before mail is queued. 20# 21# The main applications of virtual aliasing are: 22# .IP \(bu 23# To redirect mail for one address to one or more addresses. 24# .IP \(bu 25# To implement virtual alias domains where all addresses are aliased 26# to addresses in other domains. 27# .sp 28# Virtual alias domains are not to be confused with the virtual mailbox 29# domains that are implemented with the Postfix \fBvirtual\fR(8) mail 30# delivery agent. With virtual mailbox domains, each recipient address 31# can have its own mailbox. 32# .PP 33# Virtual aliasing is applied only to recipient 34# envelope addresses, and does not affect message headers. 35# Use \fBcanonical\fR(5) 36# mapping to rewrite header and envelope addresses in general. 37# 38# Normally, the \fBvirtual\fR(5) alias table is specified as a text file 39# that serves as input to the \fBpostmap\fR(1) command. 40# The result, an indexed file in \fBdbm\fR or \fBdb\fR format, 41# is used for fast searching by the mail system. Execute the command 42# "\fBpostmap /etc/postfix/virtual\fR" to rebuild an indexed 43# file after changing the corresponding text file. 44# 45# When the table is provided via other means such as NIS, LDAP 46# or SQL, the same lookups are done as for ordinary indexed files. 47# 48# Alternatively, the table can be provided as a regular-expression 49# map where patterns are given as regular expressions, or lookups 50# can be directed to TCP-based server. In those case, the lookups 51# are done in a slightly different way as described below under 52# "REGULAR EXPRESSION TABLES" or "TCP-BASED TABLES". 53# CASE FOLDING 54# .ad 55# .fi 56# The search string is folded to lowercase before database 57# lookup. As of Postfix 2.3, the search string is not case 58# folded with database types such as regexp: or pcre: whose 59# lookup fields can match both upper and lower case. 60# TABLE FORMAT 61# .ad 62# .fi 63# The input format for the \fBpostmap\fR(1) command is as follows: 64# .IP "\fIpattern result\fR" 65# When \fIpattern\fR matches a mail address, replace it by the 66# corresponding \fIresult\fR. 67# .IP "blank lines and comments" 68# Empty lines and whitespace-only lines are ignored, as 69# are lines whose first non-whitespace character is a `#'. 70# .IP "multi-line text" 71# A logical line starts with non-whitespace text. A line that 72# starts with whitespace continues a logical line. 73# TABLE SEARCH ORDER 74# .ad 75# .fi 76# With lookups from indexed files such as DB or DBM, or from networked 77# tables such as NIS, LDAP or SQL, patterns are tried in the order as 78# listed below: 79# .IP "\fIuser\fR@\fIdomain address, address, ...\fR" 80# Redirect mail for \fIuser\fR@\fIdomain\fR to \fIaddress\fR. 81# This form has the highest precedence. 82# .IP "\fIuser address, address, ...\fR" 83# Redirect mail for \fIuser\fR@\fIsite\fR to \fIaddress\fR when 84# \fIsite\fR is equal to $\fBmyorigin\fR, when \fIsite\fR is listed in 85# $\fBmydestination\fR, or when it is listed in $\fBinet_interfaces\fR 86# or $\fBproxy_interfaces\fR. 87# .sp 88# This functionality overlaps with functionality of the local 89# \fIaliases\fR(5) database. The difference is that \fBvirtual\fR(5) 90# mapping can be applied to non-local addresses. 91# .IP "@\fIdomain address, address, ...\fR" 92# Redirect mail for other users in \fIdomain\fR to \fIaddress\fR. 93# This form has the lowest precedence. 94# .sp 95# Note: @\fIdomain\fR is a wild-card. With this form, the 96# Postfix SMTP server accepts 97# mail for any recipient in \fIdomain\fR, regardless of whether 98# that recipient exists. This may turn your mail system into 99# a backscatter source: Postfix first accepts mail for 100# non-existent recipients and then tries to return that mail 101# as "undeliverable" to the often forged sender address. 102# RESULT ADDRESS REWRITING 103# .ad 104# .fi 105# The lookup result is subject to address rewriting: 106# .IP \(bu 107# When the result has the form @\fIotherdomain\fR, the 108# result becomes the same \fIuser\fR in \fIotherdomain\fR. 109# This works only for the first address in a multi-address 110# lookup result. 111# .IP \(bu 112# When "\fBappend_at_myorigin=yes\fR", append "\fB@$myorigin\fR" 113# to addresses without "@domain". 114# .IP \(bu 115# When "\fBappend_dot_mydomain=yes\fR", append 116# "\fB.$mydomain\fR" to addresses without ".domain". 117# ADDRESS EXTENSION 118# .fi 119# .ad 120# When a mail address localpart contains the optional recipient delimiter 121# (e.g., \fIuser+foo\fR@\fIdomain\fR), the lookup order becomes: 122# \fIuser+foo\fR@\fIdomain\fR, \fIuser\fR@\fIdomain\fR, \fIuser+foo\fR, 123# \fIuser\fR, and @\fIdomain\fR. 124# 125# The \fBpropagate_unmatched_extensions\fR parameter controls whether 126# an unmatched address extension (\fI+foo\fR) is propagated to the 127# result of table lookup. 128# VIRTUAL ALIAS DOMAINS 129# .ad 130# .fi 131# Besides virtual aliases, the virtual alias table can also be used 132# to implement virtual alias domains. With a virtual alias domain, all 133# recipient addresses are aliased to addresses in other domains. 134# 135# Virtual alias domains are not to be confused with the virtual mailbox 136# domains that are implemented with the Postfix \fBvirtual\fR(8) mail 137# delivery agent. With virtual mailbox domains, each recipient address 138# can have its own mailbox. 139# 140# With a virtual alias domain, the virtual domain has its 141# own user name space. Local (i.e. non-virtual) usernames are not 142# visible in a virtual alias domain. In particular, local 143# \fBaliases\fR(5) and local mailing lists are not visible as 144# \fIlocalname@virtual-alias.domain\fR. 145# 146# Support for a virtual alias domain looks like: 147# 148# .nf 149# /etc/postfix/main.cf: 150# virtual_alias_maps = hash:/etc/postfix/virtual 151# .fi 152# 153# Note: some systems use \fBdbm\fR databases instead of \fBhash\fR. 154# See the output from "\fBpostconf -m\fR" for available database types. 155# 156# .nf 157# /etc/postfix/virtual: 158# \fIvirtual-alias.domain anything\fR (right-hand content does not matter) 159# \fIpostmaster@virtual-alias.domain postmaster\fR 160# \fIuser1@virtual-alias.domain address1\fR 161# \fIuser2@virtual-alias.domain address2, address3\fR 162# .fi 163# .sp 164# The \fIvirtual-alias.domain anything\fR entry is required for a 165# virtual alias domain. \fBWithout this entry, mail is rejected 166# with "relay access denied", or bounces with 167# "mail loops back to myself".\fR 168# 169# Do not specify virtual alias domain names in the \fBmain.cf 170# mydestination\fR or \fBrelay_domains\fR configuration parameters. 171# 172# With a virtual alias domain, the Postfix SMTP server 173# accepts mail for \fIknown-user@virtual-alias.domain\fR, and rejects 174# mail for \fIunknown-user\fR@\fIvirtual-alias.domain\fR as undeliverable. 175# 176# Instead of specifying the virtual alias domain name via 177# the \fBvirtual_alias_maps\fR table, you may also specify it via 178# the \fBmain.cf virtual_alias_domains\fR configuration parameter. 179# This latter parameter uses the same syntax as the \fBmain.cf 180# mydestination\fR configuration parameter. 181# REGULAR EXPRESSION TABLES 182# .ad 183# .fi 184# This section describes how the table lookups change when the table 185# is given in the form of regular expressions. For a description of 186# regular expression lookup table syntax, see \fBregexp_table\fR(5) 187# or \fBpcre_table\fR(5). 188# 189# Each pattern is a regular expression that is applied to the entire 190# address being looked up. Thus, \fIuser@domain\fR mail addresses are not 191# broken up into their \fIuser\fR and \fI@domain\fR constituent parts, 192# nor is \fIuser+foo\fR broken up into \fIuser\fR and \fIfoo\fR. 193# 194# Patterns are applied in the order as specified in the table, until a 195# pattern is found that matches the search string. 196# 197# Results are the same as with indexed file lookups, with 198# the additional feature that parenthesized substrings from the 199# pattern can be interpolated as \fB$1\fR, \fB$2\fR and so on. 200# TCP-BASED TABLES 201# .ad 202# .fi 203# This section describes how the table lookups change when lookups 204# are directed to a TCP-based server. For a description of the TCP 205# client/server lookup protocol, see \fBtcp_table\fR(5). 206# This feature is not available up to and including Postfix version 2.4. 207# 208# Each lookup operation uses the entire address once. Thus, 209# \fIuser@domain\fR mail addresses are not broken up into their 210# \fIuser\fR and \fI@domain\fR constituent parts, nor is 211# \fIuser+foo\fR broken up into \fIuser\fR and \fIfoo\fR. 212# 213# Results are the same as with indexed file lookups. 214# BUGS 215# The table format does not understand quoting conventions. 216# CONFIGURATION PARAMETERS 217# .ad 218# .fi 219# The following \fBmain.cf\fR parameters are especially relevant to 220# this topic. See the Postfix \fBmain.cf\fR file for syntax details 221# and for default values. Use the "\fBpostfix reload\fR" command after 222# a configuration change. 223# .IP \fBvirtual_alias_maps\fR 224# List of virtual aliasing tables. 225# .IP \fBvirtual_alias_domains\fR 226# List of virtual alias domains. This uses the same syntax 227# as the \fBmydestination\fR parameter. 228# .IP \fBpropagate_unmatched_extensions\fR 229# A list of address rewriting or forwarding mechanisms that propagate 230# an address extension from the original address to the result. 231# Specify zero or more of \fBcanonical\fR, \fBvirtual\fR, \fBalias\fR, 232# \fBforward\fR, \fBinclude\fR, or \fBgeneric\fR. 233# .PP 234# Other parameters of interest: 235# .IP \fBinet_interfaces\fR 236# The network interface addresses that this system receives mail on. 237# You need to stop and start Postfix when this parameter changes. 238# .IP \fBmydestination\fR 239# List of domains that this mail system considers local. 240# .IP \fBmyorigin\fR 241# The domain that is appended to any address that does not have a domain. 242# .IP \fBowner_request_special\fR 243# Give special treatment to \fBowner-\fIxxx\fR and \fIxxx\fB-request\fR 244# addresses. 245# .IP \fBproxy_interfaces\fR 246# Other interfaces that this machine receives mail on by way of a 247# proxy agent or network address translator. 248# SEE ALSO 249# cleanup(8), canonicalize and enqueue mail 250# postmap(1), Postfix lookup table manager 251# postconf(5), configuration parameters 252# canonical(5), canonical address mapping 253# README FILES 254# .ad 255# .fi 256# Use "\fBpostconf readme_directory\fR" or 257# "\fBpostconf html_directory\fR" to locate this information. 258# .na 259# .nf 260# ADDRESS_REWRITING_README, address rewriting guide 261# DATABASE_README, Postfix lookup table overview 262# VIRTUAL_README, domain hosting guide 263# LICENSE 264# .ad 265# .fi 266# The Secure Mailer license must be distributed with this software. 267# AUTHOR(S) 268# Wietse Venema 269# IBM T.J. Watson Research 270# P.O. Box 704 271# Yorktown Heights, NY 10598, USA 272#-- 273