2
0
mirror of https://github.com/vdukhovni/postfix synced 2025-08-31 14:17:41 +00:00

snapshot-20011104

This commit is contained in:
Wietse Venema
2001-11-04 00:00:00 -05:00
committed by Viktor Dukhovni
parent 9102679caa
commit 9cc882833d
21 changed files with 527 additions and 245 deletions

View File

@@ -5530,7 +5530,7 @@ Apologies for any names omitted.
Bugfix: mail_date() mis-formatted negative time zone offsets
with fractional hours (-03-30 instead of -0330). Fix by
Chad House, greyfirst.ca.
Chad House, greyfirst.ca. File: global/mail_date.c.
20011102
@@ -5561,7 +5561,15 @@ Apologies for any names omitted.
the result_attribute, but errored out when a DN didn't
exist. The behavior is now consistent: treat non-existant
DN's in a special result attribute expansion the same as
DN's with no attribtue. LaMont Jones, HP.
DN's with no attribute. LaMont Jones, HP.
20011104
Bugfix: the new smtp-sink -n option (terminate after the
specified number of deliveries) wasn't optional.
Portability: updated Mac OS X documentation and install
scripts by Gerben Wierda.
Open problems:

View File

@@ -52,6 +52,7 @@ If your system is supported, it is one of
BSD/OS 2.x
BSD/OS 3.x
BSD/OS 4.x
Darwin 1.x
FreeBSD 2.x
FreeBSD 3.x
FreeBSD 4.x
@@ -73,8 +74,7 @@ If your system is supported, it is one of
Linux SuSE 5.x
Linux SuSE 6.x
Linux SuSE 7.x
Mac OS X server
Mac OS X Public Beta
Mac OS X
NEXTSTEP 3.x
NetBSD 1.x
OPENSTEP 4.x

View File

@@ -0,0 +1,35 @@
#!/bin/sh
# Gerben Wierda, Oct 2001. Adapted from an existing example. I waive every
# copyright on this and I also do not give any warranty.
. /etc/rc.common
##
# Start mail server
##
if [ "$1" == "start" ]
then
if [ "${MAILSERVER:=-NO-}" = "-YES-" ]
then
ConsoleMessage "Starting Postfix mail services"
/usr/sbin/postfix start
fi
elif [ "$1" == "stop" ]
then
ConsoleMessage "Stopping Postfix mail services"
/usr/sbin/postfix stop
elif [ "$1" == "restart" ]
then
if [ "${MAILSERVER:=-NO-}" = "-YES-" ]
then
ConsoleMessage "Reloading Postfix configuration"
/usr/sbin/postfix reload
else
ConsoleMessage "Stopping Postfix mail services"
/usr/sbin/postfix stop
fi
fi

View File

@@ -8,5 +8,6 @@
{
start = "Starting Postfix";
stop = "Stopping Postfix";
restart = "Reloading Postfix Configuration";
};
}

View File

@@ -0,0 +1,63 @@
# Adapted from an existing example by Gerben Wierda, Oct 2001. I waive every
# copyright on this and I also do not give any warranty.
Let's start with the important warning:
DO NOT USE THE MULTIPLE USERS APPLICATION TO CREATE THE POSTFIX USER!
Run the commands below in the order that they are presented
A. INSTALLING POSTFIX for the first time and selecting it as the active
Mail Transfer Agent (MTA):
# All these commands are written to be run from this directory.
# this creates the necessary users & groups for proper operation
# of postfix:
sudo ./niscript
# Prepare for reactivating sendmail if you want to
sudo ./backup-sendmail-binaries
# Install postfix:
# When the script asks you for setgid (the default will be no) tell it
# maildrop
(cd ../..; sudo make install)
# Prepare for reactivating postfix if you want to
sudo ./backup-postfix-binaries
# edit /etc/postfix/main.cf to suit your requirements
### add your own command here ###
# Install the startup item and move the existing sendmail startup item
# out of the way
sudo ./activate-postfix
# Restart your computer
# Test. Read INSTALL for a series of suggested tests.
B. RESTORING Sendmail as the MTA when Postfix is the active MTA
# Stop postfix
# Restore the sendmail binaries
# Restore the Sendmail startup item and move the Postfix startup item
# out of the way
sudo ./activate-sendmail
# Restart your computer
C. RESTORING postfix as the MTA when Sendmail is the active MTA
# The first time you have to follow the steps of A.
# Kill the running sendmail daemon if you know how
# Restore the postfix binaries
# Restore the Postfix startup item and move the Sendmail startup item
# out of the way
sudo ./activate-postfix
# Restart your computer

View File

