* Tue Dec 03 2024 Jean-Philippe Pialasse <jpp@koozali.org> 11.0.1-1.sme

- initial release of smeserver-mini-qmail from former smeserver-qmail
  . only for final delivery or forward behind qpsmtpd and postfix
  . set /var/qmail/control/qmqpservers server file
  . set junkmail delivery to dovecot-lda
  . we only need configs idhost, qmqpservers, me, defaultdomain, plusdomain, rcpthosts
  . removing controls badrcptto,helohost,smtproutes,rcpthosts,badmailfrom,databytes,bouncefrom,
  bouncehost,concurrencylocal,concurrencyremote,doublebouncehost,doublebounceto,envnoathost
  . removing /var/qmail/users
  . removing alias
  . cleaning actions scripts (TODO: move pseudonym-cleanup to smeserver-email)
This commit is contained in:
2024-12-09 23:37:37 -05:00
parent 3e0f7d433c
commit 89566576f1
47 changed files with 37 additions and 941 deletions

View File

@@ -1,36 +0,0 @@
#!/usr/bin/perl -w
#----------------------------------------------------------------------
# copyright (C) 1999-2005 MItel Networks Corporation
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
#
#----------------------------------------------------------------------
package esmith;
use strict;
use Errno;
my $event = $ARGV [0];
my $groupName = $ARGV [1];
die "Groupname argument missing." unless defined ($groupName);
$groupName =~ s/\./:/g;
unlink "/var/qmail/alias/.qmail-$groupName";
unlink "/var/qmail/alias/.qmail-$groupName-default";
exit (0);

View File

@@ -1,26 +0,0 @@
#!/bin/sh
#----------------------------------------------------------------------
# copyright (C) 2001-2006 Mitel Networks Corporation
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
#
#----------------------------------------------------------------------
#------------------------------------------------------------
# Reset qmail TCP timeouts, and tell qmail-send to retry sending
#------------------------------------------------------------
/var/qmail/bin/qmail-tcpok
exec sv alarm /service/qmail

View File

@@ -1,112 +0,0 @@
#!/usr/bin/perl -w
#----------------------------------------------------------------------
# copyright (C) 2002-2006 Mitel Networks Corporation
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
#
#----------------------------------------------------------------------
package esmith;
use strict;
use Errno;
use esmith::ConfigDB;
use esmith::AccountsDB;
use esmith::util;
my $c = esmith::ConfigDB->open_ro || die "Couldn't open config db\n";
my $a = esmith::AccountsDB->open_ro || die "Couldn't open accounts db\n";
my $event = $ARGV [0] || die "Event name arg missing\n";;
my @groups;
if (scalar @ARGV)
{
@groups = map { $a->get($_); } @ARGV;
foreach my $g (@groups)
{
my $type = $g->prop('type');
if ($type =~ /^user/)
{
# That's fine. We were probably just called from the user-delete
# event, in which case we want to update all of the groups. So, leave
# the groups array empty.
@groups = ();
last;
}
elsif ($type !~ /^group/){
die "Expected a user or a group. Got neither: $type\n";
}
}
}
# Regenerate all the groups if the previous block failed in some way.
unless (@groups)
{
@groups = $a->groups;
}
foreach my $group (@groups)
{
my $groupName = $group->key;
unless ($group->prop('type') eq 'group')
{
warn "Account $groupName is not a group account.\n";
next;
}
my %properties = $group->props;
$groupName =~ s/\./:/g;
my $group = "/var/qmail/alias/.qmail-$groupName";
my @group_members = split(/,/, $properties{Members});
# Check if we should exclude members from this group email address
my @exclude_users = split(/,/, ($properties{EmailExcludeUsers} || ''));
my @exclude_groups = split(/,/, ($properties{EmailExcludeGroups} || ''));
foreach my $exclude_group (@exclude_groups){
my $g = $a->get($exclude_group);
next unless $g;
push @exclude_users, split(/,/, ($g->prop('Members') || ''));
}
my %exclude = map { $_, 1 } @exclude_users;
@exclude_users = keys %exclude;
my @members = ();
foreach my $user (@group_members){
next if grep { $_ eq $user } @exclude_users;
push @members, $user;
}
my $members = join(',', @members);
esmith::util::processTemplate(
{
CONFREF =>
{
Members => $members,
},
TEMPLATE_PATH =>
"/var/qmail/alias/.qmail-group",
OUTPUT_FILENAME => "/var/qmail/alias/.qmail-$groupName",
}
);
unless (-f "/var/qmail/alias/.qmail-$groupName-default")
{
symlink "/var/qmail/alias/.qmail-$groupName",
"/var/qmail/alias/.qmail-$groupName-default";
}
}
exit (0);

