/etc/postfix/master.cf:
filter unix - n n - - pipe
- flags=R user=filter argv=/some/where/filter -f ${sender} -- ${recipient}
+ flags=Rq user=filter argv=/somewhere/filter -f ${sender} -- ${recipient}
The /some/where/filter program can be a simple shell script like this:
sending QUIT after process idle timeout while the LMTP
server had disconnected. Files: smtp/smtp_proto.c,
lmtp/lmtp_proto.c.
+
+20010526
+
+ newaliases no longer complains when an empty list is
+ specified with the alias_database configuration parameter.
+ File: sendmail/sendmail.c.
+
+20010529
+
+ Workaround: old PIX firewall code messes up when the final
+ ".<CR><LF>" at the end of DATA spans a packet boundary.
+ When Postfix detects PIX SMTP fixup mode, Postfix flushes
+ the output buffers before sending the final ".<CR><LF>".
+ File: smtp/smtp_proto.c.
+
+20010530
+
+ Portability: updated code for Mac OS X, accounting for the
+ post-Beta changes. Code by Joe Block, UCF School of
+ Optics/CREOL.
+
+20010601
+
+ Safety: postdrop turns off interrupts when cleaning up
+ after interrupt. The additional safety does not hurt anyone.
+ File: src/postdrop/postdrop.c.
+
+20010607
+
+ Safety: dropped the RFC 2821 compliant code that treats
+ 552 RCPT TO replies as 452. It created more problems than
+ it solved. Files: smtp/smtp_proto.c, lmtp/lmtp_proto.c.
+
+ Logging: the SMTP server now logs a warning if RBL lookups
+ have problems other than "not found". file: smtpd/smtpd_check.c.
+
+20010610
+
+ Feature: address quoting and case folding flags for the
+ pipe(8) mailer.
That's seven backslashes :-) But at least this works with sh and csh.
+In order to build Postfix for very large applications, where you
+expect to run more than 1000 delivery processes, you may need to
+override the definition of the FD_SETSIZE macro to make select()
+work correctly:
+
+ % make makefiles CCARGS=-FD_SETSIZE=2048
+
In any case, if the command
% make
+Incompatible changes with snapshot-20010610
+===========================================
+
+The Postfix pipe delivery agent no longer automatically case-folds
+the expansion of $user, $extension or $mailbox command-line macros.
+Specify the 'u' flag to get the old behavior.
+
+Major changes with snapshot-20010610
+====================================
+
+This release includes a workaround for a bug in old versions of
+the CISCO PIX firewall software that caused mail to be resent
+repeatedly to systems behind such a product.
+
+The pipe mail delivery agent now supports proper quoting of white
+space and other special characters in the expansions of the $sender
+and $recipient command-line macros. This was necessary for correct
+operation of the "simple" content filter, and is also recommended
+for delivery via UUCP or BSMTP.
+
+The pipe mail delivery agent now supports case folding the localpart
+and/or domain part of expansions of the $nexthop, $recipient, $user,
+$extension or $mailbox command-line macros. This is recommended
+for mail delivery via UUCP. Bug: $nexthop is always case folded
+because of problems in the queue manager code.
+
Incompatible changes with snapshot-20010525
===========================================
foo.com username:password
bar.com username
+Note: some SMTP servers support PLAIN or LOGIN authentication only.
+By default, the Postfix SMTP client does not use authentication
+methods that send plaintext passwords, and defers delivery with
+the following error message: "Authentication failed: cannot SASL
+authenticate to server". To enable plaintext authentication specify,
+for example:
+
+ /etc/postfix/main.cf:
+ smtp_sasl_security_options =
+
The SASL client password file is opened before the SMTP server
enters the optional chroot jail, so you can keep the file in
/etc/postfix.
virtual unix - n n - - virtual
lmtp unix - - n - - lmtp
cyrus unix - n n - - pipe
- flags=R user=cyrus argv=/cyrus/bin/deliver -e -m ${extension} ${user}
+ flags=R user=cyrus argv=/cyrus/bin/deliver -e -m ${extension} ${user}
uucp unix - n n - - pipe
- flags=F user=uucp argv=uux -r -n -z -a$sender - $nexthop!rmail ($recipient)
+ flags=Fqhu user=uucp argv=uux -r -n -z -a$sender - $nexthop!rmail ($recipient)
ifmail unix - n n - - pipe
- flags=F user=ftn argv=/usr/lib/ifmail/ifmail -r $nexthop ($recipient)
+ flags=F user=ftn argv=/usr/lib/ifmail/ifmail -r $nexthop ($recipient)
bsmtp unix - n n - - pipe
- flags=F. user=foo argv=/usr/local/sbin/bsmtp -f $sender $nexthop $recipient
+ flags=Fq. user=foo argv=/usr/local/sbin/bsmtp -f $sender $nexthop $recipient
CONFIG = access.5.html aliases.5.html canonical.5.html relocated.5.html \
transport.5.html virtual.5.html pcre_table.5.html regexp_table.5.html
+AWK = awk '{ print; if (NR == 1) print ".pl 9999" }'
+
update: $(DAEMONS) $(COMMANDS) $(CONFIG)
Makefile: Makefile.in
rm -f $(DAEMONS) $(COMMANDS) $(CONFIG)
bounce.8.html: ../src/bounce/bounce.c
- srctoman $? | nroff -man | man2html | postlink >$@
+ srctoman $? | $(AWK) | nroff -man | uniq | man2html | postlink >$@
defer.8.html: bounce.8.html
rm -f $@
ln -s $? $@
error.8.html: ../src/error/error.c
- srctoman $? | nroff -man | man2html | postlink >$@
+ srctoman $? | $(AWK) | nroff -man | uniq | man2html | postlink >$@
flush.8.html: ../src/flush/flush.c
- srctoman $? | nroff -man | man2html | postlink >$@
+ srctoman $? | $(AWK) | nroff -man | uniq | man2html | postlink >$@
cleanup.8.html: ../src/cleanup/cleanup.c
- srctoman $? | nroff -man | man2html | postlink >$@
+ srctoman $? | $(AWK) | nroff -man | uniq | man2html | postlink >$@
lmtp.8.html: ../src/lmtp/lmtp.c
- srctoman $? | nroff -man | man2html | postlink >$@
+ srctoman $? | $(AWK) | nroff -man | uniq | man2html | postlink >$@
local.8.html: ../src/local/local.c
- srctoman $? | nroff -man | man2html | postlink >$@
+ srctoman $? | $(AWK) | nroff -man | uniq | man2html | postlink >$@
master.8.html: ../src/master/master.c
- srctoman $? | nroff -man | man2html | postlink >$@
+ srctoman $? | $(AWK) | nroff -man | uniq | man2html | postlink >$@
nqmgr.8.html: ../src/nqmgr/qmgr.c
srctoman $? | sed -e 's/qmgr[^_]/n&/' \
-e 's/qmgr$$/n&/' \
-e 's/QMGR[^_]/N&/' | \
- nroff -man | man2html | postlink >$@
+ $(AWK) | nroff -man | uniq | man2html | postlink >$@
pickup.8.html: ../src/pickup/pickup.c
- srctoman $? | nroff -man | man2html | postlink >$@
+ srctoman $? | $(AWK) | nroff -man | uniq | man2html | postlink >$@
pipe.8.html: ../src/pipe/pipe.c
- srctoman $? | nroff -man | man2html | postlink >$@
+ srctoman $? | $(AWK) | nroff -man | uniq | man2html | postlink >$@
qmgr.8.html: ../src/qmgr/qmgr.c
- srctoman $? | nroff -man | man2html | postlink >$@
+ srctoman $? | $(AWK) | nroff -man | uniq | man2html | postlink >$@
showq.8.html: ../src/showq/showq.c
- srctoman $? | nroff -man | man2html | postlink >$@
+ srctoman $? | $(AWK) | nroff -man | uniq | man2html | postlink >$@
spawn.8.html: ../src/spawn/spawn.c
- srctoman $? | nroff -man | man2html | postlink >$@
+ srctoman $? | $(AWK) | nroff -man | uniq | man2html | postlink >$@
smtp.8.html: ../src/smtp/smtp.c
- srctoman $? | nroff -man | man2html | postlink >$@
+ srctoman $? | $(AWK) | nroff -man | uniq | man2html | postlink >$@
smtpd.8.html: ../src/smtpd/smtpd.c
- srctoman $? | nroff -man | man2html | postlink >$@
+ srctoman $? | $(AWK) | nroff -man | uniq | man2html | postlink >$@
virtual.8.html: ../src/virtual/virtual.c
- srctoman $? | nroff -man | man2html | postlink >$@
+ srctoman $? | $(AWK) | nroff -man | uniq | man2html | postlink >$@
trivial-rewrite.8.html: ../src/trivial-rewrite/trivial-rewrite.c
- srctoman $? | nroff -man | man2html | postlink >$@
+ srctoman $? | $(AWK) | nroff -man | uniq | man2html | postlink >$@
postalias.1.html: ../src/postalias/postalias.c
- srctoman $? | nroff -man | man2html | postlink >$@
+ srctoman $? | $(AWK) | nroff -man | uniq | man2html | postlink >$@
postcat.1.html: ../src/postcat/postcat.c
- srctoman $? | nroff -man | man2html | postlink >$@
+ srctoman $? | $(AWK) | nroff -man | uniq | man2html | postlink >$@
postconf.1.html: ../src/postconf/postconf.c
- srctoman $? | nroff -man | man2html | postlink >$@
+ srctoman $? | $(AWK) | nroff -man | uniq | man2html | postlink >$@
postdrop.1.html: ../src/postdrop/postdrop.c
- srctoman $? | nroff -man | man2html | postlink >$@
+ srctoman $? | $(AWK) | nroff -man | uniq | man2html | postlink >$@
postfix.1.html: ../src/postfix/postfix.c
- srctoman $? | nroff -man | man2html | postlink >$@
+ srctoman $? | $(AWK) | nroff -man | uniq | man2html | postlink >$@
postkick.1.html: ../src/postkick/postkick.c
- srctoman $? | nroff -man | man2html | postlink >$@
+ srctoman $? | $(AWK) | nroff -man | uniq | man2html | postlink >$@
postlock.1.html: ../src/postlock/postlock.c
- srctoman $? | nroff -man | man2html | postlink >$@
+ srctoman $? | $(AWK) | nroff -man | uniq | man2html | postlink >$@
postlog.1.html: ../src/postlog/postlog.c
- srctoman $? | nroff -man | man2html | postlink >$@
+ srctoman $? | $(AWK) | nroff -man | uniq | man2html | postlink >$@
postmap.1.html: ../src/postmap/postmap.c
- srctoman $? | nroff -man | man2html | postlink >$@
+ srctoman $? | $(AWK) | nroff -man | uniq | man2html | postlink >$@
postsuper.1.html: ../src/postsuper/postsuper.c
- srctoman $? | nroff -man | man2html | postlink >$@
+ srctoman $? | $(AWK) | nroff -man | uniq | man2html | postlink >$@
sendmail.1.html: ../src/sendmail/sendmail.c
- srctoman $? | nroff -man | man2html | postlink >$@
+ srctoman $? | $(AWK) | nroff -man | uniq | man2html | postlink >$@
mailq.1.html: sendmail.1.html
rm -f $@
ln -s $? $@
access.5.html: ../proto/access
- srctoman - $? | nroff -man | man2html | postlink >$@
+ srctoman - $? | $(AWK) | nroff -man | uniq | man2html | postlink >$@
aliases.5.html: ../proto/aliases
- srctoman - $? | nroff -man | man2html | postlink >$@
+ srctoman - $? | $(AWK) | nroff -man | uniq | man2html | postlink >$@
canonical.5.html: ../proto/canonical
- srctoman - $? | nroff -man | man2html | postlink >$@
+ srctoman - $? | $(AWK) | nroff -man | uniq | man2html | postlink >$@
pcre_table.5.html: ../proto/pcre_table
- srctoman - $? | nroff -man | man2html | postlink >$@
+ srctoman - $? | $(AWK) | nroff -man | uniq | man2html | postlink >$@
regexp_table.5.html: ../proto/regexp_table
- srctoman - $? | nroff -man | man2html | postlink >$@
+ srctoman - $? | $(AWK) | nroff -man | uniq | man2html | postlink >$@
relocated.5.html: ../proto/relocated
- srctoman - $? | nroff -man | man2html | postlink >$@
+ srctoman - $? | $(AWK) | nroff -man | uniq | man2html | postlink >$@
transport.5.html: ../proto/transport
- srctoman - $? | nroff -man | man2html | postlink >$@
+ srctoman - $? | $(AWK) | nroff -man | uniq | man2html | postlink >$@
virtual.5.html: ../proto/virtual
- srctoman - $? | nroff -man | man2html | postlink >$@
+ srctoman - $? | $(AWK) | nroff -man | uniq | man2html | postlink >$@
<html> <head> </head> <body> <pre>
-
-
ACCESS(5) ACCESS(5)
-
<b>NAME</b>
access - format of Postfix access table
<i>domain.name</i>
Matches the <i>domain.name</i> itself and any subdomain
thereof, either in hostnames or in mail addresses.
-
-
-
- 1
-
-
-
-
-
-ACCESS(5) ACCESS(5)
-
-
Top-level domains will never be matched.
<i>user</i>@ Matches all mail addresses with the specified user
<b>BUGS</b>
The table format does not understand quoting conventions.
-
-
-
- 2
-
-
-
-
-
-ACCESS(5) ACCESS(5)
-
-
<b>SEE</b> <b>ALSO</b>
<a href="postmap.1.html">postmap(1)</a> create mapping table
<a href="smtpd.8.html">smtpd(8)</a> smtp server
P.O. Box 704
Yorktown Heights, NY 10598, USA
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 3
-
+ 1
</pre> </body> </html>
<html> <head> </head> <body> <pre>
-
-
ALIASES(5) ALIASES(5)
-
<b>NAME</b>
aliases - format of the Postfix alias database
The <i>value</i> contains one or more of the following:
-
-
-
- 1
-
-
-
-
-
-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.
Restrict the usage of mail delivery to external
command.
-
-
-
-
- 2
-
-
-
-
-
-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.
P.O. Box 704
Yorktown Heights, NY 10598, USA
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 3
-
+ 1
</pre> </body> </html>
<html> <head> </head> <body> <pre>
-
-
BOUNCE(8) BOUNCE(8)
-
<b>NAME</b>
bounce - Postfix message bounce or defer daemon
<b>bounce</b><i>_</i><b>notice</b><i>_</i><b>recipient</b>
The recipient of single bounce postmaster notices.
-
-
-
- 1
-
-
-
-
-
-BOUNCE(8) BOUNCE(8)
-
-
<b>2bounce</b><i>_</i><b>notice</b><i>_</i><b>recipient</b>
The recipient of double bounce postmaster notices.
P.O. Box 704
Yorktown Heights, NY 10598, USA
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 2
-
+ 1
</pre> </body> </html>
<html> <head> </head> <body> <pre>
-
-
CANONICAL(5) CANONICAL(5)
-
<b>NAME</b>
canonical - format of Postfix canonical table
Lines that begin with whitespace continue the pre-
vious line.
-
-
-
- 1
-
-
-
-
-
-CANONICAL(5) CANONICAL(5)
-
-
<i>pattern</i> <i>result</i>
When <i>pattern</i> matches a mail address, replace it by
the corresponding <i>result</i>.
<i>foo</i>.
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
string.
<b>SEE</b> <b>ALSO</b>
<a href="cleanup.8.html">cleanup(8)</a> canonicalize and enqueue mail
-
-
-
- 3
-
-
-
-
-
-CANONICAL(5) CANONICAL(5)
-
-
<a href="postmap.1.html">postmap(1)</a> create mapping table
<a href="virtual.5.html">virtual(5)</a> virtual domain mapping
<a href="pcre_table.5.html">pcre_table(5)</a> format of PCRE tables
P.O. Box 704
Yorktown Heights, NY 10598, USA
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 4
-
+ 1
</pre> </body> </html>
<html> <head> </head> <body> <pre>
-
-
CLEANUP(8) CLEANUP(8)
-
<b>NAME</b>
cleanup - canonicalize and enqueue Postfix message
<b>STANDARDS</b>
<a href="http://www.faqs.org/rfcs/rfc822.html">RFC 822</a> (ARPA Internet Text Messages)
-
-
-
- 1
-
-
-
-
-
-CLEANUP(8) CLEANUP(8)
-
-
<b>DIAGNOSTICS</b>
Problems and transactions are logged to <b>syslogd</b>(8).
<b>sender</b><i>_</i><b>canonical</b><i>_</i><b>maps</b>
Address mapping lookup table for envelope and
-
-
-
- 2
-
-
-
-
-
-CLEANUP(8) CLEANUP(8)
-
-
header sender addresses.
<b>masquerade</b><i>_</i><b>domains</b>
P.O. Box 704
Yorktown Heights, NY 10598, USA
-
-
-
-
-
-
-
-
-
- 3
-
+ 1
</pre> </body> </html>
<html> <head> </head> <body> <pre>
-
-
ERROR(8) ERROR(8)
-
<b>NAME</b>
error - Postfix error mailer
mail to the postmaster with with the headers of the
bounced mail.
-
-
-
- 1
-
-
-
-
-
-ERROR(8) ERROR(8)
-
-
<b>SEE</b> <b>ALSO</b>
<a href="bounce.8.html">bounce(8)</a> non-delivery status reports
<a href="master.8.html">master(8)</a> process manager
P.O. Box 704
Yorktown Heights, NY 10598, USA
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 2
-
+ 1
</pre> </body> </html>
<li><a href="#moby-linux">Running hundreds of Postfix processes on Linux</a>
+<li><a href="#moby-sun">Running hundreds of Postfix processes on Solaris</a>
+
+<li><a href="#moby-postfix">Running thousands of Postfix delivery agents</a>
+
</ul>
<ul>
+<li><a href="#uucp-tcp">Using UUCP over TCP</a>
+
<li><a href="#internet-uucp">Setting up an Internet to UUCP gateway</a>
<li><a href="#uucp-only">Using UUCP as the default transport</a>
<hr>
+<a name="moby-sun"><h3>Running hundreds of Postfix processes on Solaris</h3></a>
+
+In order to run hundreds of processes you may have to adjust the
+per-process open file limit. According to the <a
+href="http://www.wins.uva.nl/pub/solaris/solaris2.html#q3.45">Solaris
+FAQ</a>, add the following lines to /etc/system on Solaris 2.4 and later:
+
+<p>
+<blockquote>
+<pre>
+* set hard limit on file descriptors
+set rlim_fd_max = 4096
+* set soft limit on file descriptors
+set rlim_fd_cur = 2048
+</pre>
+</blockquote>
+
+<hr>
+
+<a name="moby-postfix"><h3>Running thousands of Postfix delivery agents</h3></a>
+
+In order to run Postfix with more than a thousand delivery agents you
+need to recompile the software with an appropriate value of the
+<b>FD_SETSIZE</b> constant.
+
+<p>
+<blockquote>
+<pre>
+% make tidy
+% make makefiles "CCARGS=-DFD_SETSIZE=2048"
+% make
+</pre>
+</blockquote>
+
+<hr>
+
<a name="incoming"><h3>Mail stays queued in the incoming queue</h3></a>
<blockquote>
Answer: I hope we all agree that delivering a domain to a mailbox
is disgusting practice. Forwarding mail via SMTP or UUCP would be
a much better choice. Unfortunately, neither SMTP nor UUCP are a
-usable alternative for legions of windows users.
+usable alternative for legions of windows users. However, if this
+is an option for you see the <a href="#uucp-tcp">UUCP over TCP</a>
+guide below.
<p>
<hr>
+<a name="uucp-tcp"><h3>Using UUCP over TCP</h3>
+
+This subject comes up whenever someone asks about a "domain in
+a mailbox" solution. For first-hand information, see the guides
+listed below.
+
+<ul>
+
+<li>Jim Seymour's guide for using <a
+href="http://jimsun.LinxNet.com/jdp/uucp_over_tcp/index.html"> UUCP
+over TCP</a>.
+
+<p>
+
+<li>Craig Sanders's guide for using <a
+href="http://taz.net.au/postfix/uucp/"> SSL-encrypted UUCP over
+tcp using stunnel</a>.
+
+</ul>
+
+<hr>
+
<a name="internet-uucp"><h3>Setting up an Internet to UUCP gateway</h3> </a>
Here is how to set up a machine that sits on the Internet and that
Here is how to relay all your mail over a UUCP link. See the <a
href="#internet-uucp">Internet to UUCP</a> FAQ entry for setting
-up a machine that gateways between UUCP and SMTP.
+up a machine that gateways between UUCP and SMTP.
<p>
<html> <head> </head> <body> <pre>
-
-
FLUSH(8) FLUSH(8)
-
<b>NAME</b>
flush - Postfix fast flush server
simulating send requests (see above) for the corre-
sponding destinations.
-
-
- 1
-
-
-
-
-
-FLUSH(8) FLUSH(8)
-
-
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.
<b>FILES</b>
/var/spool/postfix/flush, location of "fast flush" logfiles.
-
-
-
- 2
-
-
-
-
-
-FLUSH(8) FLUSH(8)
-
-
<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
P.O. Box 704
Yorktown Heights, NY 10598, USA
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 3
-
+ 1
</pre> </body> </html>
<html> <head> </head> <body> <pre>
-
-
LMTP(8) LMTP(8)
-
<b>NAME</b>
lmtp - Postfix local delivery via LMTP
<b>STANDARDS</b>
<a href="http://www.faqs.org/rfcs/rfc821.html">RFC 821</a> (SMTP protocol)
<a href="http://www.faqs.org/rfcs/rfc1651.html">RFC 1651</a> (SMTP service extensions)
-
-
-
- 1
-
-
-
-
-
-LMTP(8) LMTP(8)
-
-
<a href="http://www.faqs.org/rfcs/rfc1870.html">RFC 1870</a> (Message Size Declaration)
<a href="http://www.faqs.org/rfcs/rfc2033.html">RFC 2033</a> (LMTP protocol)
<a href="http://www.faqs.org/rfcs/rfc2197.html">RFC 2197</a> (Pipelining)
<b>Authentication</b> <b>controls</b>
<b>lmtp</b><i>_</i><b>enable</b><i>_</i><b>sasl</b><i>_</i><b>auth</b>
Enable per-session authentication as per <a href="http://www.faqs.org/rfcs/rfc2554.html">RFC 2554</a>
-
-
-
- 2
-
-
-
-
-
-LMTP(8) LMTP(8)
-
-
(SASL). By default, Postfix is built without SASL
support.
<i>transport_</i><b>destination</b><i>_</i><b>concurrency</b><i>_</i><b>limit</b>
Limit the number of parallel deliveries to the same
-
-
-
- 3
-
-
-
-
-
-LMTP(8) LMTP(8)
-
-
destination via this mail delivery transport.
<i>transport</i> is the name of the service as specified
in the <b>master.cf</b> file. The default limit is taken
Timeout for sending the <b>DATA</b> command, and for
receiving the server response.
-
-
-
- 4
-
-
-
-
-
-LMTP(8) LMTP(8)
-
-
<b>lmtp</b><i>_</i><b>data</b><i>_</i><b>xfer</b><i>_</i><b>timeout</b>
Timeout for sending the message content.
P.O. Box 830688, MC34
Richardson, TX 75083, USA
-
-
-
-
-
-
-
-
-
-
- 5
-
+ 1
</pre> </body> </html>
<html> <head> </head> <body> <pre>
-
-
LOCAL(8) LOCAL(8)
-
<b>NAME</b>
local - Postfix local mail delivery
When an address is found in its own alias expansion,
delivery is made to the user instead. When a user is
listed in the user's own ~/.<b>forward</b> file, delivery is made
-
-
-
- 1
-
-
-
-
-
-LOCAL(8) LOCAL(8)
-
-
to the user's mailbox instead. An empty ~/.<b>forward</b> file
means do not forward mail.
In the case of UNIX-style mailbox delivery, the <b>local</b> dae-
mon prepends a "<b>From</b> <i>sender</i> <i>time_stamp</i>" envelope header to
-
-
-
- 2
-
-
-
-
-
-LOCAL(8) LOCAL(8)
-
-
each message, prepends an optional <b>Delivered-To:</b> header
with the envelope recipient address, prepends a <b>Return-</b>
<b>Path:</b> header with the envelope sender address, prepends a
<b>LOCAL</b> The entire recipient address localpart (text to the
left of the rightmost @ character).
-
-
- 3
-
-
-
-
-
-LOCAL(8) LOCAL(8)
-
-
<b>RECIPIENT</b>
The entire recipient address.
<b>DELIVERY</b> <b>RIGHTS</b>
Deliveries to external files and external commands are
-
-
-
- 4
-
-
-
-
-
-LOCAL(8) LOCAL(8)
-
-
made with the rights of the receiving user on whose behalf
the delivery is made. In the absence of a user context,
the <b>local</b> daemon uses the owner rights of the <b>:include:</b>
List of names of environment parameters that can be
exported to non-Postfix processes.
-
-
-
-
- 5
-
-
-
-
-
-LOCAL(8) LOCAL(8)
-
-
<b>forward</b><i>_</i><b>path</b>
Search list for .forward files. The names are sub-
ject to <i>$name</i> expansion.
External command to use for mailbox delivery. The
command executes with the recipient privileges
(exception: root). The string is subject to $name
-
-
-
- 6
-
-
-
-
-
-LOCAL(8) LOCAL(8)
-
-
expansions.
<b>mailbox</b><i>_</i><b>transport</b>
that is written to upon delivery). Set to zero to
disable the limit.
-
-
- 7
-
-
-
-
-
-LOCAL(8) LOCAL(8)
-
-
<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
P.O. Box 704
Yorktown Heights, NY 10598, USA
-
-
-
-
-
-
-
-
- 8
-
+ 1
</pre> </body> </html>
<html> <head> </head> <body> <pre>
-
-
MASTER(8) MASTER(8)
-
<b>NAME</b>
master - Postfix master process
Signals:
<b>SIGHUP</b> Upon receipt of a <b>HUP</b> signal (e.g., after <b>postfix</b>
-
-
-
- 1
-
-
-
-
-
-MASTER(8) MASTER(8)
-
-
<b>reload</b>), the master process re-reads its configura-
tion files. If a service has been removed from the
<b>master.cf</b> file, its running processes are termi-
<b>daemon</b><i>_</i><b>directory</b>
Directory with Postfix daemon programs.
-
-
-
-
- 2
-
-
-
-
-
-MASTER(8) MASTER(8)
-
-
<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
P.O. Box 704
Yorktown Heights, NY 10598, USA
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 3
-
+ 1
</pre> </body> </html>
<html> <head> </head> <body> <pre>
-
-
NQMGR(8) NQMGR(8)
-
<b>NAME</b>
nqmgr - Postfix queue manager
<a href="bounce.8.html"><b>bounce</b>(8)</a> daemon.
<b>defer</b> Per-recipient status information about why mail is
-
-
-
- 1
-
-
-
-
-
-NQMGR(8) NQMGR(8)
-
-
delayed. These files are maintained by the
<a href="defer.8.html"><b>defer</b>(8)</a> daemon.
of trigger events, or it waits for a timer to go off. A
trigger is a one-byte message. Depending on the message
received, the queue manager performs one of the following
-
-
-
- 2
-
-
-
-
-
-NQMGR(8) NQMGR(8)
-
-
actions (the message is followed by the symbolic constant
used internally by the software):
the postmaster is notified of bounces and of other trou-
ble.
-
-
- 3
-
-
-
-
-
-NQMGR(8) NQMGR(8)
-
-
<b>BUGS</b>
A single queue manager process has to compete for disk
access with multiple front-end processes such as <b>smtpd</b>. A
in-memory recipients that the preempting messages
can have.
-
-
-
-
- 4
-
-
-
-
-
-NQMGR(8) NQMGR(8)
-
-
<i>transport_</i><b>extra</b><i>_</i><b>recipient</b><i>_</i><b>limit</b>
Limit on the number of in-memory recipients which
all preempting messages delivered by the transport
Limit on the number of recipients per message
transfer, for the named message <i>transport</i>.
-
-
-
-
- 5
-
-
-
-
-
-NQMGR(8) NQMGR(8)
-
-
<b>Message</b> <b>scheduling</b>
<i>transport_</i><b>delivery</b><i>_</i><b>slot</b><i>_</i><b>cost</b> (valid range: 0,2,3...)
This parameter basically controls how often a mes-
<b>LICENSE</b>
The Secure Mailer license must be distributed with this
-
-
-
- 6
-
-
-
-
-
-NQMGR(8) NQMGR(8)
-
-
software.
<b>AUTHOR(S)</b>
Modra 6
155 00, Prague, Czech Republic
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 7
-
+ 1
</pre> </body> </html>
<html> <head> </head> <body> <pre>
-
-
PCRE_TABLE(5) PCRE_TABLE(5)
-
<b>NAME</b>
pcre_table - format of Postfix PCRE tables
table, until a pattern is found that matches the search
string.
-
-
-
- 1
-
-
-
-
-
-PCRE_TABLE(5) PCRE_TABLE(5)
-
-
Substitution of substrings from the matched expression
into the result string is possible using the conventional
perl syntax ($1, $2, etc.). The macros in the result
P.O. Box 704
Yorktown Heights, NY 10598, USA
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 2
-
+ 1
</pre> </body> </html>
<html> <head> </head> <body> <pre>
-
-
PICKUP(8) PICKUP(8)
-
<b>NAME</b>
pickup - Postfix local mail pickup
Address to send a copy of each message that enters
the system.
-
-
- 1
-
-
-
-
-
-PICKUP(8) PICKUP(8)
-
-
<b>mail</b><i>_</i><b>owner</b>
The process privileges used while not opening a
<b>maildrop</b> file.
P.O. Box 704
Yorktown Heights, NY 10598, USA
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 2
-
+ 1
</pre> </body> </html>
<html> <head> </head> <body> <pre>
-
-
PIPE(8) PIPE(8)
-
<b>NAME</b>
pipe - Postfix delivery to external command
program expects to be run from the <a href="master.8.html"><b>master</b>(8)</a> process man-
ager.
- The <b>pipe</b> daemon updates queue files and marks recipients
+ Message attributes such as sender address, recipient
+ address and next-hop host name can be specified as com-
+ mand-line macros that are expanded before the external
+ command is executed.
+
+ The <b>pipe</b> 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 <a href="bounce.8.html"><b>bounce</b>(8)</a> or <a href="defer.8.html"><b>defer</b>(8)</a> daemon as
+ should be tried again at a later time. Delivery problem
+ reports are sent to the <a href="bounce.8.html"><b>bounce</b>(8)</a> or <a href="defer.8.html"><b>defer</b>(8)</a> daemon as
appropriate.
<b>SINGLE-RECIPIENT</b> <b>DELIVERY</b>
Some external commands cannot handle more than one recipi-
- ent per delivery request. Examples of such transports are
+ ent per delivery request. Examples of such transports are
pagers, fax machines, and so on.
- To prevent Postfix from sending multiple recipients per
+ To prevent Postfix from sending multiple recipients per
delivery request, specify
<i>transport_</i><b>destination</b><i>_</i><b>recipient</b><i>_</i><b>limit</b> <b>=</b> <b>1</b>
- in the Postfix <b>main.cf</b> file, where <i>transport</i> is the name
+ in the Postfix <b>main.cf</b> file, where <i>transport</i> is the name
in the first column of the Postfix <b>master.cf</b> entry for the
pipe-based delivery transport.
file at the end of a service definition. The syntax is as
follows:
- <b>flags=BFR.</b>> (optional)
- Optional message processing flags. By default, a
+ <b>flags=BFRhqu.</b>> (optional)
+ Optional message processing flags. By default, a
message is copied unchanged.
- <b>B</b> Append a blank line at the end of each mes-
- sage. This is required by some mail user
- agents that recognize "<b>From</b> " lines only
+ <b>B</b> Append a blank line at the end of each mes-
+ sage. This is required by some mail user
+ agents that recognize "<b>From</b> " lines only
when preceded by a blank line.
- <b>F</b> Prepend a "<b>From</b> <i>sender</i> <i>time_stamp</i>" envelope
- header to the message content. This is
+ <b>F</b> Prepend a "<b>From</b> <i>sender</i> <i>time_stamp</i>" envelope
+ header to the message content. This is
expected by, for example, <b>UUCP</b> software.
- <b>R</b> Prepend a <b>Return-Path:</b> message header with
+ <b>R</b> Prepend a <b>Return-Path:</b> message header with
the envelope sender address.
- <b>.</b> Prepend <b>.</b> to lines starting with "<b>.</b>". This
-
-
-
- 1
-
-
-
-
-
-PIPE(8) PIPE(8)
-
-
+ <b>h</b> Fold the command-line <b>$recipient</b> domain name
+ and <b>$nexthop</b> host name to lower case. This
+ is recommended for delivery via <b>UUCP</b>.
+
+ <b>q</b> Quote white space and other special charac-
+ ters in the command-line <b>$sender</b> and <b>$recip-</b>
+ <b>ient</b> address localparts (text to the left of
+ the right-most <b>@</b> character), according to an
+ 8-bit transparent version of <a href="http://www.faqs.org/rfcs/rfc822.html">RFC 822</a>. This
+ is recommended for delivery via <b>UUCP</b> or
+ <b>BSMTP</b>.
+
+ The result is compatible with the address
+ parsing of command-line recipients by the
+ Postfix <b>sendmail</b> mail submission command.
+
+ The <b>q</b> flag affects only entire addresses,
+ not the partial address information from the
+ <b>$user</b>, <b>extension</b> or <b>mailbox</b> command-line
+ macros.
+
+ <b>u</b> Fold the command-line <b>$recipient</b> address
+ localpart (text to the left of the right-
+ most <b>@</b> character) to lower case. This is
+ recommended for delivery via <b>UUCP</b>.
+
+ <b>.</b> Prepend <b>.</b> to lines starting with "<b>.</b>". This
is needed by, for example, <b>BSMTP</b> software.
- > Prepend > to lines starting with "<b>From</b> ".
+ > Prepend > to lines starting with "<b>From</b> ".
This is expected by, for example, <b>UUCP</b> soft-
ware.
<b>user</b>=<i>username</i>:<i>groupname</i>
The external command is executed with the rights of
- the specified <i>username</i>. The software refuses to
- execute commands with root privileges, or with the
- privileges of the mail system owner. If <i>groupname</i>
- is specified, the corresponding group ID is used
+ the specified <i>username</i>. The software refuses to
+ execute commands with root privileges, or with the
+ privileges of the mail system owner. If <i>groupname</i>
+ is specified, the corresponding group ID is used
instead of the group ID of <i>username</i>.
<b>eol=string</b> (default: <b>\n</b>)
- The output record delimiter. Typically one would
- use either <b>\r\n</b> or <b>\n</b>. The usual C-style backslash
- escape sequences are recognized: <b>\a</b> <b>\b</b> <b>\f</b> <b>\n</b> <b>\r</b> <b>\t</b>
+ The output record delimiter. Typically one would
+ use either <b>\r\n</b> or <b>\n</b>. The usual C-style backslash
+ escape sequences are recognized: <b>\a</b> <b>\b</b> <b>\f</b> <b>\n</b> <b>\r</b> <b>\t</b>
<b>\v</b> <b>\</b><i>octal</i> and <b>\\</b>.
<b>size</b>=<i>size_limit</i> (optional)
will be bounced back to the sender.
<b>argv</b>=<i>command</i>... (required)
- The command to be executed. This must be specified
+ The command to be executed. This must be specified
as the last command attribute. The command is exe-
cuted directly, i.e. without interpretation of
- shell meta characters by a shell command inter-
+ shell meta characters by a shell command inter-
preter.
In the command argument vector, the following
macros are recognized and replaced with correspond-
- ing information from the Postfix queue manager
+ ing information from the Postfix queue manager
delivery request:
<b>${extension</b>}
- This macro expands to the extension part of
- a recipient address. For example, with an
+ This macro expands to the extension part of
+ a recipient address. For example, with an
address <i>user+foo@domain</i> the extension is
<i>foo</i>.
- A command-line argument that contains
- <b>${extension</b>} expands into as many command-
+ A command-line argument that contains
+ <b>${extension</b>} expands into as many command-
line arguments as there are recipients.
+ This information is modified by the <b>u</b> flag
+ for case folding.
+
<b>${mailbox</b>}
This macro expands to the complete local
part of a recipient address. For example,
with an address <i>user+foo@domain</i> the mailbox
is <i>user+foo</i>.
-
-
-
- 2
-
-
-
-
-
-PIPE(8) PIPE(8)
-
-
A command-line argument that contains
<b>${mailbox</b>} expands into as many command-line
arguments as there are recipients.
+ This information is modified by the <b>u</b> flag
+ for case folding.
+
<b>${nexthop</b>}
This macro expands to the next-hop hostname.
+ This information is modified by the <b>h</b> flag
+ for case folding.
+
<b>${recipient</b>}
This macro expands to the complete recipient
address.
<b>${recipient</b>} expands into as many command-
line arguments as there are recipients.
+ This information is modified by the <b>hqu</b>
+ flags for quoting and case folding.
+
<b>${sender</b>}
- This macro expands to the envelope sender
+ This macro expands to the envelope sender
address.
+ This information is modified by the <b>q</b> flag
+ for quoting.
+
<b>${size</b>}
This macro expands to Postfix's idea of the
message size, which is an approximation of
<b>${user</b>} expands into as many command-line
arguments as there are recipients.
- In addition to the form ${<i>name</i>}, the forms $<i>name</i> and
- $(<i>name</i>) are also recognized. Specify <b>$$</b> where a single <b>$</b>
+ This information is modified by the <b>u</b> flag
+ for case folding.
+
+ In addition to the form ${<i>name</i>}, the forms $<i>name</i> and
+ $(<i>name</i>) are also recognized. Specify <b>$$</b> where a single <b>$</b>
is wanted.
<b>DIAGNOSTICS</b>
- Command exit status codes are expected to follow the con-
+ Command exit status codes are expected to follow the con-
ventions defined in <<b>sysexits.h</b>>.
- Problems and transactions are logged to <b>syslogd</b>(8). Cor-
- rupted message files are marked so that the queue manager
+ Problems and transactions are logged to <b>syslogd</b>(8). Cor-
+ rupted message files are marked so that the queue manager
can move them to the <b>corrupt</b> queue for further inspection.
<b>SECURITY</b>
- This program needs a dual personality 1) to access the
- private Postfix queue and IPC mechanisms, and 2) to exe-
+ This program needs a dual personality 1) to access the
+ private Postfix queue and IPC mechanisms, and 2) to exe-
cute external commands as the specified user. It is there-
fore security sensitive.
<b>CONFIGURATION</b> <b>PARAMETERS</b>
- The following <b>main.cf</b> parameters are especially relevant
-
-
-
- 3
-
-
-
-
-
-PIPE(8) PIPE(8)
-
-
- to this program. 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 program. 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>Miscellaneous</b>
exported to non-Postfix processes.
<b>mail</b><i>_</i><b>owner</b>
- The process privileges used while not running an
+ The process privileges used while not running an
external command.
<b>Resource</b> <b>controls</b>
- In the text below, <i>transport</i> is the first field in a <b>mas-</b>
+ In the text below, <i>transport</i> is the first field in a <b>mas-</b>
<b>ter.cf</b> entry.
<i>transport_</i><b>destination</b><i>_</i><b>concurrency</b><i>_</i><b>limit</b>
Limit the number of parallel deliveries to the same
- destination, for delivery via the named <i>transport</i>.
- The default limit is taken from the <b>default</b><i>_</i><b>desti-</b>
- <b>nation</b><i>_</i><b>concurrency</b><i>_</i><b>limit</b> parameter. The limit is
+ destination, for delivery via the named <i>transport</i>.
+ The default limit is taken from the <b>default</b><i>_</i><b>desti-</b>
+ <b>nation</b><i>_</i><b>concurrency</b><i>_</i><b>limit</b> parameter. The limit is
enforced by the Postfix queue manager.
<i>transport_</i><b>destination</b><i>_</i><b>recipient</b><i>_</i><b>limit</b>
- Limit the number of recipients per message deliv-
- ery, for delivery via the named <i>transport</i>. The
- default limit is taken from the <b>default</b><i>_</i><b>destina-</b>
- <b>tion</b><i>_</i><b>recipient</b><i>_</i><b>limit</b> parameter. The limit is
+ Limit the number of recipients per message deliv-
+ ery, for delivery via the named <i>transport</i>. The
+ default limit is taken from the <b>default</b><i>_</i><b>destina-</b>
+ <b>tion</b><i>_</i><b>recipient</b><i>_</i><b>limit</b> parameter. The limit is
enforced by the Postfix queue manager.
<i>transport_</i><b>time</b><i>_</i><b>limit</b>
- Limit the time for delivery to external command,
- for delivery via the named <b>transport</b>. The default
- limit is taken from the <b>command</b><i>_</i><b>time</b><i>_</i><b>limit</b> parame-
- ter. The limit is enforced by the Postfix queue
+ Limit the time for delivery to external command,
+ for delivery via the named <b>transport</b>. The default
+ limit is taken from the <b>command</b><i>_</i><b>time</b><i>_</i><b>limit</b> parame-
+ ter. The limit is enforced by the Postfix queue
manager.
<b>SEE</b> <b>ALSO</b>
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>
P.O. Box 704
Yorktown Heights, NY 10598, USA
-
-
-
- 4
-
+ 1
</pre> </body> </html>
<html> <head> </head> <body> <pre>
-
-
POSTALIAS(1) POSTALIAS(1)
-
<b>NAME</b>
postalias - Postfix alias database maintenance
The exit status is zero when the requested informa-
tion was found.
-
-
- 1
-
-
-
-
-
-POSTALIAS(1) POSTALIAS(1)
-
-
If a key value of <b>-</b> is specified, the program reads
key values from the standard input stream and
prints one line of <i>key:</i> <i>value</i> output for each key
nates with non-zero exit status in case of failure.
<b>BUGS</b>
- The "delete key" support is limited to one delete
-
-
-
- 2
-
-
-
-
-
-POSTALIAS(1) POSTALIAS(1)
-
-
- operation per command invocation.
+ The "delete key" support is limited to one delete opera-
+ tion per command invocation.
<b>ENVIRONMENT</b>
<b>MAIL</b><i>_</i><b>CONFIG</b>
P.O. Box 704
Yorktown Heights, NY 10598, USA
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 3
-
+ 1
</pre> </body> </html>
<html> <head> </head> <body> <pre>
-
-
POSTCAT(1) POSTCAT(1)
-
<b>NAME</b>
postcat - show Postfix queue file contents
P.O. Box 704
Yorktown Heights, NY 10598, USA
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
1
-
</pre> </body> </html>
<html> <head> </head> <body> <pre>
-
-
POSTCONF(1) POSTCONF(1)
-
<b>NAME</b>
postconf - Postfix configuration utility
<b>AUTHOR(S)</b>
Wietse Venema
IBM T.J. Watson Research
-
-
-
- 1
-
-
-
-
-
-POSTCONF(1) POSTCONF(1)
-
-
P.O. Box 704
Yorktown Heights, NY 10598, USA
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 2
-
+ 1
</pre> </body> </html>
<html> <head> </head> <body> <pre>
-
-
POSTDROP(1) POSTDROP(1)
-
<b>NAME</b>
postdrop - Postfix mail posting agent
<b>queue</b><i>_</i><b>directory</b>
Top-level directory of the Postfix queue. This is
-
-
-
- 1
-
-
-
-
-
-POSTDROP(1) POSTDROP(1)
-
-
also the root directory of Postfix daemons that run
chrooted.
P.O. Box 704
Yorktown Heights, NY 10598, USA
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 2
-
+ 1
</pre> </body> </html>
<html> <head> </head> <body> <pre>
-
-
POSTFIX(1) POSTFIX(1)
-
<b>NAME</b>
postfix - Postfix control program
<b>-D</b> (with <b>postfix</b> <b>start</b> only)
Run each Postfix daemon under control of a debugger
as specified via the <b>debugger</b><i>_</i><b>command</b> configuration
-
-
-
- 1
-
-
-
-
-
-POSTFIX(1) POSTFIX(1)
-
-
parameter.
<b>-v</b> Enable verbose logging for debugging purposes. Mul-
The Secure Mailer license must be distributed with this
software.
-
-
- 2
-
-
-
-
-
-POSTFIX(1) POSTFIX(1)
-
-
<b>AUTHOR(S)</b>
Wietse Venema
IBM T.J. Watson Research
P.O. Box 704
Yorktown Heights, NY 10598, USA
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 3
-
+ 1
</pre> </body> </html>
<html> <head> </head> <body> <pre>
-
-
POSTKICK(1) POSTKICK(1)
-
<b>NAME</b>
postkick - kick a Postfix service
to this program. See the Postfix <b>main.cf</b> file for syntax
details and for default values.
-
-
-
-
- 1
-
-
-
-
-
-POSTKICK(1) POSTKICK(1)
-
-
<b>queue</b><i>_</i><b>directory</b>
Location of the Postfix queue, and of the local IPC
communication endpoints.
P.O. Box 704
Yorktown Heights, NY 10598, USA
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 2
-
+ 1
</pre> </body> </html>
<html> <head> </head> <body> <pre>
-
-
POSTLOCK(1) POSTLOCK(1)
-
<b>NAME</b>
postlock - lock mail folder and execute command
<b>MAIL</b><i>_</i><b>CONFIG</b>
Directory with Postfix configuration files.
-
-
-
-
- 1
-
-
-
-
-
-POSTLOCK(1) POSTLOCK(1)
-
-
<b>MAIL</b><i>_</i><b>VERBOSE</b>
Enable verbose logging for debugging purposes.
P.O. Box 704
Yorktown Heights, NY 10598, USA
-
-
-
-
-
-
-
-
-
-
-
-
- 2
-
+ 1
</pre> </body> </html>
<html> <head> </head> <body> <pre>
-
-
POSTLOG(1) POSTLOG(1)
-
<b>NAME</b>
postlog - Postfix-compatible logging utility
P.O. Box 704
Yorktown Heights, NY 10598, USA
-
-
-
1
-
</pre> </body> </html>
<html> <head> </head> <body> <pre>
-
-
POSTMAP(1) POSTMAP(1)
-
<b>NAME</b>
postmap - Postfix lookup table management
entry per map. The exit status is zero when the
requested information was found.
-
-
-
- 1
-
-
-
-
-
-POSTMAP(1) POSTMAP(1)
-
-
If a key value of <b>-</b> is specified, the program reads
key values from the standard input stream. The exit
status is zero when at least one of the requested
<i>file_name</i><b>.db</b>. This is available only on
systems with support for <b>db</b> databases.
-
-
-
- 2
-
-
-
-
-
-POSTMAP(1) POSTMAP(1)
-
-
When no <i>file_type</i> is specified, the software uses
the database type specified via the <b>database</b><i>_</i><b>type</b>
configuration parameter.
P.O. Box 704
Yorktown Heights, NY 10598, USA
-
-
-
-
-
-
-
-
-
-
-
-
-
- 3
-
+ 1
</pre> </body> </html>
<html> <head> </head> <body> <pre>
-
-
POSTSUPER(1) POSTSUPER(1)
-
<b>NAME</b>
postsuper - Postfix superintendent
of the old message that it should have
deleted.
-
-
-
- 1
-
-
-
-
-
-POSTSUPER(1) POSTSUPER(1)
-
-
<b>-p</b> Purge old temporary files that are left over after
system or software crashes.
<b>syslogd</b>.
<b>postsuper</b> reports the number of messages deleted with <b>-d</b>,
-
-
-
- 2
-
-
-
-
-
-POSTSUPER(1) POSTSUPER(1)
-
-
the number of messages requeued with <b>-r</b>, and the number of
messages whose queue file name was fixed with <b>-s</b>. The
report is written to the standard error stream and to <b>sys-</b>
P.O. Box 704
Yorktown Heights, NY 10598, USA
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 3
-
+ 1
</pre> </body> </html>
<html> <head> </head> <body> <pre>
-
-
QMGR(8) QMGR(8)
-
<b>NAME</b>
qmgr - Postfix queue manager
<a href="bounce.8.html"><b>bounce</b>(8)</a> daemon.
<b>defer</b> Per-recipient status information about why mail is
-
-
-
- 1
-
-
-
-
-
-QMGR(8) QMGR(8)
-
-
delayed. These files are maintained by the
<a href="defer.8.html"><b>defer</b>(8)</a> daemon.
<b>D</b> <b>(QMGR</b><i>_</i><b>REQ</b><i>_</i><b>SCAN</b><i>_</i><b>DEFERRED)</b>
Start a deferred queue scan. If a deferred queue
scan is already in progress, that scan will be
-
-
-
- 2
-
-
-
-
-
-QMGR(8) QMGR(8)
-
-
restarted as soon as it finishes.
<b>I</b> <b>(QMGR</b><i>_</i><b>REQ</b><i>_</i><b>SCAN</b><i>_</i><b>INCOMING)</b>
sudden burst of inbound mail can negatively impact out-
bound delivery rates.
-
-
-
- 3
-
-
-
-
-
-QMGR(8) QMGR(8)
-
-
<b>CONFIGURATION</b> <b>PARAMETERS</b>
The following <b>main.cf</b> parameters are especially relevant
to this program. See the Postfix <b>main.cf</b> file for syntax
Time in seconds between attempts to contact a bro-
ken delivery transport.
-
-
-
-
- 4
-
-
-
-
-
-QMGR(8) QMGR(8)
-
-
<b>Concurrency</b> <b>controls</b>
In the text below, <i>transport</i> is the first field in a <b>mas-</b>
<b>ter.cf</b> entry.
Limit on the number of recipients per message
transfer, for the named message <i>transport</i>.
-
-
-
- 5
-
-
-
-
-
-QMGR(8) QMGR(8)
-
-
<b>SEE</b> <b>ALSO</b>
<a href="master.8.html">master(8)</a>, process manager
<a href="relocated.5.html">relocated(5)</a>, format of the "user has moved" table
P.O. Box 704
Yorktown Heights, NY 10598, USA
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 6
-
+ 1
</pre> </body> </html>
<html> <head> </head> <body> <pre>
-
-
REGEXP_TABLE(5) REGEXP_TABLE(5)
-
<b>NAME</b>
regexp_table - format of Postfix regular expression tables
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
-
-
-
- 1
-
-
-
-
-
-REGEXP_TABLE(5) REGEXP_TABLE(5)
-
-
table, until a pattern is found that matches the search
string.
P.O. Box 704
Yorktown Heights, NY 10598, USA
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 2
-
+ 1
</pre> </body> </html>
<html> <head> </head> <body> <pre>
-
-
RELOCATED(5) RELOCATED(5)
-
<b>NAME</b>
relocated - format of Postfix relocated table
<i>user</i> Matches <i>user</i>@<i>site</i> when <i>site</i> is $<b>myorigin</b>, when <i>site</i>
is listed in $<b>mydestination</b>, or when <i>site</i> is listed
-
-
-
- 1
-
-
-
-
-
-RELOCATED(5) RELOCATED(5)
-
-
in $<b>inet</b><i>_</i><b>interfaces</b>.
@<i>domain</i>
List of domains that this mail system considers
local.
-
-
-
- 2
-
-
-
-
-
-RELOCATED(5) RELOCATED(5)
-
-
<b>myorigin</b>
The domain that is appended to locally-posted mail.
P.O. Box 704
Yorktown Heights, NY 10598, USA
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 3
-
+ 1
</pre> </body> </html>
<html> <head> </head> <body> <pre>
-
-
SENDMAIL(1) SENDMAIL(1)
-
<b>NAME</b>
sendmail - Postfix to Sendmail compatibility interface
These and other features can be selected by specifying the
appropriate combination of command-line options. Some fea-
- tures are controlled by parameters in the <b>main.cf</b>
-
-
-
- 1
-
-
-
-
-
-SENDMAIL(1) SENDMAIL(1)
-
-
- configuration file.
+ tures are controlled by parameters in the <b>main.cf</b> configu-
+ ration file.
The following options are recognized:
dard output. This mode of operation is implemented
by running the <a href="smtpd.8.html"><b>smtpd</b>(8)</a> daemon.
-
-
-
- 2
-
-
-
-
-
-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 interval between queue runs. Use the
<b>queue</b><i>_</i><b>run</b><i>_</i><b>delay</b> configuration parameter instead.
-
-
-
-
- 3
-
-
-
-
-
-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-
<b>alias</b><i>_</i><b>database</b>
Default alias database(s) for <b>newaliases</b>. The
-
-
-
- 4
-
-
-
-
-
-SENDMAIL(1) SENDMAIL(1)
-
-
default value for this parameter is system-spe-
cific.
Directory with Postfix support commands (default:
<b>$program</b><i>_</i><b>directory</b>).
-
-
-
- 5
-
-
-
-
-
-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>).
P.O. Box 704
Yorktown Heights, NY 10598, USA
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 6
-
+ 1
</pre> </body> </html>
<html> <head> </head> <body> <pre>
-
-
SHOWQ(8) SHOWQ(8)
-
<b>NAME</b>
showq - list the Postfix mail queue
P.O. Box 704
Yorktown Heights, NY 10598, USA
-
-
-
-
-
-
-
-
1
-
</pre> </body> </html>
<html> <head> </head> <body> <pre>
-
-
SMTP(8) SMTP(8)
-
<b>NAME</b>
smtp - Postfix remote delivery via SMTP
Depending on the setting of the <b>notify</b><i>_</i><b>classes</b> parameter,
the postmaster is notified of bounces, protocol problems,
-
-
-
- 1
-
-
-
-
-
-SMTP(8) SMTP(8)
-
-
and of other trouble.
<b>BUGS</b>
send mail to the postmaster with transcripts of
SMTP sessions with protocol errors.
-
-
- 2
-
-
-
-
-
-SMTP(8) SMTP(8)
-
-
<b>smtp</b><i>_</i><b>always</b><i>_</i><b>send</b><i>_</i><b>ehlo</b>
Always send EHLO at the start of a connection.
destination. 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.
-
-
- 3
-
-
-
-
-
-SMTP(8) SMTP(8)
-
-
<b>smtp</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
Timeout for sending the <b>QUIT</b> command, and for
receiving the server response.
-
-
-
-
- 4
-
-
-
-
-
-SMTP(8) SMTP(8)
-
-
<b>SEE</b> <b>ALSO</b>
<a href="bounce.8.html">bounce(8)</a> non-delivery status reports
<a href="master.8.html">master(8)</a> process manager
P.O. Box 704
Yorktown Heights, NY 10598, USA
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 5
-
+ 1
</pre> </body> </html>
<html> <head> </head> <body> <pre>
-
-
SMTPD(8) SMTPD(8)
-
<b>NAME</b>
smtpd - Postfix SMTP server
details and for default values. Use the <b>postfix</b> <b>reload</b>
command after a configuration change.
-
-
-
- 1
-
-
-
-
-
-SMTPD(8) SMTPD(8)
-
-
<b>Compatibility</b> <b>controls</b>
<b>strict</b><i>_</i><b>rfc821</b><i>_</i><b>envelopes</b>
Disallow non-<a href="http://www.faqs.org/rfcs/rfc821.html">RFC 821</a> style addresses in envelopes.
<b>command</b><i>_</i><b>directory</b>
Location of Postfix support commands (default:
-
-
-
- 2
-
-
-
-
-
-SMTPD(8) SMTPD(8)
-
-
<b>$program</b><i>_</i><b>directory</b>).
<b>debug</b><i>_</i><b>peer</b><i>_</i><b>level</b>
<b>soft</b><i>_</i><b>bounce</b>
Change hard (5xx) reject responses into soft (4xx)
reject responses. This can be useful for testing
-
-
-
- 3
-
-
-
-
-
-SMTPD(8) SMTPD(8)
-
-
purposes.
<b>Resource</b> <b>controls</b>
Restrict what sender addresses are allowed in <b>MAIL</b>
<b>FROM</b> commands.
-
-
-
-
- 4
-
-
-
-
-
-SMTPD(8) SMTPD(8)
-
-
<b>smtpd</b><i>_</i><b>recipient</b><i>_</i><b>restrictions</b>
Restrict what recipient addresses are allowed in
<b>RCPT</b> <b>TO</b> commands.
Server response when a client violates the
<b>reject</b><i>_</i><b>unknown</b><i>_</i><b>address</b> restriction.
-
-
-
-
- 5
-
-
-
-
-
-SMTPD(8) SMTPD(8)
-
-
<b>unknown</b><i>_</i><b>client</b><i>_</i><b>reject</b><i>_</i><b>code</b>
Server response when a client without address to
name mapping violates the <b>reject</b><i>_</i><b>unknown</b><i>_</i><b>clients</b>
P.O. Box 704
Yorktown Heights, NY 10598, USA
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 6
-
+ 1
</pre> </body> </html>
<html> <head> </head> <body> <pre>
-
-
SPAWN(8) SPAWN(8)
-
<b>NAME</b>
spawn - Postfix external command spawner
<b>SECURITY</b>
This program needs root privilege in order to execute
-
-
-
- 1
-
-
-
-
-
-SPAWN(8) SPAWN(8)
-
-
external commands as the specified user. It is therefore
security sensitive. However the <b>spawn</b> daemon does not
talk to the external command and thus is not vulnerable to
P.O. Box 704
Yorktown Heights, NY 10598, USA
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 2
-
+ 1
</pre> </body> </html>
<html> <head> </head> <body> <pre>
-
-
TRANSPORT(5) TRANSPORT(5)
-
<b>NAME</b>
transport - format of Postfix transport table
Mail for any subdomain of <i>domain</i> is delivered
through <i>transport</i> to <i>nexthop</i>.
-
-
- 1
-
-
-
-
-
-TRANSPORT(5) TRANSPORT(5)
-
-
Note: transport map entries take precedence over domains
specified in the <b>mydestination</b> parameter. If you use the
optional transport map, it may be safer to specify
used. Specify [] around the hostname in order to disable
MX lookups.
-
-
-
- 2
-
-
-
-
-
-TRANSPORT(5) TRANSPORT(5)
-
-
The error mailer can be used to bounce mail:
<b>.foo.org</b> <b>error:mail</b> <b>for</b> <b>*.foo.org</b> <b>is</b> <b>not</b> <b>deliv-</b>
The Secure Mailer license must be distributed with this
software.
-
-
- 3
-
-
-
-
-
-TRANSPORT(5) TRANSPORT(5)
-
-
<b>AUTHOR(S)</b>
Wietse Venema
IBM T.J. Watson Research
P.O. Box 704
Yorktown Heights, NY 10598, USA
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 4
-
+ 1
</pre> </body> </html>
<html> <head> </head> <body> <pre>
-
-
TRIVIAL-REWRITE(8) TRIVIAL-REWRITE(8)
-
<b>NAME</b>
trivial-rewrite - Postfix address rewriting and resolving
daemon
users. It can run at a fixed low privilege in a chrooted
environment.
-
-
-
- 1
-
-
-
-
-
-TRIVIAL-REWRITE(8) TRIVIAL-REWRITE(8)
-
-
<b>DIAGNOSTICS</b>
Problems and transactions are logged to <b>syslogd</b>(8).
Syntax is <i>transport</i>:<i>nexthop</i>; see <a href="transport.5.html"><b>transport</b>(5)</a> for
details. The :<i>nexthop</i> part is optional.
-
-
-
- 2
-
-
-
-
-
-TRIVIAL-REWRITE(8) TRIVIAL-REWRITE(8)
-
-
<b>relayhost</b>
The default host to send non-local mail to when no
entry is matched in the <a href="transport.5.html"><b>transport</b>(5)</a> table.
P.O. Box 704
Yorktown Heights, NY 10598, USA
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 3
-
+ 1
</pre> </body> </html>
<html> <head> </head> <body> <pre>
-
-
VIRTUAL(5) VIRTUAL(5)
-
<b>NAME</b>
virtual - format of Postfix virtual table
<i>user1@virtual.domain</i> <i>address1</i>
<i>user2@virtual.domain</i> <i>address2,</i> <i>address3</i>
- The <i>virtual.domain</i> <i>anything</i> entry is required for a
-
-
-
- 1
-
-
-
-
-
-VIRTUAL(5) VIRTUAL(5)
-
-
- Postfix-style virtual domain.
+ The <i>virtual.domain</i> <i>anything</i> entry is required for a Post-
+ fix-style virtual domain.
Do not list a Postfix-style virtual domain in the <b>main.cf</b>
<b>mydestination</b> configuration parameter. Such an entry is
with `#'.
leading whitespace
- Lines that begin with whitespace continue the
-
-
-
- 2
-
-
-
-
-
-VIRTUAL(5) VIRTUAL(5)
-
-
- previous line.
+ Lines that begin with whitespace continue the pre-
+ vious line.
<i>pattern</i> <i>result</i>
When <i>pattern</i> matches a mail address, replace it by
<i>foo</i>.
Patterns are applied in the order as specified in the
-
-
-
- 3
-
-
-
-
-
-VIRTUAL(5) VIRTUAL(5)
-
-
table, until a pattern is found that matches the search
string.
P.O. Box 704
Yorktown Heights, NY 10598, USA
-
-
-
-
-
- 4
-
+ 1
</pre> </body> </html>
<html> <head> </head> <body> <pre>
-
-
VIRTUAL(8) VIRTUAL(8)
-
<b>NAME</b>
virtual - Postfix virtual domain mail delivery agent
The <b>virtual</b> delivery agent daemon prepends a <b>Delivered-To:</b>
message header with the envelope recipient address and
-
-
-
- 1
-
-
-
-
-
-VIRTUAL(8) VIRTUAL(8)
-
-
prepends a <b>Return-Path:</b> message header with the envelope
sender address.
<b>virtual</b><i>_</i><b>mailbox</b><i>_</i><b>base</b>
Specifies a path that is prepended to all mailbox
or maildir paths. This is a safety measure to
-
-
-
- 2
-
-
-
-
-
-VIRTUAL(8) VIRTUAL(8)
-
-
ensure that an out of control map in <b>virtual</b><i>_</i><b>mail-</b>
<b>box</b><i>_</i><b>maps</b> doesn't litter the filesystem with mail-
boxes. While it could be set to "/", this setting
to acquire an exclusive lock on a UNIX-style mail-
box file. The actual delay is slightly randomized.
-
-
- 3
-
-
-
-
-
-VIRTUAL(8) VIRTUAL(8)
-
-
<b>stale</b><i>_</i><b>lock</b><i>_</i><b>time</b>
Limit the time after which a stale lockfile is
removed (applicable to UNIX-style mailboxes only).
Andrew McNamara
andrewm@connect.com.au
connect.com.au Pty. Ltd.
-
-
-
- 4
-
-
-
-
-
-VIRTUAL(8) VIRTUAL(8)
-
-
Level 3, 213 Miller St
North Sydney 2060, NSW, Australia
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 5
-
+ 1
</pre> </body> </html>
# See where GDBM's ndbm.h include file sits.
if [ -f /usr/include/gdbm-ndbm.h ]
then
- CCARGS="$CCARGS -DHAS_DBM -DPATH_NDBM_H=\\\"<gdbm-ndbm.h>\\\""
+ CCARGS="$CCARGS -DHAS_DBM -DPATH_NDBM_H='<gdbm-ndbm.h>'"
GDBM_LIBS=gdbm
elif [ -f /usr/include/gdbm/ndbm.h ]
then
- CCARGS="$CCARGS -DHAS_DBM -DPATH_NDBM_H=\\\"<gdbm/ndbm.h>\\\""
+ CCARGS="$CCARGS -DHAS_DBM -DPATH_NDBM_H='<gdbm/ndbm.h>'"
GDBM_LIBS=gdbm
fi
SYSLIBS="-ldb"
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
.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=BFR.>\fR (optional)"
+.IP "\fBflags=BFRhqu.>\fR (optional)"
Optional message processing flags. By default, a message is
copied unchanged.
.RS
.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, \fBextension\fR or
+\fBmailbox\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.
.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
.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.
.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
* Version of this program.
*/
#define VAR_MAIL_VERSION "mail_version"
-#define DEF_MAIL_VERSION "Snapshot-20010525"
+#define DEF_MAIL_VERSION "Snapshot-20010610"
extern char *var_mail_version;
/* LICENSE
*
* XXX 2821: Section 4.5.3.1 says that a 552 RCPT TO reply
* must be treated as if the server replied with 452.
+ * However, this causes "too much mail data" to be
+ * treated as a recoverable error, which is wrong. I'll
+ * stick with RFC 821.
*/
case LMTP_STATE_RCPT:
if (!mail_from_rejected) {
-#ifndef RFC821_SYNTAX
+#ifndef notRFC821_SYNTAX
if (resp->code == 552)
resp->code = 452;
#endif
pipe.o: ../../include/canon_addr.h
pipe.o: ../../include/split_addr.h
pipe.o: ../../include/off_cvt.h
+pipe.o: ../../include/quote_822_local.h
pipe.o: ../../include/mail_server.h
/* 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
/* fax machines, and so on.
/*
/* To prevent Postfix from sending multiple recipients per delivery
-/* request, specify
+/* request, specify
/*
/* .ti +4
-/* \fItransport\fB_destination_recipient_limit = 1\fR
+/* \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
/* .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=BFR.>\fR (optional)"
+/* .IP "\fBflags=BFRhqu.>\fR (optional)"
/* Optional message processing flags. By default, a message is
/* copied unchanged.
/* .RS
/* .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, \fBextension\fR or
+/* \fBmailbox\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.
/* .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
/* .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.
/* .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
#include <pwd.h>
#include <grp.h>
#include <fcntl.h>
+#include <ctype.h>
#ifdef STRCASECMP_IN_STRINGS_H
#include <strings.h>
#include <canon_addr.h>
#include <split_addr.h>
#include <off_cvt.h>
+#include <quote_822_local.h>
/* Single server skeleton. */
#define PIPE_FLAG_MAILBOX (1<<3)
#define PIPE_FLAG_SIZE (1<<4)
+ /*
+ * Additional flags. These are colocated with mail_copy() flags. Allow some
+ * space for extension of the mail_copy() interface.
+ */
+#define PIPE_OPT_FOLD_USER (1<<16)
+#define PIPE_OPT_FOLD_HOST (1<<17)
+#define PIPE_OPT_QUOTE_LOCAL (1<<18)
+
+#define PIPE_OPT_FOLD_FLAGS (PIPE_OPT_FOLD_USER | PIPE_OPT_FOLD_HOST)
+
/*
* Tunable parameters. Values are taken from the config file, after
* prepending the service name to _name, and so on.
off_t size_limit; /* max size in bytes we will accept */
} PIPE_ATTR;
+ /*
+ * Silly little macros.
+ */
+#define STR vstring_str
+
/* parse_callback - callback for mac_parse() */
static int parse_callback(int type, VSTRING *buf, char *context)
return (0);
}
+/* morph_recipient - morph a recipient address */
+
+static void morph_recipient(VSTRING *buf, const char *address, int flags)
+{
+ char *cp;
+
+ /*
+ * Quote the recipient address as appropriate.
+ */
+ if (flags & PIPE_OPT_QUOTE_LOCAL)
+ quote_822_local(buf, address);
+ else
+ vstring_strcpy(buf, address);
+
+ /*
+ * Fold the recipient address as appropriate.
+ */
+ switch (flags & PIPE_OPT_FOLD_FLAGS) {
+ case PIPE_OPT_FOLD_HOST:
+ if ((cp = strrchr(STR(buf), '@')) != 0)
+ lowercase(cp + 1);
+ break;
+ case PIPE_OPT_FOLD_USER:
+ if ((cp = strrchr(STR(buf), '@')) != 0) {
+ *cp = 0;
+ lowercase(STR(buf));
+ *cp = '@';
+ break;
+ }
+ case PIPE_OPT_FOLD_USER | PIPE_OPT_FOLD_HOST:
+ lowercase(STR(buf));
+ break;
+ }
+}
+
/* expand_argv - expand macros in the argument vector */
-static ARGV *expand_argv(char **argv, RECIPIENT_LIST *rcpt_list)
+static ARGV *expand_argv(char **argv, RECIPIENT_LIST *rcpt_list, int flags)
{
VSTRING *buf = vstring_alloc(100);
ARGV *result;
* would screw up mail addresses that contain $ characters.
*/
#define NO 0
-#define STR vstring_str
result = argv_alloc(1);
for (cpp = argv; *cpp; cpp++) {
* This argument contains $recipient.
*/
if (expand_flag & PIPE_FLAG_RCPT) {
- dict_update(PIPE_DICT_TABLE, PIPE_DICT_RCPT,
- rcpt_list->info[i].address);
+ morph_recipient(buf, rcpt_list->info[i].address, flags);
+ dict_update(PIPE_DICT_TABLE, PIPE_DICT_RCPT, STR(buf));
}
/*
* expansions of this specific command-line argument.
*/
if (expand_flag & PIPE_FLAG_USER) {
- vstring_strcpy(buf, rcpt_list->info[i].address);
+ morph_recipient(buf, rcpt_list->info[i].address,
+ flags & PIPE_OPT_FOLD_FLAGS);
if (split_at_right(STR(buf), '@') == 0)
msg_warn("no @ in recipient address: %s",
rcpt_list->info[i].address);
split_addr(STR(buf), *var_rcpt_delim);
if (*STR(buf) == 0)
continue;
- lowercase(STR(buf));
dict_update(PIPE_DICT_TABLE, PIPE_DICT_USER, STR(buf));
}
* delimiter and the rightmost @. The extension may be blank.
*/
if (expand_flag & PIPE_FLAG_EXTENSION) {
- vstring_strcpy(buf, rcpt_list->info[i].address);
+ morph_recipient(buf, rcpt_list->info[i].address,
+ flags & PIPE_OPT_FOLD_FLAGS);
if (split_at_right(STR(buf), '@') == 0)
msg_warn("no @ in recipient address: %s",
rcpt_list->info[i].address);
if (*var_rcpt_delim == 0
|| (ext = split_addr(STR(buf), *var_rcpt_delim)) == 0)
ext = ""; /* insert null arg */
- else
- lowercase(ext);
dict_update(PIPE_DICT_TABLE, PIPE_DICT_EXTENSION, ext);
}
* anything to the left of the rightmost @.
*/
if (expand_flag & PIPE_FLAG_MAILBOX) {
- vstring_strcpy(buf, rcpt_list->info[i].address);
+ morph_recipient(buf, rcpt_list->info[i].address,
+ flags & PIPE_OPT_FOLD_FLAGS);
if (split_at_right(STR(buf), '@') == 0)
msg_warn("no @ in recipient address: %s",
rcpt_list->info[i].address);
- lowercase(STR(buf));
dict_update(PIPE_DICT_TABLE, PIPE_DICT_MAILBOX, STR(buf));
}
case 'R':
attr->flags |= MAIL_COPY_RETURN_PATH;
break;
+ case 'h':
+ attr->flags |= PIPE_OPT_FOLD_HOST;
+ break;
+ case 'q':
+ attr->flags |= PIPE_OPT_QUOTE_LOCAL;
+ break;
+ case 'u':
+ attr->flags |= PIPE_OPT_FOLD_USER;
+ break;
default:
msg_fatal("unknown flag: %c (ignored)", *cp);
break;
if (vstream_fseek(request->fp, request->data_offset, SEEK_SET) < 0)
msg_fatal("seek queue file %s: %m", VSTREAM_PATH(request->fp));
- dict_update(PIPE_DICT_TABLE, PIPE_DICT_SENDER, request->sender);
- dict_update(PIPE_DICT_TABLE, PIPE_DICT_NEXTHOP, request->nexthop);
buf = vstring_alloc(10);
+ if (attr.flags & PIPE_OPT_QUOTE_LOCAL) {
+ quote_822_local(buf, request->sender);
+ dict_update(PIPE_DICT_TABLE, PIPE_DICT_SENDER, STR(buf));
+ } else
+ dict_update(PIPE_DICT_TABLE, PIPE_DICT_SENDER, request->sender);
+ if (attr.flags & PIPE_OPT_FOLD_HOST) {
+ vstring_strcpy(buf, request->nexthop);
+ lowercase(STR(buf));
+ dict_update(PIPE_DICT_TABLE, PIPE_DICT_NEXTHOP, STR(buf));
+ } else
+ dict_update(PIPE_DICT_TABLE, PIPE_DICT_NEXTHOP, request->nexthop);
vstring_sprintf(buf, "%ld", (long) request->data_size);
dict_update(PIPE_DICT_TABLE, PIPE_DICT_SIZE, STR(buf));
vstring_free(buf);
- expanded_argv = expand_argv(attr.command, rcpt_list);
+ expanded_argv = expand_argv(attr.command, rcpt_list, attr.flags);
export_env = argv_split(var_export_environ, ", \t\r\n");
command_status = pipe_command(request->fp, why,
static void postdrop_sig(int sig)
{
+ signal(SIGHUP, SIG_IGN);
+ signal(SIGINT, SIG_IGN);
+ signal(SIGQUIT, SIG_IGN);
+ signal(SIGTERM, SIG_IGN);
postdrop_cleanup();
exit(sig);
}
postsuper.o: ../../include/set_ugid.h
postsuper.o: ../../include/argv.h
postsuper.o: ../../include/vstring_vstream.h
+postsuper.o: ../../include/sane_fsops.h
postsuper.o: ../../include/mail_task.h
postsuper.o: ../../include/mail_conf.h
postsuper.o: ../../include/mail_params.h
case SM_MODE_NEWALIAS:
if (argv[OPTIND])
msg_fatal("alias initialization mode requires no recipient");
+ if (*var_alias_db_map == 0)
+ return (0);
ext_argv = argv_alloc(2);
argv_add(ext_argv, "postalias", (char *) 0);
for (n = 0; n < msg_verbose; n++)
#define SMTP_FEATURE_SIZE (1<<3)
#define SMTP_FEATURE_STARTTLS (1<<4)
#define SMTP_FEATURE_AUTH (1<<5)
+#define SMTP_FEATURE_MAYBEPIX (1<<6) /* PIX smtp fixup mode */
/*
* smtp.c
"host %s refused to talk to me: %s",
session->namaddr, translit(resp->str, "\n", " ")));
+ /*
+ * XXX Some PIX firewall versions require flush before ".<CR><LF>" so it
+ * does not span a packet boundary. This hurts performance so it is not
+ * on by default.
+ */
+ if (resp->str[strspn(resp->str, "20 *\t\n")] == 0)
+ state->features |= SMTP_FEATURE_MAYBEPIX;
+
/*
* See if we are talking to ourself. This should not be possible with the
* way we implement DNS lookups. However, people are known to sometimes
*
* XXX 2821: Section 4.5.3.1 says that a 552 RCPT TO reply
* must be treated as if the server replied with 452.
+ * However, this causes "too much mail data" to be
+ * treated as a recoverable error, which is wrong. I'll
+ * stick with RFC 821.
*/
case SMTP_STATE_RCPT:
if (!mail_from_rejected) {
-#ifndef RFC821_SYNTAX
+#ifndef notRFC821_SYNTAX
if (resp->code == 552)
resp->code = 452;
#endif
if (prev_type == REC_TYPE_CONT) /* missing newline at end */
smtp_fputs("", 0, session->stream);
+ if ((state->features & SMTP_FEATURE_ESMTP) == 0
+ && (state->features & SMTP_FEATURE_MAYBEPIX) != 0)
+ vstream_fflush(session->stream);/* hurts performance */
if (vstream_ferror(state->src))
msg_fatal("queue file read error");
if (rec_type != REC_TYPE_XTRA)
"\tby %s (%s) with %s id %s",
var_myhostname, var_mail_name,
state->protocol, state->queue_id);
+ /* XXX Should RFC 822 externalize recipient address */
rec_fprintf(state->cleanup, REC_TYPE_NORM,
"\tfor <%s>; %s", state->recipient, mail_date(state->time));
} else {
"\tid %s; %s", state->queue_id, mail_date(state->time));
}
#ifdef RECEIVED_ENVELOPE_FROM
+ /* XXX Should RFC 822 externalize sender address */
rec_fprintf(state->cleanup, REC_TYPE_NORM,
"\t(envelope-from %s)", state->sender);
#endif
int dns_status = DNS_FAIL;
int i;
int result;
+ VSTRING *why;
if (msg_verbose)
msg_info("%s: %s", myname, state->addr);
* Tack on each RBL domain name and query the DNS for an A record. If the
* record exists, the client address is blacklisted.
*/
+ why = vstring_alloc(10);
while ((rbl_domain = mystrtok(&bp, " \t\r\n,")) != 0) {
vstring_truncate(query, reverse_len);
vstring_strcat(query, rbl_domain);
dns_status = dns_lookup(STR(query), T_A, 0, (DNS_RR **) 0,
- (VSTRING *) 0, (VSTRING *) 0);
+ (VSTRING *) 0, why);
if (dns_status == DNS_OK)
break;
+ if (dns_status != DNS_NOTFOUND)
+ msg_warn("%s: RBL lookup error: %s", STR(query), STR(why));
}
+ vstring_free(why);
/*
* Report the result.