@@ -1,31 +0,0 @@
Before you do the build, make sure you run niscript (as root) to properly
create a postfix user, and postfix & maildrop groups.
DO NOT USE THE MULTIPLE USERS APPLICATION TO CREATE THE POSTFIX USER!
1) su
2) ./niscript
this creates the necessary users & groups for proper operation
of postfix
3) ./stash-sendmail
move your existing sendmail binaries somewhere safe
4) make install
When the script asks you for setgid (the default will be no) tell it
maildrop
5) edit /etc/postfix/main.cf to suit your requirements
6) postfix start
7) Test. Read INSTALL for a series of suggested tests.
8) cp -R darwin-Postfix /System/Library/StartupItems/Postfix
9) edit /System/Library/StartupItems/Sendmail. add "exit 0" as the
first line

View File

@@ -0,0 +1,61 @@
#!/bin/sh
# Written by Gerben Wierda, Oct 2001. I waive every copyright on this and
# I also do not give any warranty.
. ./defines
if [ ! -e ${POSTFIXBACKUPDIR}/sendmail ]
then
echo "Something is wrong: there is no existing postfix binary backup"
exit 1;
else
echo "Restoring postfix versions of sendmail programs from backup..."
(cd ${POSTFIXBACKUPDIR}; tar cf - sendmail) | (cd /usr/sbin; tar xf -)
(cd ${POSTFIXBACKUPDIR}; tar cf - newaliases) | (cd /usr/bin; tar xf -)
(cd ${POSTFIXBACKUPDIR}; tar cf - mailq) | (cd /usr/bin; tar xf -)
fi
if [ -e "${PSI}" ]
then
echo "Postfix StartupItem already exists."
else
if [ -e "${PSIDISABLED}" ]
then
echo "Reinstating disabled Postfix StartupItem..."
mv "${PSIDISABLED}" "${PSI}"
else
echo "Installing new default Postfix StartupItem..."
cp -R Postfix.StartupItem "${PSI}"
fi
fi
if [ -e "${SSI}" ]
then
if [ ! -d "${SIDISABLEDDIR}" ]
then
mkdir -p "${SIDISABLEDDIR}"
fi
echo "Moving existing Sendmail StartupItem to ${SIDISABLEDDIR}..."
if [ -e "${SSIDISABLED}" ]
then
echo "Something is wrong. A disabled Sendmail StartupItem already exists."
DATETIME=`date +"%Y%b%e-%H%M%S"`
echo "Moving Sendmail to Sendmail.${DATETIME}"
mv "${SSI}" "${SSIDISABLED}.${DATETIME}"
echo "You should have just one ${SSIDISABLED}"
else
mv "${SSI}" "${SSIDISABLED}"
fi
fi
. /etc/hostconfig
if [ "${MAILSERVER:=-NO-}" = "-YES-" ]
then
echo "Postfix will start on reboot"
else
echo "Note: Postfix needs MAILSERVER set to -YES- in /etc/hostconfig"
echo "Postfix will NOT start on reboot"
fi

View File

@@ -0,0 +1,60 @@
#!/bin/sh
# Written by Gerben Wierda, Oct 2001. I waive every copyright on this and
# I also do not give any warranty.
. ./defines
if [ ! -e ${SENDMAILBACKUPDIR}/sendmail ]
then
echo "Something is wrong: there is no existing postfix binary backup"
exit 1;
else
echo "Restoring sendmail versions of sendmail programs from backup..."
(cd ${SENDMAILBACKUPDIR}; tar cf - sendmail) | (cd /usr/sbin; tar xf -)
(cd ${SENDMAILBACKUPDIR}; tar cf - newaliases) | (cd /usr/bin; tar xf -)
(cd ${SENDMAILBACKUPDIR}; tar cf - mailq) | (cd /usr/bin; tar xf -)
fi
if [ -e "${SSI}" ]
then
echo "Sendmail StartupItem already exists."
else
if [ -e "${SSIDISABLED}" ]
then
echo "Reinstating disabled Sendmail StartupItem..."
mv "${SSIDISABLED}" "${SSI}"
else
echo "Something is wrong. I cannot find ${SSIDISABLED}"
echo "Postfix will be uninstalled, Sendmail not reinstalled."
fi
fi
if [ -e "${PSI}" ]
then
if [ ! -d "${SIDISABLEDDIR}" ]
then
mkdir -p "${SIDISABLEDDIR}"
fi
echo "Moving existing Postfix StartupItem to ${SIDISABLEDDIR}..."
if [ -e "${PSIDISABLED}" ]
then
echo "Something is wrong. A disabled Postfix StartupItem already exists."
DATETIME=`date +"%Y%b%e-%H%M%S"`
echo "Moving Postfix to Postfix.${DATETIME}"
mv "${PSI}" "${PSIDISABLED}.${DATETIME}"
echo "You should have just one ${PSIDISABLED}"
else
mv "${PSI}" "${PSIDISABLED}"
fi
fi
. /etc/hostconfig
if [ "${MAILSERVER:=-NO-}" = "-YES-" ]
then
echo "Sendmail will start on reboot"
else
echo "Note: Sendmail needs MAILSERVER set to -YES- in /etc/hostconfig"
echo "Sendmail will NOT start on reboot"
fi