View File

@@ -1,2 +1,3 @@
| [ -d ./Maildir/.junkmail/ ] || /var/qmail/bin/maildirmake ./Maildir/.junkmail/
| /var/qmail/bin/preline -f /usr/libexec/dovecot/dovecot-lda -a "$RECIPIENT" -d "$USER" -m "junkmail" ; if [ $? -ne 0 ] ; then exit -1; else exit 99; fi;
./Maildir/.junkmail/

View File

@@ -1,5 +0,0 @@
{
($EmailUnknownUser eq "returntosender") ?
"| bouncesaying 'Recipient unknown'" :
"$EmailUnknownUser";
}

View File

@@ -1,5 +0,0 @@
{
# Generic template to rebuild any .qmail-groupname file. Expects
# to be called with a CONFREF containing the group members.
$OUT .= join("\n", map { '&' . $_ } split(/,/, $Members));
}

View File

@@ -1 +0,0 @@
| forward $DEFAULT@{"$SystemName.$DomainName"}

View File

@@ -1,13 +0,0 @@
{
use esmith::AccountsDB;
my $a = esmith::AccountsDB->open_ro;
$OUT = '';
for my $user ( $a->get('admin'), $a->users )
{
next if ( ($user->prop('EveryoneEmail') || 'yes') eq 'no');
$OUT .= '&' . $user->key . "\n";
}
}

View File

@@ -1,2 +0,0 @@
#spamer@spamdomain.com
#@spamdomain.com

View File

@@ -1,9 +0,0 @@
{
require esmith::AccountsDB;
require esmith::DomainsDB;
%Accounts = esmith::AccountsDB->as_hash;
%Domains = esmith::DomainsDB->as_hash;
"";
}

View File

@@ -1,16 +0,0 @@
{
foreach my $account ( keys %Accounts )
{
next unless ( exists $Accounts{$account}{Visible}
and $Accounts{$account}{Visible} eq "internal" );
$OUT .= "$account\n";
$OUT .= "$account\@$DomainName\n";
foreach my $domain ( keys %Domains )
{
next unless $Domains{$domain}{type} eq "domain";
$OUT .= "$account\@$domain\n";
}
}
}

View File

@@ -1 +0,0 @@
MAILER-DAEMON

View File

@@ -1 +0,0 @@
{ $DomainName }

View File

@@ -1 +0,0 @@
{ (defined $DB->get('qmail')->prop('ConcurrencyLocal')) ? $DB->get('qmail')->prop('ConcurrencyLocal') : "20"; }

View File

@@ -1 +0,0 @@
{ (defined $DB->get('qmail')->prop('ConcurrencyRemote'))? $DB->get('qmail')->prop('ConcurrencyRemote') : "20"; }

View File

@@ -1 +0,0 @@
{ $DB->get('qmail')->prop('MaxMessageSize') || "0"; }

View File

@@ -1 +0,0 @@
{ $DomainName }

View File

@@ -1 +0,0 @@
{ $DB->get('qmail')->prop('DoubleBounceTo') || "postmaster"; }

View File

@@ -1 +0,0 @@
{ $DomainName }

View File

@@ -1 +0,0 @@
{ $qpsmtpd{HeloHost} || $DomainName }

View File

@@ -0,0 +1 @@
qmail.{ $DomainName }

View File

@@ -0,0 +1 @@
127.0.0.1

View File

