X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FPromulger%2FDispatch.pm;h=b7fc749d82060128b39d9a2cf2af61e62bb83b60;hb=018a0a651c567c58ec56701b11d2741bfe640822;hp=2892cff8ccda46a950326d262af81d859ff29bfc;hpb=9e4ca6377faec49b4bd806f6fccdb907e279f8e9;p=p5sagit%2FPromulger.git diff --git a/lib/Promulger/Dispatch.pm b/lib/Promulger/Dispatch.pm index 2892cff..b7fc749 100644 --- a/lib/Promulger/Dispatch.pm +++ b/lib/Promulger/Dispatch.pm @@ -2,6 +2,7 @@ package Promulger::Dispatch; use Moo; use Method::Signatures::Simple; use autodie ':all'; +use Scalar::Util 'blessed'; use Email::Address; use Email::MIME; @@ -21,7 +22,17 @@ has transport => ( or die "transport must do Email::Sender::Transport role"; }, default => sub { - Email::Sender::Transport::Sendmail->new + my $config = Promulger::Config->config; + my $class; + if($class = $config->{mailer}) { + if($class !~ /::/) { + $class = "Email::Sender::Transport::${class}"; + } + } else { + $class = 'Email::Sender::Transport::Sendmail'; + } + Class::MOP::load_class($class); + $class->new; }, ); @@ -95,17 +106,6 @@ method post_message ($list, $email, $config) { } method send_message ($message) { - my $config = Promulger::Config->config; - my ($class, $transport); - if($class = $config->{mailer}) { - if($class !~ /::/) { - $class = "Email::Sender::Transport::${class}"; - } - } else { - $class = 'Email::Sender::Transport::Sendmail'; - } - Class::MOP::load_class($class); - $transport = $class->new; Email::Sender::Simple::sendmail( $message, {