View File

@@ -0,0 +1,20 @@
#! /bin/sh
# Written by Gerben Wierda, Oct 2001. I waive every copyright on this and
# I also do not give any warranty.
# We use tar, as we do not know beforehand if we are dealing with real
# files or symbolic links. Since we use tar, we cannot change filenames
# we need to create a directory to hold our backup binaries.
. ./defines
if [ ! -d ${POSTFIXBACKUPDIR} ]
then
mkdir -p ${POSTFIXBACKUPDIR}
fi
(cd /usr/sbin; tar cf - sendmail) | (cd ${POSTFIXBACKUPDIR}; tar xf -)
(cd /usr/bin; tar cf - newaliases) | (cd ${POSTFIXBACKUPDIR}; tar xf -)
(cd /usr/bin; tar cf - mailq) | (cd ${POSTFIXBACKUPDIR}; tar xf -)

View File

@@ -0,0 +1,20 @@
#! /bin/sh
# Written by Gerben Wierda, Oct 2001. I waive every copyright on this and
# I also do not give any warranty.
# We use tar, as we do not know beforehand if we are dealing with real
# files or symbolic links. Since we use tar, we cannot change filenames
# we need to create a directory to hold our backup binaries.
. ./defines
if [ ! -d ${SENDMAILBACKUPDIR} ]
then
mkdir -p ${SENDMAILBACKUPDIR}
fi
(cd /usr/sbin; tar cf - sendmail) | (cd ${SENDMAILBACKUPDIR}; tar xf -)
(cd /usr/bin; tar cf - newaliases) | (cd ${SENDMAILBACKUPDIR}; tar xf -)
(cd /usr/bin; tar cf - mailq) | (cd ${SENDMAILBACKUPDIR}; tar xf -)

View File

@@ -1,13 +0,0 @@
#!/bin/sh
. /etc/rc.common
##
# Start mail server
##
if [ "${MAILSERVER:=-NO-}" = "-YES-" ]; then
ConsoleMessage "Starting Postfix mail services"
/usr/sbin/postfix start
fi

View File

@@ -0,0 +1,15 @@
#! /bin/sh
# Written by Gerben Wierda, Oct 2001. I waive every copyright on this and
# I also do not give any warranty.
SIDIR="/System/Library/StartupItems"
SIDISABLEDDIR="/System/Library/DisabledStartupItems"
PSI="${SIDIR}/Postfix"
SSI="${SIDIR}/Sendmail"
PSIDISABLED="${SIDISABLEDDIR}/Postfix"
SSIDISABLED="${SIDISABLEDDIR}/Sendmail"
POSTFIXBACKUPDIR=/usr/sbin/.postfixbackup
SENDMAILBACKUPDIR=/usr/sbin/.sendmailbackup

View File