@@ -1,14 +0,0 @@
{
use esmith::DomainsDB;
my $ddb = esmith::DomainsDB->open_ro or die "Couldn't open DomainsDB\n";
my @rcpt_hosts = ( "$SystemName.$DomainName" );
foreach my $domain ( $ddb->get_all_by_prop( type => "domain" ) )
{
push @rcpt_hosts, $domain->key;
}
$OUT = join "\n", @rcpt_hosts;
}

View File

@@ -1,5 +0,0 @@
{
return "" unless (defined $ExternalIP);
return "[$ExternalIP]";
}

View File

@@ -1,25 +0,0 @@
{
#
# qmail's smtproutes mechanism works such that the LAST BEST match
# found in /var/qmail/control/smtproutes will be used in preference
# to any other entry.
#
# Consider the following /var/qmail/control/smtproutes example:
#
# :smarthost.somewhere
# domain.place:some.host
# domain.place:other.host
# :some.other.smarthost.elsewhere
#
# Mail for user@domain.place will ALWAYS be delivered to
# other.host. The entry for some.host will NEVER be used.
#
# Mail for any other domain will ALWAYS be delivered to
# some.other.smarthost.elsewhere. The entry for smarthost.somewhere
# will NEVER be used.
#
# Therefore, if you wish to make any customisations to the
# /var/qmail/control/smtproutes templates, you must ensure that they
# appear AFTER the standard e-smith template entries.
#
}

View File

@@ -1,17 +0,0 @@
{
$OUT = "";
use esmith::DomainsDB;
my $ddb = esmith::DomainsDB->open_ro();
for my $domain ( $ddb->domains )
{
my $mail_server = $domain->prop('MailServer')
|| $DelegateMailServer
|| 'localhost';
next if ( $mail_server eq 'localhost' );
$OUT .= $domain->key . ":$mail_server\n";
}
}

View File

@@ -1,28 +0,0 @@
{
$OUT = "";
#--------------------------------------------------
# Now check for SMTP smart host
#--------------------------------------------------
if (
$SMTPSmartHost
&&
($SMTPSmartHost ne 'off')
&&
($SMTPSmartHost !~ /^\s*$/)
)
{
# Is the smtp-auth-proxy enabled?
if (${'smtp-auth-proxy'}{'status'} eq 'enabled')
{
$OUT .= ":localhost:26";
}
else
{
$OUT .= ":$SMTPSmartHost";
}
}
chomp ($OUT);
}

View File

@@ -1,32 +0,0 @@
{
$OUT = '';
# Generate qmail user assignments for the admin user. This will be
# handled by ~admin/.qmail.
my (undef, undef, $uid, $gid, undef, undef, undef, $dir, undef)
= getpwnam("admin");
# It is almost impossible to get Text::Template to output nothing
# on failure. It can be done by removing the newline at the end of
# this file but that is messy. Therefore, we'll simply return an
# error message that will make qmail-newu fail. Also send a
# warning message that will be captured in the logs.
unless (defined $uid && defined $gid && defined $dir)
{
my $msg =
"Failed to obtain user details for \'admin\' "
. "while processing admin assignment.";
warn "$msg\n";
$OUT = $msg;
return;
}
# Assign mail for the admin user itself, and for admin-ext.
my $admin_assign = "admin:${uid}:${gid}:${dir}";
$OUT .= "=admin:${admin_assign}:::\n";
$OUT .= "+admin-:${admin_assign}:-::";
}

View File

@@ -1,32 +0,0 @@
{
$OUT = '';
# Generate qmail user assignments for the alias user. This will be
# handled by ~alias/.qmail.
my (undef, undef, $uid, $gid, undef, undef, undef, $dir, undef)
= getpwnam("alias");
# It is almost impossible to get Text::Template to output nothing
# on failure. It can be done by removing the newline at the end of
# this file but that is messy. Therefore, we'll simply return an
# error message that will make qmail-newu fail. Also send a
# warning message that will be captured in the logs.
unless (defined $uid && defined $gid && defined $dir)
{
my $msg =
"Failed to obtain user details for \'alias\' "
. "while processing alias assignment.";
warn "$msg\n";
$OUT = $msg;
return;
}
# Assign mail for the alias user itself, and for alias-ext.
my $alias_assign = "alias:${uid}:${gid}:${dir}";
$OUT .= "=alias:${alias_assign}:::\n";
$OUT .= "+alias-:${alias_assign}:-::";
}

