#!/usr/bin/perl

$USER = $ENV{USER};
$HOME = $ENV{HOME};
$LOCAL = $ENV{LOCAL};
$NAME = 'Mark Dominus';
$HOST = 'plover.com';

$MAXSUBJ = 40;

use Carp;
use Fcntl ':flock';

my $FROM  = 'mjd-newphone-discard@plover.com';

$LOGFILE = '/tmp/qphone';
$SUMMARY = '/tmp/qphone-summary';

unless ($^P) {
  open(STDERR, ">> $LOGFILE") or defer("Couldn't open logfile: $!");
  flock STDERR, LOCK_EX or defer("Couldn't lock logfile: $!");
  print STDERR "\nStarting with pid $$ at time ", scalar(localtime()), "\n";
  open(SUMMARY, ">> $SUMMARY") or defer("Couldn't open summary file: $!");
}

my $return = $ENV{EXT2};
print SUMMARY scalar(localtime()), " ", $return, "\n";
close SUMMARY;
warn "EXT2 was '$return'\n";
exit if $return eq 'discard';
unless ($return =~ tr{=}{@}) {
  warn "No \@ signs; discarding.\n";
  exit;
}
warn "Converted return address to '$return'\n";

chomp($ddate = `ddate`);

inject($FROM);
print INJECT "Precedence: Bulk\n" ;
print INJECT "To: $return\n";
print INJECT "From: Mark Dominus Phone Server <$FROM>\n";
print INJECT "Subject: New phone numbers for Mark Dominus\n";
print INJECT "X-Discordian-Date: $ddate\n";
print INJECT "\n";
print INJECT qx{cat /home/mjd/lib/vacation/newphone.msg};
close INJECT;

exit;

sub inject {
  my $from = shift;
  my $fromarg = defined($from) ? qq{-f '$from'} : "";
  warn "Injecting: from=.$from.; fromarg=.$fromarg.\n";
  unless (open(INJECT, "| /var/qmail/bin/qmail-inject $fromarg")) {
    &defer("Oh no!  Couldn't run qmail-inject: $! . Deferring...\n");
  }
}


sub defer {
  my $msg = shift;
  carp $msg;
  if (open (TMP, "> /tmp/MESSAGE")) {
    print TMP $MESSAGE;
  }
  exit 111;
}