@@ -1,118 +1,158 @@
#! /bin/sh
#
# Written 9/20/00 by Joe Block <jpb@creol.ucf.edu>
#
# It shouldn't matter, but this script is GPL.
#!/usr/bin/perl
# niscript.pl by Gerben Wierda <gerben_wierda@rna.nl>
# This little script is an adaptation of the original niscript sh script by
# Joe Block <jpb@creol.ucf.edu>
# instead of using fixed uid/gid and thus not robust if you run it on a
# system where groups and/or users have been added, this script checks
# if the users/groups are there and if not creates them with free id's.
print <<_WARNING
cat <<EOF
This script massages your netinfo database. This can severely break
your system. If your netinfo database breaks, you get to keep the parts.
If you've already created a postfix user using Multiple Users, you'll need
to edit this script. do:
No Warranty. Really.
niutil -read / /users/postfix
This script tries to create two groups (if they do not already exist):
- postfix
- maildrop
and tries to create a user (if it does not already exist)
- postfix
which is member of group postfix.
to find out what uid was assigned to postfix. Comment out the stanza in
this script that creates the postfix user
_WARNING
;
Also note that this script assumes that you are
A) running MacOS X Public Beta
B) have not added any groups to the base system
# The script starts to look at id 88 (both for user and group) and up to 65535
# It dies if no free id is found.
If you've added groups or are not running Public Beta, you should
make sure the gids in this script have not already been used.
my $postfixgid = undef;
my $maildropgid = undef;
my $postfixuid = undef;
You'll need to edit the script to remove the exit statement before the first
call to niutil to show you read the directions and understand the risks.
# First create
EOF
my @groups = readgroups();
foreach $group (@groups) {
(my $groupname, undef, my $gid, undef) = split( ':', $group);
if ($groupname eq 'postfix') {
warn "You already have a postfix group (with gid $gid)\n";
$postfixgid = $gid;
}
if ($groupname eq 'maildrop') {
warn "You already have a maildrop group (with gid $gid)\n";
$maildropgid = $gid;
}
}
PFSHELL=/usr/bin/false
PFUID=88
PFGID=88
PFHOME=/Users/postfix
MDGID=99
if (not defined $postfixgid) {
$postfixgid = creategroup( 'postfix');
}
echo -n "shell for user postfix? [$PFSHELL]"
read pfshell
if ["$pfshell" = ""]
then
pfshell=$PFSHELL
fi
echo
if (not defined $maildropgid) {
$maildropgid = creategroup( 'maildrop');
}
echo -n "uid for user postfix? [$PFUID]"
read pfuid
if ["$pfuid" = ""]
then
pfuid=$PFUID
fi
echo
my @users = readusers();
foreach $user (@users) {
(my $username, undef, my $uid, undef) = split( ':', $user);
if ($username eq 'postfix') {
warn "You already have a postfix user (with uid $uid)\n";
$postfixuid = $uid;
}
}
echo -n "gid for user postfix? [$PFGID]"
read pfgid
if ["$pfgid" = ""]
then
pfgid=$PFGID
fi
echo
if (not defined $postfixuid) {
$postfixuid = createuser( 'postfix', '"Postfix User"',
'/usr/bin/false', '/etc/postfix',
$postfixgid);
addusertogroup( 'postfix', 'postfix');
}
echo -n "Home directory for user postfix (we won't actually create it as postfix doesn't use it)? [$PFHOME]"
read pfhome
if ["$pfhome" = ""]
then
pfhome=$PFHOME
fi
echo
warn "\n";
echo -n "gid for maildrop group? [$MDGID]"
read mdgid
if ["$mdgid" = ""]
then
mdgid=$MDGID
fi
echo
sub creategroup
{
my $name = shift;
open( NIDUMP, "nidump group /|") or die "Cannot run nidump\n";
my @groups=<NIDUMP>;
close( NIDUMP);
echo "postfix user: shell=$pfshell, uid=$pfuid, gid=$pfgid,home=$pfhome"
echo "maildrop group: $mdgid"
echo
echo -n "You're sure you want to massage your netinfo database? [yes/NO]"
read arewesure
my $tryno;
NEXTNO: for ($tryno = 88; $tryno <= 65535; $tryno++) {
foreach my $group (@groups) {
(my $groupname, undef, my $gid, undef) =
split( ':', $group);
next NEXTNO if $gid == $tryno;
}
last NEXTNO;
}
die "Cannot find free gid\n" if $tryno == 65536;
warn "Will create $name as gid $tryno\n";
system "niutil -create / /groups/$name";
system "niutil -createprop / /groups/$name name $name";
system "niutil -createprop / /groups/$name gid $tryno";
system "niutil -createprop / /groups/$name passwd '*'";
return $tryno;
}
case $arewesure in
yes|YES)
echo "remember, you were warned"
;;
*)
echo "OK, exiting"
exit 0
;;
esac
exit 0
sub addusertogroup
{
my $user = shift;
my $group = shift;
system "niutil -appendprop / /groups/$group users $user";
}
echo "Tweaking netinfo now"
echo "Creating postfix user"
niutil -create / /users/postfix
niutil -createprop / /users/postfix realname "Postfix user"
niutil -createprop / /users/postfix shell $pfshell
niutil -createprop / /users/postfix uid $pfuid
niutil -createprop / /users/postfix gid $pfgid
niutil -createprop / /users/postfix home $pfhome
niutil -createprop / /users/postfix _shadow_passwd
passwd postfix
sub readgroups
{
open( NIDUMP, "nidump group /|") or die "Cannot run nidump\n";
my @groups=<NIDUMP>;
close( NIDUMP);
return @groups;
}
echo "Creating postfix group"
niutil -create / /groups/postfix
niutil -createprop / /groups/postfix name postfix
niutil -createprop / /groups/postfix gid $pfgid
niutil -createprop / /groups/postfix passwd '*'
echo "Adding postfix user to postfix group"
niutil -appendprop / /groups/postfix users postfix
sub readusers
{
my @passwd;
open( NIDUMP, "nidump passwd /|") or die "Cannot run nidump\n";
@passwd=<NIDUMP>;
close( NIDUMP);
return @passwd;
}
sub createuser
{
my $name = shift;
my $realname = shift;
my $shell = shift;
my $home = shift;
my $gid = shift;
open( NIDUMP, "nidump passwd /|") or die "Cannot run nidump\n";
my @passwd=<NIDUMP>;
close( NIDUMP);
my $tryno;
NEXTNO: for ($tryno = 88; $tryno <= 65535; $tryno++) {
foreach my $passwd (@passwds) {
(my $passwdname, undef, my $uid, undef) =
split( ':', $passwd);
next NEXTNO if $uid == $tryno;
}
last NEXTNO;
}
die "Cannot find free uid\n" if $tryno == 65536;
warn "Will create $name as uid $tryno\n";
system "niutil -create / /users/$name";
system "niutil -createprop / /users/$name realname $realname";
system "niutil -createprop / /users/$name shell $shell";
system "niutil -createprop / /users/$name uid $tryno";
system "niutil -createprop / /users/$name gid $gid";
system "niutil -createprop / /users/$name home $home";
system "niutil -createprop / /users/$name _shadow_passwd";
system "niutil -createprop / /users/$name passwd '*'";
return $tryno;
}
echo "Creating maildrop group. Remember not to add any users to this group,"
echo "or you might as well have made your maildrop directory world writable."
niutil -create / /groups/maildrop
niutil -createprop / /groups/maildrop name maildrop
niutil -createprop / /groups/maildrop gid $mdgid
niutil -createprop / /groups/maildrop passwd '*'