View File

@@ -1,36 +0,0 @@
{
$OUT = '';
# Generate qmail user assignments for the shared group. This will
# be handled by ~alias/.qmail-shared and ~alias/.qmail-shared-ext.
my (undef, undef, $uid, $gid, undef, undef, undef, $dir, undef)
= getpwnam("alias");
# It is almost impossible to get Text::Template to output nothing
# on failure. It can be done by removing the newline at the end of
# this file but that is messy. Therefore, we'll simply return an
# error message that will make qmail-newu fail. Also send a
# warning message that will be captured in the logs.
unless (defined $uid && defined $gid && defined $dir)
{
my $msg =
"Failed to obtain user details for \'alias\' "
. "while processing shared assignment.";
warn "$msg\n";
$OUT = $msg;
return;
}
my $alias_assign = "alias:${uid}:${gid}:${dir}";
$OUT .= "=shared:${alias_assign}:-:shared:\n";
$OUT .= "+shared-:${alias_assign}:-shared-::\n";
# Need to remove the final newline character. Blank lines in
# /var/qmail/users/assign are prohibited.
chomp($OUT);
}

View File

@@ -1,56 +0,0 @@
{
$OUT = '';
# Generate qmail user assignments for system accounts. These will
# be handled by admin. Make sure we DON'T reassign the admin or
# alias users!
my (undef, undef, $uid, $gid, undef, undef, undef, $dir, undef)
= getpwnam("admin");
# It is almost impossible to get Text::Template to output nothing
# on failure. It can be done by removing the newline at the end of
# this file but that is messy. Therefore, we'll simply return an
# error message that will make qmail-newu fail. Also send a
# warning message that will be captured in the logs.
unless (defined $uid && defined $gid && defined $dir)
{
my $msg =
"Failed to obtain user details for \'admin\' "
. "while processing system assignments.";
warn "$msg\n";
$OUT = $msg;
return;
}
my $admin_assign = "admin:${uid}:${gid}:${dir}";
use esmith::AccountsDB;
my $adb = esmith::AccountsDB->open_ro();
foreach my $user ( $adb->get_all_by_prop( type => 'system' ) )
{
next if ($user->key eq "admin");
next if ($user->key eq "alias");
next if ($user->key eq "shared");
# Assign mail for system_account@
$OUT .= "=" . $user->key . ":${admin_assign}:::\n";
# Assign mail for system_account-ext@
$OUT .= "+" . $user->key . "-:${admin_assign}:-::\n";
}
# Need to remove the final newline character. Blank lines in
# /var/qmail/users/assign are prohibited.
chomp($OUT);
# Failsafe: /var/qmail/users/assign cannot have blank lines.
# Therefore, if $OUT is empty, simply set up an assign for the
# admin user.
$OUT = "=admin:${admin_assign}:::" unless $OUT;
}

View File

@@ -1,59 +0,0 @@
{
$OUT = '';
# Generate qmail user assignments for users. These will be handled by
# ~user/.qmail.
use esmith::AccountsDB;
my $adb = esmith::AccountsDB->open_ro();
foreach $user ( $adb->users )
{
my $user_name = $user->key;
my (undef, undef, $uid, $gid, undef, undef, undef, $dir, undef)
= getpwnam($user_name);
# It is almost impossible to get Text::Template to output nothing
# on failure. It can be done by removing the newline at the end of
# this file but that is messy. Therefore, we'll simply return an
# error message that will make qmail-newu fail. Also send a
# warning message that will be captured in the logs.
unless (defined $uid && defined $gid && defined $dir)
{
my $msg =
"Failed to obtain user details for \'$user_name\' "
. "while processing user assignments.";
warn "$msg\n";
$OUT = $msg;
return;
}
$user_assign = $user_name . ":${uid}:${gid}:${dir}";
# Assign mail for user@
$OUT .= "=" . $user_name . ":${user_assign}:::\n";
# Assign mail for user-ext@
$OUT .= "+" . $user_name . "-:${user_assign}:-::\n";
}
# Need to remove the final newline character. Blank lines in
# /var/qmail/users/assign are prohibited.
chomp($OUT);
# Failsafe: /var/qmail/users/assign cannot have blank lines.
# Therefore, if $OUT is empty, simply set up an assign for the
# alias user.
unless ($OUT)
{
(undef, undef, $uid, $gid, undef, undef, undef, $dir, undef)
= getpwnam("alias");
$alias_assign = "alias:${uid}:${gid}:${dir}";
$OUT = "=alias:${alias_assign}:::";
}
}

