################################################################################
#
# File: $RCSfile: MAPSDeliver,v $
-# Revision: $Revision: 1.1 $
+# Revision: $Revision: 1.1 $
# Description: This script simply delivers the mail. It is separated out so
-# it can be the only portion that is setgid to the group mail
-# for the purposes of being able to deliver the mail to the users
-# maildrop
+# it can be the only portion that is setgid to the group mail
+# for the purposes of being able to deliver the mail to the users
+# maildrop
# Author: Andrew@DeFaria.com
# Created: Fri Nov 29 14:17:21 2002
# Modified: $Date: 2013/06/12 14:05:47 $
use strict;
use warnings;
-use English;
use FindBin;
-# Untaint $FindBin::Bin
-my $lib;
-
-BEGIN {
- if ($FindBin::Bin =~ /^(.*)$/) {
- $lib = $1;
- } # if
-} # BEGIN
-
-use lib $lib;
+use lib "$FindBin::Bin/../lib";
use MAPSFile;
-use MAPSDB;
+use MAPS;
use MAPSLog;
-sub DeliverMail ($$) {
+sub DeliverMail($$) {
my ($userid, $msgfileName) = @_;
- # Switch to group mail
- $EGID = getgrnam "mail";
-
- # Untaint $userid
- if ($userid =~ /^([-\@\w.]+)$/) {
- $userid = $1;
- } # if
-
# Open maildrop file
open my $maildrop, '>>', "/var/mail/$userid"
or return "Unable to open maildrop file (/var/mail/$userid): $!";
Lock $maildrop;
# Write msgfile -> $maildrop
- print $maildrop "\n";
- print $maildrop $_
- while (<$msgfile>);
+ print $maildrop "\n\n";
+ print $maildrop $_ while (<$msgfile>);
# Unlock the file
Unlock $maildrop;
} # DeliverMail
# Main
-die 'User id not specified' unless $ARGV [0];
-die 'Msgfile not specified' unless $ARGV [1];
+my ($userid, $msgfile) = @ARGV;
-my $userid = shift @ARGV;
-my $msgfile = shift @ARGV;
+die 'User id not specified' unless $userid;
+die 'Msgfile not specified' unless $msgfile;
-my $err = DeliverMail $userid, $msgfile;
+my $err = DeliverMail($userid, $msgfile);
if ($err) {
- OpenDB 'mapsadmin', 'mapsadmin';
+ OpenDB('maps', 'spam');
+
+ SetContext($userid);
- MAPSDB::SetContext $userid;
+ Error($err);
- Error $err;
+ exit 1;
} # if
-exit 1 if $err;
exit 0;