View File

@@ -1,6 +0,0 @@
#! /bin/sh
mv /usr/sbin/sendmail /usr/sbin/sendmail.OFF
mv /usr/bin/newaliases /usr/bin/newaliases.OFF
mv /usr/bin/mailq /usr/bin/mailq.OFF
chmod 755 /usr/sbin/sendmail.OFF /usr/bin/newaliases.OFF /usr/bin/mailq.OFF

View File

@@ -1525,7 +1525,7 @@ permit if the local system is listed as MX host for the recipient
domain. Use the optional <a
href="#permit_mx_backup_networks">permit_mx_backup_networks</a>
parameter to also require that the primary MX hosts match a list
of network blocks.
of network blocks (Postfix versions 20011008 and later).
<li> Other UCE restrictions (e.g., SMTPD access maps) are not aware
of sender-provided routing information.

View File

@@ -181,36 +181,39 @@ LOCAL(8) LOCAL(8)
address, and appends no empty line.
<b>EXTERNAL</b> <b>FILE</b> <b>DELIVERY</b>
The <b>allow</b><i>_</i><b>mail</b><i>_</i><b>to</b><i>_</i><b>files</b> configuration parameter restricts
delivery to external files. The default setting (<b>alias,</b>
<b>forward</b>) forbids file destinations in <b>:include:</b> files.
Specify a pathname ending in <b>/</b> for <b>qmail</b>-compatible
<b>maildir</b> delivery.
The delivery format depends on the destination filename
syntax. The default is to use UNIX-style mailbox format.
Specify a name ending in <b>/</b> for <b>qmail</b>-compatible <b>maildir</b>
delivery.
The <b>local</b> daemon prepends a "<b>From</b> <i>sender</i> <i>time_stamp</i>" enve-
lope header to each message, prepends an optional <b>Deliv-</b>
<b>ered-To:</b> header with the recipient envelope address,
prepends a &gt; character to lines beginning with "<b>From</b> ",
and appends an empty line. The envelope sender address is
available in the <b>Return-Path:</b> header. When the destina-
tion is a regular file, it is locked for exclusive access
while delivery is in progress. In case of problems, an
attempt is made to truncate a regular file to its original
length.
The <b>allow</b><i>_</i><b>mail</b><i>_</i><b>to</b><i>_</i><b>files</b> configuration parameter restricts
delivery to external files. The default setting (<b>alias,</b>
<b>forward</b>) forbids file destinations in <b>:include:</b> files.
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
each message, prepends an optional <b>Delivered-To:</b> header
with the recipient envelope address, prepends a &gt; charac-
ter to lines beginning with "<b>From</b> ", and appends an empty
line. The envelope sender address is available in the
<b>Return-Path:</b> header. When the destination is a regular
file, it is locked for exclusive access while delivery is
in progress. In case of problems, an attempt is made to
truncate a regular file to its original length.
In the case of <b>maildir</b> delivery, the local daemon prepends
an optional <b>Delivered-To:</b> header with the envelope recipi-
ent address. The envelope sender address is available in
ent address. The envelope sender address is available in
the <b>Return-Path:</b> header.
<b>ADDRESS</b> <b>EXTENSION</b>
The optional <b>recipient</b><i>_</i><b>delimiter</b> configuration parameter
specifies how to separate address extensions from local
The optional <b>recipient</b><i>_</i><b>delimiter</b> configuration parameter
specifies how to separate address extensions from local
recipient names.
For example, with "<b>recipient</b><i>_</i><b>delimiter</b> <b>=</b> <b>+</b>", mail for
<i>name</i>+<i>foo</i> is delivered to the alias <i>name</i>+<i>foo</i> or to the
alias <i>name</i>, to the destinations listed in ~<i>name</i>/.<b>for-</b>
For example, with "<b>recipient</b><i>_</i><b>delimiter</b> <b>=</b> <b>+</b>", mail for
<i>name</i>+<i>foo</i> is delivered to the alias <i>name</i>+<i>foo</i> or to the
alias <i>name</i>, to the destinations listed in ~<i>name</i>/.<b>for-</b>
<b>ward</b>+<i>foo</i> or in ~<i>name</i>/.<b>forward</b>, to the mailbox owned by the
user <i>name</i>, or it is sent back as undeliverable.
@@ -218,10 +221,10 @@ LOCAL(8) LOCAL(8)
<b>ered-To:</b> <i>name</i>+<i>foo</i>' header line.
<b>DELIVERY</b> <b>RIGHTS</b>
Deliveries to external files and external commands are
Deliveries to external files and external commands are
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>
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>
file or alias database. When those files are owned by the
superuser, delivery is made with the rights specified with
the <b>default</b><i>_</i><b>privs</b> configuration parameter.
@@ -230,42 +233,42 @@ LOCAL(8) LOCAL(8)
<a href="http://www.faqs.org/rfcs/rfc822.html">RFC 822</a> (ARPA Internet Text Messages)
<b>DIAGNOSTICS</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 afterwards.
Depending on the setting of the <b>notify</b><i>_</i><b>classes</b> parameter,
the postmaster is notified of bounces and of other trou-
Depending on the setting of the <b>notify</b><i>_</i><b>classes</b> parameter,
the postmaster is notified of bounces and of other trou-
ble.
<b>BUGS</b>
For security reasons, the message delivery status of
external commands or of external files is never check-
For security reasons, the message delivery status of
external commands or of external files is never check-
pointed to file. As a result, the program may occasionally
deliver more than once to a command or external file. Bet-
ter safe than sorry.
Mutually-recursive aliases or ~/.<b>forward</b> files are not
detected early. The resulting mail forwarding loop is
Mutually-recursive aliases or ~/.<b>forward</b> files are not
detected early. The resulting mail forwarding loop is
broken by the use of the <b>Delivered-To:</b> message header.
<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
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>
<b>alias</b><i>_</i><b>maps</b>
List of alias databases.
<b>biff</b> Enable or disable notification of new mail via the
<b>biff</b> Enable or disable notification of new mail via the
<b>comsat</b> network service.
<b>expand</b><i>_</i><b>owner</b><i>_</i><b>alias</b>
When delivering to an alias that has an owner- com-
panion alias, set the envelope sender address to
the right-hand side of the owner alias, instead
panion alias, set the envelope sender address to
the right-hand side of the owner alias, instead
using of the left-hand side address.
<b>export</b><i>_</i><b>environment</b>
@@ -277,10 +280,10 @@ LOCAL(8) LOCAL(8)
ject to <i>$name</i> expansion.
<b>local</b><i>_</i><b>command</b><i>_</i><b>shell</b>
Shell to use for external command execution (for
example, /some/where/smrsh -c). When a shell is
Shell to use for external command execution (for
example, /some/where/smrsh -c). When a shell is
specified, it is invoked even when the command con-
tains no shell built-in commands or meta charac-
tains no shell built-in commands or meta charac-
ters.
<b>owner</b><i>_</i><b>request</b><i>_</i><b>special</b>
@@ -288,10 +291,10 @@ LOCAL(8) LOCAL(8)
addresses.
<b>prepend</b><i>_</i><b>delivered</b><i>_</i><b>header</b>
Prepend an optional <b>Delivered-To:</b> header upon
external forwarding, delivery to command or file.
Specify zero or more of: <b>command,</b> <b>file,</b> <b>forward</b>.
Turning off <b>Delivered-To:</b> when forwarding mail is
Prepend an optional <b>Delivered-To:</b> header upon
external forwarding, delivery to command or file.
Specify zero or more of: <b>command,</b> <b>file,</b> <b>forward</b>.
Turning off <b>Delivered-To:</b> when forwarding mail is
not recommended.
<b>recipient</b><i>_</i><b>delimiter</b>
@@ -299,123 +302,123 @@ LOCAL(8) LOCAL(8)
<b>require</b><i>_</i><b>home</b><i>_</i><b>directory</b>
Require that a recipient's home directory is acces-
sible by the recipient before attempting delivery.
sible by the recipient before attempting delivery.
Defer delivery otherwise.
<b>Mailbox</b> <b>delivery</b>
<b>fallback</b><i>_</i><b>transport</b>
Message transport for recipients that are not found
in the UNIX passwd database. This parameter over-
in the UNIX passwd database. This parameter over-
rides <b>luser</b><i>_</i><b>relay</b>.
<b>home</b><i>_</i><b>mailbox</b>
Pathname of a mailbox relative to a user's home
Pathname of a mailbox relative to a user's home
directory. Specify a path ending in <b>/</b> for maildir-
style delivery.
<b>luser</b><i>_</i><b>relay</b>
Destination (<i>@domain</i> or <i>address</i>) for non-existent
users. The <i>address</i> is subjected to <i>$name</i> expan-
Destination (<i>@domain</i> or <i>address</i>) for non-existent
users. The <i>address</i> is subjected to <i>$name</i> expan-
sion.
<b>mail</b><i>_</i><b>spool</b><i>_</i><b>directory</b>
Directory with UNIX-style mailboxes. The default
Directory with UNIX-style mailboxes. The default
pathname is system dependent.
<b>mailbox</b><i>_</i><b>command</b>
External command to use for mailbox delivery. The
External command to use for mailbox delivery. The
command executes with the recipient privileges
(exception: root). The string is subject to $name
(exception: root). The string is subject to $name
expansions.
<b>mailbox</b><i>_</i><b>command</b><i>_</i><b>maps</b>
Lookup tables with per-recipient external commands
to use for mailbox delivery. Behavior is as with
Lookup tables with per-recipient external commands
to use for mailbox delivery. Behavior is as with
<b>mailbox</b><i>_</i><b>command</b>.
<b>mailbox</b><i>_</i><b>transport</b>
Message transport to use for mailbox delivery to
Message transport to use for mailbox delivery to
all local recipients, whether or not they are found
in the UNIX passwd database. This parameter over-
rides all other configuration parameters that con-
in the UNIX passwd database. This parameter over-
rides all other configuration parameters that con-
trol mailbox delivery, including <b>luser</b><i>_</i><b>relay</b>.
<b>Locking</b> <b>controls</b>
<b>deliver</b><i>_</i><b>lock</b><i>_</i><b>attempts</b>
Limit the number of attempts to acquire an exclu-
Limit the number of attempts to acquire an exclu-
sive lock on a mailbox or external file.
<b>deliver</b><i>_</i><b>lock</b><i>_</i><b>delay</b>
Time in seconds between successive attempts to
Time in seconds between successive attempts to
acquire an exclusive lock.
<b>stale</b><i>_</i><b>lock</b><i>_</i><b>time</b>
Limit the time after which a stale lock is removed.
<b>mailbox</b><i>_</i><b>delivery</b><i>_</i><b>lock</b>
What file locking method(s) to use when delivering
to a UNIX-style mailbox. The default setting is
system dependent. For a list of available file
What file locking method(s) to use when delivering
to a UNIX-style mailbox. The default setting is
system dependent. For a list of available file
locking methods, use the <b>postconf</b> <b>-l</b> command.
<b>Resource</b> <b>controls</b>
<b>command</b><i>_</i><b>time</b><i>_</i><b>limit</b>
Limit the amount of time for delivery to external
Limit the amount of time for delivery to external
command.
<b>duplicate</b><i>_</i><b>filter</b><i>_</i><b>limit</b>
Limit the size of the duplicate filter for results
Limit the size of the duplicate filter for results
from alias etc. expansion.
<b>line</b><i>_</i><b>length</b><i>_</i><b>limit</b>
Limit the amount of memory used for processing a
Limit the amount of memory used for processing a
partial input line.
<b>local</b><i>_</i><b>destination</b><i>_</i><b>concurrency</b><i>_</i><b>limit</b>
Limit the number of parallel deliveries to the same
user. The default limit is taken from the
user. 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.
<b>local</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
Limit the number of recipients per message deliv-
ery. The default limit is taken from the
<b>default</b><i>_</i><b>destination</b><i>_</i><b>recipient</b><i>_</i><b>limit</b> parameter.
<b>mailbox</b><i>_</i><b>size</b><i>_</i><b>limit</b>
Limit the size of a mailbox etc. file (any file
that is written to upon delivery). Set to zero to
Limit the size of a mailbox etc. file (any file
that is written to upon delivery). Set to zero to
disable the limit.
<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
command. Specify zero or more of: <b>alias</b>, <b>forward</b>,
Restrict the usage of mail delivery to external
command. Specify zero or more of: <b>alias</b>, <b>forward</b>,
<b>include</b>.
<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. Specify zero or more of: <b>alias</b>, <b>forward</b>,
Restrict the usage of mail delivery to external
file. Specify zero or more of: <b>alias</b>, <b>forward</b>,
<b>include</b>.
<b>command</b><i>_</i><b>expansion</b><i>_</i><b>filter</b>
What characters are allowed to appear in $name
expansions of mailbox_command. Illegal characters
What characters are allowed to appear in $name
expansions of mailbox_command. Illegal characters
are replaced by underscores.
<b>default</b><i>_</i><b>privs</b>
Default rights for delivery to external file or
Default rights for delivery to external file or
command.
<b>forward</b><i>_</i><b>expansion</b><i>_</i><b>filter</b>
What characters are allowed to appear in $name
expansions of forward_path. Illegal characters are
What characters are allowed to appear in $name
expansions of forward_path. Illegal characters are
replaced by underscores.
<b>HISTORY</b>
The <b>Delivered-To:</b> header appears in the <b>qmail</b> system by
The <b>Delivered-To:</b> header appears in the <b>qmail</b> system by
Daniel Bernstein.
The <i>maildir</i> structure appears in the <b>qmail</b> system by
The <i>maildir</i> structure appears in the <b>qmail</b> system by
Daniel Bernstein.
<b>SEE</b> <b>ALSO</b>
@@ -426,7 +429,7 @@ LOCAL(8) LOCAL(8)
<a href="qmgr.8.html">qmgr(8)</a> queue manager
<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>