View File

@@ -1,147 +0,0 @@
{
$OUT = '';
# Generate qmail user assignments for pseudonyms. These will
# be handled by ~user/.qmail in the case of a user pseudonym
# or by ~admin/.qmail in the case of a system pseudonym or by
# alias/.qmail-groupname in the case of a group pseudonym.
my (undef, undef, $uid, $gid, undef, undef, undef, $dir, undef)
= getpwnam("alias");
# It is almost impossible to get Text::Template to output nothing
# on failure. It can be done by removing the newline at the end of
# this file but that is messy. Therefore, we'll simply return an
# error message that will make qmail-newu fail. Also send a
# warning message that will be captured in the logs.
unless (defined $uid && defined $gid && defined $dir)
{
my $msg =
"Failed to obtain user details for \'alias\' "
. "while processing pseudonym assignments.";
warn "$msg\n";
$OUT = $msg;
return;
}
my $alias_assign = "alias:${uid}:${gid}:${dir}";
undef $uid;
undef $gid;
undef $dir;
(undef, undef, $uid, $gid, undef, undef, undef, $dir, undef)
= getpwnam("admin");
unless (defined $uid && defined $gid && defined $dir)
{
my $msg =
"Failed to obtain user details for \'admin\' "
. "while processing pseudonym assignments.";
warn "$msg\n";
$OUT = $msg;
return;
}
my $admin_assign = "admin:${uid}:${gid}:${dir}";
# Create assignments for each pseudonym.
use esmith::AccountsDB;
my $adb = esmith::AccountsDB->open_ro();
foreach $pseudonym ( $adb->pseudonyms )
{
next if ( $pseudonym->key =~ /@/ ); # user@domain goes in virtualdomains
my $account = $pseudonym->prop('Account');
unless ($account)
{
my $key = $pseudonym->key;
warn "pseudonym $key has no account property, default to admin";
$account = $adb->get('admin');
#next;
}
$account = $adb->get($pseudonym->prop('Account'));
unless ($account)
{
my $key = $pseudonym->key;
warn "pseudonym $key points to account which does not exist, default to admin";
$account = $adb->get('admin');
#next;
}
my $i = 1;
while ( $account->prop('type') eq "pseudonym")
{
$account = $adb->get($account->prop('Account'));
unless ($account)
{
my $key = $pseudonym->key;
warn "pseudonym $key points to account which does not exist, default to admin";
$account = $adb->get('admin');
last;
}
$i ++; last if $i>10;
}
if ($account->prop('type') eq "pseudonym")
{
warn "users/assign: Skipping " . $pseudonym->key . " - too many pseudonym levels\n";
next;
}
if ($account->prop('type') eq "user")
{
my (undef, undef, $uid, $gid, undef, undef, undef, $dir, undef)
= getpwnam($account->key);
unless (defined $uid && defined $gid && defined $dir)
{
my $msg =
"Failed to obtain user details for \'" . $account->key . "\' "
. "while processing pseudonym assignments.";
warn "$msg\n";
$OUT = $msg;
return;
}
$assign = $account->key . ":${uid}:${gid}:${dir}";
# Assign mail for user_pseudonym@
$OUT .= "=" . $pseudonym->key . ":${assign}:::\n";
$OUT .= "+" . $pseudonym->key . "-:${assign}:-::\n";
next;
}
if ($account->prop('type') eq "group" || $account->key eq "shared")
{
$OUT .= "=" . $pseudonym->key . ":${alias_assign}:-:" . $account->key . ":\n";
$OUT .= "+" . $pseudonym->key . "-:${alias_assign}:-:" . $account->key . ":\n";
next;
}
if ($account->prop('type') eq "system" )
{
$OUT .= "=" . $pseudonym->key . ":${admin_assign}:::\n";
$OUT .= "+" . $pseudonym->key . "-:${admin_assign}:-::\n";
next;
}
}
# Need to remove the final newline character. Blank lines in
# /var/qmail/users/assign are prohibited.
chomp($OUT);
# Failsafe: /var/qmail/users/assign cannot have blank lines.
# Therefore, if $OUT is empty, simply set up an assign for the
# alias user.
$OUT = "=alias:${alias_assign}:::" unless $OUT;
}

