exiacl.pl
changeset 13 ce3163d69ea6
parent 12 1f683c5eef8f
child 14 dd2a6d48b046
equal deleted inserted replaced
12:1f683c5eef8f 13:ce3163d69ea6
    40 sub exim_option($);
    40 sub exim_option($);
    41 sub read_exim($);
    41 sub read_exim($);
    42 sub write_exim($@);
    42 sub write_exim($@);
    43 sub addr(@);
    43 sub addr(@);
    44 sub hostname() { chomp (my $h = `hostname -f`); return $h;  }
    44 sub hostname() { chomp (my $h = `hostname -f`); return $h;  }
       
    45 sub findExim() { $_ = `which exim` || `which exim4`; chomp; $_ }
    45 
    46 
    46 use constant ME => basename $0;
    47 use constant ME => basename $0;
    47 use constant HOSTNAME => hostname;
    48 use constant HOSTNAME => hostname;
    48 use constant CONFIG => (
    49 use constant CONFIG => (
    49     { CASE => 1 },
    50     { CASE => 1 },
    59     To	    => { ARGS => "=s" },
    60     To	    => { ARGS => "=s" },
    60 
    61 
    61     src	    => { ARGS => "=s", DEFAULT => "172.20.1.8"  },
    62     src	    => { ARGS => "=s", DEFAULT => "172.20.1.8"  },
    62     dst	    => { ARGS => "=s"  },		    # exim primary_hostname
    63     dst	    => { ARGS => "=s"  },		    # exim primary_hostname
    63 
    64 
    64     exim    => { ARGS => "=s", DEFAULT => $ENV{EXIM} || "exim" },
    65     exim    => { ARGS => "=s", DEFAULT => $ENV{EXIM} || findExim },
    65     config  => { ARGS => "=s", DEFAULT => $ENV{EXIM_CONF} || "/etc/exim/exim.conf.t" , 
    66     config  => { ARGS => "=s", DEFAULT => $ENV{EXIM_CONF} || "/etc/exim/exim.conf.t" , 
    66 		 ALIAS => "C" },
    67 		 ALIAS => "C" },
    67 
       
    68 
    68 
    69     callout =>	{ ARGS => "!", DEFAULT => 1 },
    69     callout =>	{ ARGS => "!", DEFAULT => 1 },
    70     help    => { ARGS => "!" },
    70     help    => { ARGS => "!" },
    71 
    71 
    72 );
    72 );
    73 
    73 
    74 
    74 
    75 
    75 
    76 my $Cf;
    76 my $Cf;
    77 $Cf = new AppConfig CONFIG or die;
    77 $Cf = new AppConfig CONFIG or die;
       
    78     $Cf->exim				    or die "No exim binary found\n";
    78     $Cf->dst(addr(exim_option("primary_hostname")));
    79     $Cf->dst(addr(exim_option("primary_hostname")));
    79     $Cf->getopt(qw(pass_through no_ignore_case)) or die $@;
    80     $Cf->getopt(qw(pass_through no_ignore_case)) or die $@;
    80 
    81 
    81     $Cf->From($Cf->from)		    unless $Cf->From;
    82     $Cf->From($Cf->from)		    unless $Cf->From;
    82     $Cf->To($Cf->to)			    unless $Cf->To;
    83     $Cf->To($Cf->to)			    unless $Cf->To;