View File

@@ -230,7 +230,7 @@ ReliantUNIX-?.5.43) SYSTYPE=ReliantUnix543
RANLIB=echo
SYSLIBS="-lresolv -lsocket -lnsl"
;;
Rhapsody.5*|Darwin.*)
Rhapsody.5*|Darwin.1.*)
SYSTYPE=RHAPSODY5
# Use the native compiler by default
: ${CC=cc}

View File

@@ -193,13 +193,16 @@ and appends no empty line.
.nf
.ad
.fi
The delivery format depends on the destination filename syntax.
The default is to use UNIX-style mailbox format. Specify a name
ending in \fB/\fR for \fBqmail\fR-compatible \fBmaildir\fR delivery.
The \fBallow_mail_to_files\fR configuration parameter restricts
delivery to external files. The default setting (\fBalias,
forward\fR) forbids file destinations in \fB:include:\fR files.
Specify a pathname ending in \fB/\fR for \fBqmail\fR-compatible
\fBmaildir\fR delivery.
The \fBlocal\fR daemon prepends a "\fBFrom \fIsender time_stamp\fR"
In the case of UNIX-style mailbox delivery,
the \fBlocal\fR daemon prepends a "\fBFrom \fIsender time_stamp\fR"
envelope header to each message, prepends an
optional \fBDelivered-To:\fR
header with the recipient envelope address, prepends a \fB>\fR

