123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313 |
- <!doctype html public "-//W3C//DTD HTML 4.01 Transitional//EN"
- "http://www.w3.org/TR/html4/loose.dtd">
- <html> <head>
- <meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
- <title> Postfix manual - virtual(8) </title>
- </head> <body> <pre>
- VIRTUAL(8) VIRTUAL(8)
- <b>NAME</b>
- virtual - Postfix virtual domain mail delivery agent
- <b>SYNOPSIS</b>
- <b>virtual</b> [generic Postfix daemon options]
- <b>DESCRIPTION</b>
- The <a href="virtual.8.html"><b>virtual</b>(8)</a> delivery agent is designed for virtual mail hosting ser-
- vices. Originally based on the Postfix <a href="local.8.html"><b>local</b>(8)</a> delivery agent, this
- agent looks up recipients with map lookups of their full recipient
- address, instead of using hard-coded unix password file lookups of the
- address local part only.
- This delivery agent only delivers mail. Other features such as mail
- forwarding, out-of-office notifications, etc., must be configured via
- virtual_alias maps or via similar lookup mechanisms.
- <b>MAILBOX LOCATION</b>
- The mailbox location is controlled by the <b><a href="postconf.5.html#virtual_mailbox_base">virtual_mailbox_base</a></b> and <b><a href="postconf.5.html#virtual_mailbox_maps">vir</a>-</b>
- <b><a href="postconf.5.html#virtual_mailbox_maps">tual_mailbox_maps</a></b> configuration parameters (see below). The <b><a href="postconf.5.html#virtual_mailbox_maps">vir-</b>
- <b>tual_mailbox_maps</a></b> table is indexed by the recipient address as
- described under TABLE SEARCH ORDER below.
- The mailbox pathname is constructed as follows:
- <b>$<a href="postconf.5.html#virtual_mailbox_base">virtual_mailbox_base</a>/$virtual_mailbox_maps(</b><i>recipient</i><b>)</b>
- where <i>recipient</i> is the full recipient address.
- <b>UNIX MAILBOX FORMAT</b>
- When the mailbox location does not end in <b>/</b>, the message is delivered
- in UNIX mailbox format. This format stores multiple messages in one
- textfile.
- The <a href="virtual.8.html"><b>virtual</b>(8)</a> delivery agent prepends a "<b>From</b> <i>sender time</i><b>_</b><i>stamp</i>" enve-
- lope header to each message, prepends a <b>Delivered-To:</b> message header
- with the envelope recipient address, prepends an <b>X-Original-To:</b> header
- with the recipient address as given to Postfix, prepends a <b>Return-Path:</b>
- message header with the envelope sender address, prepends a > character
- to lines beginning with "<b>From</b> ", and appends an empty line.
- The mailbox is locked for exclusive access while delivery is in
- progress. In case of problems, an attempt is made to truncate the mail-
- box to its original length.
- <b>QMAIL MAILDIR FORMAT</b>
- When the mailbox location ends in <b>/</b>, the message is delivered in qmail
- <b>maildir</b> format. This format stores one message per file.
- The <a href="virtual.8.html"><b>virtual</b>(8)</a> delivery agent prepends a <b>Delivered-To:</b> message header
- with the final envelope recipient address, prepends an <b>X-Original-To:</b>
- header with the recipient address as given to Postfix, and prepends a
- <b>Return-Path:</b> message header with the envelope sender address.
- By definition, <b>maildir</b> format does not require application-level file
- locking during mail delivery or retrieval.
- <b>MAILBOX OWNERSHIP</b>
- Mailbox ownership is controlled by the <b><a href="postconf.5.html#virtual_uid_maps">virtual_uid_maps</a></b> and <b><a href="postconf.5.html#virtual_gid_maps">vir</a>-</b>
- <b><a href="postconf.5.html#virtual_gid_maps">tual_gid_maps</a></b> lookup tables, which are indexed with the full recipient
- address. Each table provides a string with the numerical user and group
- ID, respectively.
- The <b><a href="postconf.5.html#virtual_minimum_uid">virtual_minimum_uid</a></b> parameter imposes a lower bound on numerical
- user ID values that may be specified in any <b><a href="postconf.5.html#virtual_uid_maps">virtual_uid_maps</a></b>.
- <b>CASE FOLDING</b>
- All delivery decisions are made using the full recipient address,
- folded to lower case. See also the next section for a few exceptions
- with optional address extensions.
- <b>TABLE SEARCH ORDER</b>
- Normally, a lookup 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.
- The search order is as follows. The search stops upon the first suc-
- cessful lookup.
- <b>o</b> When the recipient has an optional address extension the
- <i>user+extension@domain.tld</i> address is looked up first.
- With Postfix versions before 2.1, the optional address extension
- is always ignored.
- <b>o</b> The <i>user@domain.tld</i> address, without address extension, is
- looked up next.
- <b>o</b> Finally, the recipient <i>@domain</i> is looked up.
- 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, a table can be provided as a regular-expression map
- where patterns are given as regular expressions. In that case, only the
- full recipient address is given to the regular-expression map.
- <b>SECURITY</b>
- The <a href="virtual.8.html"><b>virtual</b>(8)</a> delivery agent is not security sensitive, provided that
- the lookup tables with recipient user/group ID information are ade-
- quately protected. This program is not designed to run chrooted.
- The <a href="virtual.8.html"><b>virtual</b>(8)</a> delivery agent disallows regular expression substitution
- of $1 etc. in regular expression lookup tables, because that would open
- a security hole.
- The <a href="virtual.8.html"><b>virtual</b>(8)</a> delivery agent will silently ignore requests to use the
- <a href="proxymap.8.html"><b>proxymap</b>(8)</a> server. Instead it will open the table directly. Before
- Postfix version 2.2, the virtual delivery agent will terminate with a
- fatal error.
- <b>STANDARDS</b>
- <a href="http://tools.ietf.org/html/rfc822">RFC 822</a> (ARPA Internet Text Messages)
- <b>DIAGNOSTICS</b>
- Mail bounces when the recipient has no mailbox or when the recipient is
- over disk quota. In all other cases, mail for an existing recipient is
- deferred and a warning is logged.
- Problems and transactions are logged to <b>syslogd</b>(8). Corrupted message
- files are marked so that the queue manager can move them to the <b>corrupt</b>
- queue afterwards.
- Depending on the setting of the <b><a href="postconf.5.html#notify_classes">notify_classes</a></b> parameter, the postmas-
- ter is notified of bounces and of other trouble.
- <b>BUGS</b>
- This delivery agent supports address extensions in email addresses and
- in lookup table keys, but does not propagate address extension informa-
- tion to the result of table lookup.
- Postfix should have lookup tables that can return multiple result
- attributes. In order to avoid the inconvenience of maintaining three
- tables, use an LDAP or MYSQL database.
- <b>CONFIGURATION PARAMETERS</b>
- Changes to <a href="postconf.5.html"><b>main.cf</b></a> are picked up automatically, as <a href="virtual.8.html"><b>virtual</b>(8)</a> processes
- run for only a limited amount of time. Use the command "<b>postfix reload</b>"
- to speed up a change.
- The text below provides only a parameter summary. See <a href="postconf.5.html"><b>postconf</b>(5)</a> for
- more details including examples.
- <b>MAILBOX DELIVERY CONTROLS</b>
- <b><a href="postconf.5.html#virtual_mailbox_base">virtual_mailbox_base</a> (empty)</b>
- A prefix that the <a href="virtual.8.html"><b>virtual</b>(8)</a> delivery agent prepends to all
- pathname results from $<a href="postconf.5.html#virtual_mailbox_maps">virtual_mailbox_maps</a> table lookups.
- <b><a href="postconf.5.html#virtual_mailbox_maps">virtual_mailbox_maps</a> (empty)</b>
- Optional lookup tables with all valid addresses in the domains
- that match $<a href="postconf.5.html#virtual_mailbox_domains">virtual_mailbox_domains</a>.
- <b><a href="postconf.5.html#virtual_minimum_uid">virtual_minimum_uid</a> (100)</b>
- The minimum user ID value that the <a href="virtual.8.html"><b>virtual</b>(8)</a> delivery agent
- accepts as a result from $<a href="postconf.5.html#virtual_uid_maps">virtual_uid_maps</a> table lookup.
- <b><a href="postconf.5.html#virtual_uid_maps">virtual_uid_maps</a> (empty)</b>
- Lookup tables with the per-recipient user ID that the <a href="virtual.8.html"><b>virtual</b>(8)</a>
- delivery agent uses while writing to the recipient's mailbox.
- <b><a href="postconf.5.html#virtual_gid_maps">virtual_gid_maps</a> (empty)</b>
- Lookup tables with the per-recipient group ID for <a href="virtual.8.html"><b>virtual</b>(8)</a>
- mailbox delivery.
- Available in Postfix version 2.0 and later:
- <b><a href="postconf.5.html#virtual_mailbox_domains">virtual_mailbox_domains</a> ($<a href="postconf.5.html#virtual_mailbox_maps">virtual_mailbox_maps</a>)</b>
- Postfix is final destination for the specified list of domains;
- mail is delivered via the $<a href="postconf.5.html#virtual_transport">virtual_transport</a> mail delivery
- transport.
- <b><a href="postconf.5.html#virtual_transport">virtual_transport</a> (virtual)</b>
- The default mail delivery transport and next-hop destination for
- final delivery to domains listed with $<a href="postconf.5.html#virtual_mailbox_domains">virtual_mailbox_domains</a>.
- Available in Postfix version 2.5.3 and later:
- <b><a href="postconf.5.html#strict_mailbox_ownership">strict_mailbox_ownership</a> (yes)</b>
- Defer delivery when a mailbox file is not owned by its recipi-
- ent.
- <b>LOCKING CONTROLS</b>
- <b><a href="postconf.5.html#virtual_mailbox_lock">virtual_mailbox_lock</a> (see 'postconf -d' output)</b>
- How to lock a UNIX-style <a href="virtual.8.html"><b>virtual</b>(8)</a> mailbox before attempting
- delivery.
- <b><a href="postconf.5.html#deliver_lock_attempts">deliver_lock_attempts</a> (20)</b>
- The maximal number of attempts to acquire an exclusive lock on a
- mailbox file or <a href="bounce.8.html"><b>bounce</b>(8)</a> logfile.
- <b><a href="postconf.5.html#deliver_lock_delay">deliver_lock_delay</a> (1s)</b>
- The time between attempts to acquire an exclusive lock on a
- mailbox file or <a href="bounce.8.html"><b>bounce</b>(8)</a> logfile.
- <b><a href="postconf.5.html#stale_lock_time">stale_lock_time</a> (500s)</b>
- The time after which a stale exclusive mailbox lockfile is
- removed.
- <b>RESOURCE AND RATE CONTROLS</b>
- <b><a href="postconf.5.html#virtual_destination_concurrency_limit">virtual_destination_concurrency_limit</a> ($<a href="postconf.5.html#default_destination_concurrency_limit">default_destination_concur</a>-</b>
- <b><a href="postconf.5.html#default_destination_concurrency_limit">rency_limit</a>)</b>
- The maximal number of parallel deliveries to the same destina-
- tion via the virtual message delivery transport.
- <b><a href="postconf.5.html#virtual_destination_recipient_limit">virtual_destination_recipient_limit</a> ($<a href="postconf.5.html#default_destination_recipient_limit">default_destination_recipi</a>-</b>
- <b><a href="postconf.5.html#default_destination_recipient_limit">ent_limit</a>)</b>
- The maximal number of recipients per message for the virtual
- message delivery transport.
- <b><a href="postconf.5.html#virtual_mailbox_limit">virtual_mailbox_limit</a> (51200000)</b>
- The maximal size in bytes of an individual <a href="virtual.8.html"><b>virtual</b>(8)</a> mailbox or
- maildir file, or zero (no limit).
- <b>MISCELLANEOUS CONTROLS</b>
- <b><a href="postconf.5.html#config_directory">config_directory</a> (see 'postconf -d' output)</b>
- The default location of the Postfix <a href="postconf.5.html">main.cf</a> and <a href="master.5.html">master.cf</a> con-
- figuration files.
- <b><a href="postconf.5.html#daemon_timeout">daemon_timeout</a> (18000s)</b>
- How much time a Postfix daemon process may take to handle a
- request before it is terminated by a built-in watchdog timer.
- <b><a href="postconf.5.html#delay_logging_resolution_limit">delay_logging_resolution_limit</a> (2)</b>
- The maximal number of digits after the decimal point when log-
- ging sub-second delay values.
- <b><a href="postconf.5.html#ipc_timeout">ipc_timeout</a> (3600s)</b>
- The time limit for sending or receiving information over an
- internal communication channel.
- <b><a href="postconf.5.html#max_idle">max_idle</a> (100s)</b>
- The maximum amount of time that an idle Postfix daemon process
- waits for an incoming connection before terminating voluntarily.
- <b><a href="postconf.5.html#max_use">max_use</a> (100)</b>
- The maximal number of incoming connections that a Postfix daemon
- process will service before terminating voluntarily.
- <b><a href="postconf.5.html#process_id">process_id</a> (read-only)</b>
- The process ID of a Postfix command or daemon process.
- <b><a href="postconf.5.html#process_name">process_name</a> (read-only)</b>
- The process name of a Postfix command or daemon process.
- <b><a href="postconf.5.html#queue_directory">queue_directory</a> (see 'postconf -d' output)</b>
- The location of the Postfix top-level queue directory.
- <b><a href="postconf.5.html#syslog_facility">syslog_facility</a> (mail)</b>
- The syslog facility of Postfix logging.
- <b><a href="postconf.5.html#syslog_name">syslog_name</a> (see 'postconf -d' output)</b>
- A prefix that is prepended to the process name in syslog
- records, so that, for example, "smtpd" becomes "prefix/smtpd".
- Available in Postfix version 3.0 and later:
- <b><a href="postconf.5.html#virtual_delivery_status_filter">virtual_delivery_status_filter</a> ($<a href="postconf.5.html#default_delivery_status_filter">default_delivery_status_filter</a>)</b>
- Optional filter for the <a href="virtual.8.html"><b>virtual</b>(8)</a> delivery agent to change the
- delivery status code or explanatory text of successful or unsuc-
- cessful deliveries.
- <b>SEE ALSO</b>
- <a href="qmgr.8.html">qmgr(8)</a>, queue manager
- <a href="bounce.8.html">bounce(8)</a>, delivery status reports
- <a href="postconf.5.html">postconf(5)</a>, configuration parameters
- syslogd(8), system logging
- <b>README_FILES</b>
- Use "<b>postconf <a href="postconf.5.html#readme_directory">readme_directory</a></b>" or
- "<b>postconf <a href="postconf.5.html#html_directory">html_directory</a></b>" to locate this information.
- <a href="VIRTUAL_README.html">VIRTUAL_README</a>, domain hosting howto
- <b>LICENSE</b>
- The Secure Mailer license must be distributed with this software.
- <b>HISTORY</b>
- This delivery agent was originally based on the Postfix local delivery
- agent. Modifications mainly consisted of removing code that either was
- not applicable or that was not safe in this context: aliases,
- ~user/.forward files, delivery to "|command" or to /file/name.
- The <b>Delivered-To:</b> message header appears in the <b>qmail</b> system by Daniel
- Bernstein.
- The <b>maildir</b> structure appears in the <b>qmail</b> system by Daniel Bernstein.
- <b>AUTHOR(S)</b>
- 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
- Andrew McNamara
- andrewm@connect.com.au
- connect.com.au Pty. Ltd.
- Level 3, 213 Miller St
- North Sydney 2060, NSW, Australia
- VIRTUAL(8)
- </pre> </body> </html>
|