#!/usr/bin/perl

# A Hobbit client-side module to check the outgoing mail settings

use warnings;
use strict;
use Hobbit;

# Read the addresses to be tested from a config file

my $bb = new Hobbit('mail');
$bb->print("Mail configuration:\n\n");
my %testaddresses=();

# Perhaps we shouldn't use the default addresses
if (-e '/etc/hobbit/email-addresses') {
 eval `cat /etc/hobbit/email-addresses` || die ("Cannot parse config file");
}
if (keys(%testaddresses)==0) {
 %testaddresses=('user'=>'user@example.com',
                 'root'=>'root@example.com',
                 'elsewhere@site2.example.com'=>'elsewhere@site2.example.com');
} else {
 $bb->print('Using configuration from /etc/hobbit/email-addresses');
}

if (! -x '/usr/sbin/exim4' ) {
        $bb->color_line('red','Exim4 binary not found');
}

while  (my ($key,$value) = each(%testaddresses)) {
 my @output=`/usr/sbin/exim4 -bt $key 2>/dev/null`;
 chomp ($output[0]);
 if ($output[0] eq $value) {
  $bb->color_line('green',"'$key' correctly points to '$value'\n");
 } else {
  $bb->color_line('red',"'$key' points to '$output[0]' not '$value'\n");
 }
}

$bb->send;