View File

@@ -15,7 +15,7 @@
* Version of this program.
*/
#define VAR_MAIL_VERSION "mail_version"
#define DEF_MAIL_VERSION "Snapshot-20011103"
#define DEF_MAIL_VERSION "Snapshot-20011104"
extern char *var_mail_version;
/* LICENSE

View File

@@ -177,13 +177,16 @@
/* EXTERNAL FILE DELIVERY
/* .ad
/* .fi
/* The delivery format depends on the destination filename syntax.
/* The default is to use UNIX-style mailbox format. Specify a name
/* ending in \fB/\fR for \fBqmail\fR-compatible \fBmaildir\fR delivery.
/*
/* The \fBallow_mail_to_files\fR configuration parameter restricts
/* delivery to external files. The default setting (\fBalias,
/* forward\fR) forbids file destinations in \fB:include:\fR files.
/* Specify a pathname ending in \fB/\fR for \fBqmail\fR-compatible
/* \fBmaildir\fR delivery.
/*
/* The \fBlocal\fR daemon prepends a "\fBFrom \fIsender time_stamp\fR"
/* In the case of UNIX-style mailbox delivery,
/* the \fBlocal\fR daemon prepends a "\fBFrom \fIsender time_stamp\fR"
/* envelope header to each message, prepends an
/* optional \fBDelivered-To:\fR
/* header with the recipient envelope address, prepends a \fB>\fR
@@ -308,7 +311,7 @@
/* with the recipient privileges (exception: root). The string is subject
/* to $name expansions.
/* .IP \fBmailbox_command_maps\fR
/* Lookup tables with per-recipient external commands to use for mailbox
/* Lookup tables with per-recipient external commands to use for mailbox
/* delivery. Behavior is as with \fBmailbox_command\fR.
/* .IP \fBmailbox_transport\fR
/* Message transport to use for mailbox delivery to all local

View File

@@ -409,7 +409,7 @@ static void disconnect(SINK_STATE *state)
vstream_fclose(state->stream);
vstring_free(state->buffer);
myfree((char *) state);
if (counter >= max_count)
if (max_count > 0 && counter >= max_count)
exit(0);
}