/usr/local/CPAN/oEdtk/oEdtk/Messenger.pm


package oEdtk::Messenger;

use strict;
use warnings;

use Email::Sender::Simple 		qw(sendmail);
use Email::Sender::Transport::SMTP;
use oEdtk::Config			qw(config_read);

use Exporter;
our $VERSION	= 0.001;
our @ISA	= qw(Exporter);
our @EXPORT_OK	= qw(oe_send_mail);


sub oe_send_mail {
	my ($to, $subject, @body) = @_;
	my $cfg = config_read('MAIL');
	$subject ||=$0;
	$subject = $cfg->{'EDTK_TYPE_ENV'} . " - $subject ";

	my $transport = Email::Sender::Transport::SMTP->new({
		host => $cfg->{'EDTK_MAIL_SMTP'}
	});
	
	my $email = Email::Simple->create(
		header => [
			To	=> $to 		|| $cfg->{'EDTK_MAIL_SENDER'}, 
			From	=> $cfg->{'EDTK_MAIL_SENDER'}, 
			Subject	=> $subject 	|| $0
		],
		body => join('', @body)
	);
	
	# Useful for testing.
	if ($cfg->{'EDTK_MAIL_SMTP'} eq 'warn') {
		print $email->as_string() . "\n" ;
	} else {
		eval { sendmail($email, { transport => $transport }); } ;
		if ($@) {
			die "ERROR: sendmail failed. Reason is $@\n";
		}
	}
}