6f59dc7aeb
(Postfix releases are now numbered -- 1.1.2 means 1.1, patchlevel 2.) Lots of new features, same great security.
247 lines
8.6 KiB
Groff
247 lines
8.6 KiB
Groff
.TH PIPE 8
|
|
.ad
|
|
.fi
|
|
.SH NAME
|
|
pipe
|
|
\-
|
|
Postfix delivery to external command
|
|
.SH SYNOPSIS
|
|
.na
|
|
.nf
|
|
\fBpipe\fR [generic Postfix daemon options] command_attributes...
|
|
.SH DESCRIPTION
|
|
.ad
|
|
.fi
|
|
The \fBpipe\fR daemon processes requests from the Postfix queue
|
|
manager to deliver messages to external commands.
|
|
This program expects to be run from the \fBmaster\fR(8) process
|
|
manager.
|
|
|
|
Message attributes such as sender address, recipient address and
|
|
next-hop host name can be specified as command-line macros that are
|
|
expanded before the external command is executed.
|
|
|
|
The \fBpipe\fR daemon updates queue files and marks recipients
|
|
as finished, or it informs the queue manager that delivery should
|
|
be tried again at a later time. Delivery problem reports are sent
|
|
to the \fBbounce\fR(8) or \fBdefer\fR(8) daemon as appropriate.
|
|
.SH SINGLE-RECIPIENT DELIVERY
|
|
.na
|
|
.nf
|
|
.ad
|
|
.fi
|
|
Some external commands cannot handle more than one recipient
|
|
per delivery request. Examples of such transports are pagers,
|
|
fax machines, and so on.
|
|
|
|
To prevent Postfix from sending multiple recipients per delivery
|
|
request, specify
|
|
|
|
.ti +4
|
|
\fItransport\fB_destination_recipient_limit = 1\fR
|
|
|
|
in the Postfix \fBmain.cf\fR file, where \fItransport\fR
|
|
is the name in the first column of the Postfix \fBmaster.cf\fR
|
|
entry for the pipe-based delivery transport.
|
|
.SH COMMAND ATTRIBUTE SYNTAX
|
|
.na
|
|
.nf
|
|
.ad
|
|
.fi
|
|
The external command attributes are given in the \fBmaster.cf\fR
|
|
file at the end of a service definition. The syntax is as follows:
|
|
.IP "\fBflags=BFRhqu.>\fR (optional)"
|
|
Optional message processing flags. By default, a message is
|
|
copied unchanged.
|
|
.RS
|
|
.IP \fBB\fR
|
|
Append a blank line at the end of each message. This is required
|
|
by some mail user agents that recognize "\fBFrom \fR" lines only
|
|
when preceded by a blank line.
|
|
.IP \fBF\fR
|
|
Prepend a "\fBFrom \fIsender time_stamp\fR" envelope header to
|
|
the message content.
|
|
This is expected by, for example, \fBUUCP\fR software.
|
|
.IP \fBR\fR
|
|
Prepend a \fBReturn-Path:\fR message header with the envelope sender
|
|
address.
|
|
.IP \fBh\fR
|
|
Fold the command-line \fB$recipient\fR domain name and \fB$nexthop\fR
|
|
host name to lower case.
|
|
This is recommended for delivery via \fBUUCP\fR.
|
|
.IP \fBq\fR
|
|
Quote white space and other special characters in the command-line
|
|
\fB$sender\fR and \fB$recipient\fR address localparts (text to the
|
|
left of the right-most \fB@\fR character), according to an 8-bit
|
|
transparent version of RFC 822.
|
|
This is recommended for delivery via \fBUUCP\fR or \fBBSMTP\fR.
|
|
.sp
|
|
The result is compatible with the address parsing of command-line
|
|
recipients by the Postfix \fBsendmail\fR mail submission command.
|
|
.sp
|
|
The \fBq\fR flag affects only entire addresses, not the partial
|
|
address information from the \fB$user\fR, \fB$extension\fR or
|
|
\fB$mailbox\fR command-line macros.
|
|
.IP \fBu\fR
|
|
Fold the command-line \fB$recipient\fR address localpart (text to
|
|
the left of the right-most \fB@\fR character) to lower case.
|
|
This is recommended for delivery via \fBUUCP\fR.
|
|
.IP \fB.\fR
|
|
Prepend \fB.\fR to lines starting with "\fB.\fR". This is needed
|
|
by, for example, \fBBSMTP\fR software.
|
|
.IP \fB>\fR
|
|
Prepend \fB>\fR to lines starting with "\fBFrom \fR". This is expected
|
|
by, for example, \fBUUCP\fR software.
|
|
.RE
|
|
.IP "\fBuser\fR=\fIusername\fR (required)"
|
|
.IP "\fBuser\fR=\fIusername\fR:\fIgroupname\fR"
|
|
The external command is executed with the rights of the
|
|
specified \fIusername\fR. The software refuses to execute
|
|
commands with root privileges, or with the privileges of the
|
|
mail system owner. If \fIgroupname\fR is specified, the
|
|
corresponding group ID is used instead of the group ID of
|
|
\fIusername\fR.
|
|
.IP "\fBeol=string\fR (default: \fB\en\fR)"
|
|
The output record delimiter. Typically one would use either
|
|
\fB\er\en\fR or \fB\en\fR. The usual C-style backslash escape
|
|
sequences are recognized: \fB\ea \eb \ef \en \er \et \ev
|
|
\e\fIoctal\fR and \fB\e\e\fR.
|
|
.IP "\fBsize\fR=\fIsize_limit\fR (optional)"
|
|
Messages greater in size than this limit (in bytes) will be bounced
|
|
back to the sender.
|
|
.IP "\fBargv\fR=\fIcommand\fR... (required)"
|
|
The command to be executed. This must be specified as the
|
|
last command attribute.
|
|
The command is executed directly, i.e. without interpretation of
|
|
shell meta characters by a shell command interpreter.
|
|
.sp
|
|
In the command argument vector, the following macros are recognized
|
|
and replaced with corresponding information from the Postfix queue
|
|
manager delivery request:
|
|
.RS
|
|
.IP \fB${\fBextension\fR}\fR
|
|
This macro expands to the extension part of a recipient address.
|
|
For example, with an address \fIuser+foo@domain\fR the extension is
|
|
\fIfoo\fR.
|
|
.sp
|
|
A command-line argument that contains \fB${\fBextension\fR}\fR expands
|
|
into as many command-line arguments as there are recipients.
|
|
.sp
|
|
This information is modified by the \fBu\fR flag for case folding.
|
|
.IP \fB${\fBmailbox\fR}\fR
|
|
This macro expands to the complete local part of a recipient address.
|
|
For example, with an address \fIuser+foo@domain\fR the mailbox is
|
|
\fIuser+foo\fR.
|
|
.sp
|
|
A command-line argument that contains \fB${\fBmailbox\fR}\fR
|
|
expands into as many command-line arguments as there are recipients.
|
|
.sp
|
|
This information is modified by the \fBu\fR flag for case folding.
|
|
.IP \fB${\fBnexthop\fR}\fR
|
|
This macro expands to the next-hop hostname.
|
|
.sp
|
|
This information is modified by the \fBh\fR flag for case folding.
|
|
.IP \fB${\fBrecipient\fR}\fR
|
|
This macro expands to the complete recipient address.
|
|
.sp
|
|
A command-line argument that contains \fB${\fBrecipient\fR}\fR
|
|
expands into as many command-line arguments as there are recipients.
|
|
.sp
|
|
This information is modified by the \fBhqu\fR flags for quoting
|
|
and case folding.
|
|
.IP \fB${\fBsender\fR}\fR
|
|
This macro expands to the envelope sender address.
|
|
.sp
|
|
This information is modified by the \fBq\fR flag for quoting.
|
|
.IP \fB${\fBsize\fR}\fR
|
|
This macro expands to Postfix's idea of the message size, which
|
|
is an approximation of the size of the message as delivered.
|
|
.IP \fB${\fBuser\fR}\fR
|
|
This macro expands to the username part of a recipient address.
|
|
For example, with an address \fIuser+foo@domain\fR the username
|
|
part is \fIuser\fR.
|
|
.sp
|
|
A command-line argument that contains \fB${\fBuser\fR}\fR expands
|
|
into as many command-line arguments as there are recipients.
|
|
.sp
|
|
This information is modified by the \fBu\fR flag for case folding.
|
|
.RE
|
|
.PP
|
|
In addition to the form ${\fIname\fR}, the forms $\fIname\fR and
|
|
$(\fIname\fR) are also recognized. Specify \fB$$\fR where a single
|
|
\fB$\fR is wanted.
|
|
.SH DIAGNOSTICS
|
|
.ad
|
|
.fi
|
|
Command exit status codes are expected to
|
|
follow the conventions defined in <\fBsysexits.h\fR>.
|
|
|
|
Problems and transactions are logged to \fBsyslogd\fR(8).
|
|
Corrupted message files are marked so that the queue manager
|
|
can move them to the \fBcorrupt\fR queue for further inspection.
|
|
.SH SECURITY
|
|
.na
|
|
.nf
|
|
.fi
|
|
.ad
|
|
This program needs a dual personality 1) to access the private
|
|
Postfix queue and IPC mechanisms, and 2) to execute external
|
|
commands as the specified user. It is therefore security sensitive.
|
|
.SH CONFIGURATION PARAMETERS
|
|
.na
|
|
.nf
|
|
.ad
|
|
.fi
|
|
The following \fBmain.cf\fR parameters are especially relevant to
|
|
this program. See the Postfix \fBmain.cf\fR file for syntax details
|
|
and for default values. Use the \fBpostfix reload\fR command after
|
|
a configuration change.
|
|
.SH Miscellaneous
|
|
.ad
|
|
.fi
|
|
.IP \fBexport_environment\fR
|
|
List of names of environment parameters that can be exported
|
|
to non-Postfix processes.
|
|
.IP \fBmail_owner\fR
|
|
The process privileges used while not running an external command.
|
|
.SH "Resource controls"
|
|
.ad
|
|
.fi
|
|
In the text below, \fItransport\fR is the first field in a
|
|
\fBmaster.cf\fR entry.
|
|
.IP \fItransport\fB_destination_concurrency_limit\fR
|
|
Limit the number of parallel deliveries to the same destination,
|
|
for delivery via the named \fItransport\fR. The default limit is
|
|
taken from the \fBdefault_destination_concurrency_limit\fR parameter.
|
|
The limit is enforced by the Postfix queue manager.
|
|
.IP \fItransport\fB_destination_recipient_limit\fR
|
|
Limit the number of recipients per message delivery, for delivery
|
|
via the named \fItransport\fR. The default limit is taken from
|
|
the \fBdefault_destination_recipient_limit\fR parameter.
|
|
The limit is enforced by the Postfix queue manager.
|
|
.IP \fItransport\fB_time_limit\fR
|
|
Limit the time for delivery to external command, for delivery via
|
|
the named \fBtransport\fR. The default limit is taken from the
|
|
\fBcommand_time_limit\fR parameter.
|
|
The limit is enforced by the Postfix queue manager.
|
|
.SH SEE ALSO
|
|
.na
|
|
.nf
|
|
bounce(8) non-delivery status reports
|
|
master(8) process manager
|
|
qmgr(8) queue manager
|
|
syslogd(8) system logging
|
|
.SH LICENSE
|
|
.na
|
|
.nf
|
|
.ad
|
|
.fi
|
|
The Secure Mailer license must be distributed with this software.
|
|
.SH AUTHOR(S)
|
|
.na
|
|
.nf
|
|
Wietse Venema
|
|
IBM T.J. Watson Research
|
|
P.O. Box 704
|
|
Yorktown Heights, NY 10598, USA
|