View File

@@ -1,51 +0,0 @@
{
$OUT = '';
# Generate qmail user assignments for groups. These will be handled
# by ~alias/.qmail-groupname and ~alias/.qmail-groupname-ext.
my (undef, undef, $uid, $gid, undef, undef, undef, $dir, undef)
= getpwnam("alias");
# It is almost impossible to get Text::Template to output nothing
# on failure. It can be done by removing the newline at the end of
# this file but that is messy. Therefore, we'll simply return an
# error message that will make qmail-newu fail. Also send a
# warning message that will be captured in the logs.
unless (defined $uid && defined $gid && defined $dir)
{
my $msg =
"Failed to obtain user details for \'alias\' "
. "while processing group assignments.";
warn "$msg\n";
$OUT = $msg;
return;
}
my $alias_assign = "alias:${uid}:${gid}:${dir}";
use esmith::AccountsDB;
my $adb = esmith::AccountsDB->open_ro();
foreach $group ( $adb->groups )
{
# Assign mail for group@
$OUT .= "=" . $group->key . ":${alias_assign}:-:" . $group->key . ":\n";
# Assign mail for group-ext@
$OUT .= "+" . $group->key . "-:${alias_assign}:-" . $group->key . "-::\n";
}
# Need to remove the final newline character. Blank lines in
# /var/qmail/users/assign are prohibited.
chomp($OUT);
# Failsafe: /var/qmail/users/assign cannot have blank lines.
# Therefore, if $OUT is empty, simply set up an assign for the
# alias user.
$OUT = "=alias:${alias_assign}:::" unless $OUT;
}

View File

@@ -1 +0,0 @@
../var/service/qmail

View File

@@ -1,15 +0,0 @@
[Unit]
Description=qmail, message transfer agent
After=network.target
Requires=runit.service
[Service]
Type=oneshot
ExecStartPre=/sbin/e-smith/service-status qmail
ExecStart=/usr/bin/sv u /service/qmail
ExecStop=/usr/bin/sv stop /service/qmail
ExecReload=/usr/bin/sv t /service/qmail
RemainAfterExit=yes
[Install]
WantedBy=sme-server.target

View File

@@ -0,0 +1 @@
127.0.0.1

View File

@@ -1,30 +0,0 @@
#!/bin/sh
#----------------------------------------------------------------------
# copyright (C) 2001 e-smith, inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
#
# Technical support for this program is available from e-smith, inc.
# Please visit our web site www.e-smith.com for details.
#----------------------------------------------------------------------
NUM=$(/sbin/e-smith/db configuration getprop qmail KeepLogFiles)
exec \
/usr/bin/setuidgid qmaill \
/usr/bin/multilog t s5000000 \
n${NUM:-10} \
/var/log/qmail

View File

@@ -1,32 +0,0 @@
#!/bin/sh
#----------------------------------------------------------------------
# copyright (C) 2002-2006 Mitel Networks Corporation
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
#
#----------------------------------------------------------------------
if [ ! -f /var/qmail/queue/lock/tcpto ]
then
dd bs=1024 count=1 if=/dev/zero of=/var/qmail/queue/lock/tcpto
chown qmailr:qmail /var/qmail/queue/lock/tcpto
chmod 644 /var/qmail/queue/lock/tcpto
fi
exec \
/usr/bin/env - PATH="/var/qmail/bin:/bin:/usr/bin:/usr/local/bin" \
/var/qmail/bin/qmail-start \
./Maildir/ \
2>&1