X-Git-Url: http://git.freeside.biz/gitweb/?p=freeside.git;a=blobdiff_plain;f=FS%2FFS%2Fmsg_template%2Femail.pm;fp=FS%2FFS%2Fmsg_template%2Femail.pm;h=53a13aebcf272d1bc90c63fbe6b920e690bf2c65;hp=c2c370760bc65650679a62c71ae4c76f9a4b7af8;hb=103dfde149eec5034696d073253255f508a1be78;hpb=c2dbe36096332d1e09bc58d7d9903e05247f0c9b diff --git a/FS/FS/msg_template/email.pm b/FS/FS/msg_template/email.pm index c2c370760..53a13aebc 100644 --- a/FS/FS/msg_template/email.pm +++ b/FS/FS/msg_template/email.pm @@ -19,6 +19,7 @@ use Encode; use FS::Misc qw( generate_email ); use FS::Conf; use Email::Sender::Simple qw( sendmail ); +use Email::Sender::Transport::SMTP; use FS::Record qw( qsearch qsearchs ); @@ -549,18 +550,20 @@ sub send_prepared { my($port, $enc) = split('-', ($conf->config('smtp-encryption') || '25') ); $smtp_opt{'port'} = $port; - my $transport; - if ( defined($enc) && $enc eq 'starttls' ) { - $smtp_opt{$_} = $conf->config("smtp-$_") for qw(username password); - $transport = Email::Sender::Transport::SMTP::TLS->new( %smtp_opt ); - } else { - if ( $conf->exists('smtp-username') && $conf->exists('smtp-password') ) { - $smtp_opt{"sasl_$_"} = $conf->config("smtp-$_") for qw(username password); - } - $smtp_opt{'ssl'} = 1 if defined($enc) && $enc eq 'tls'; - $transport = Email::Sender::Transport::SMTP->new( %smtp_opt ); + if ( $conf->exists('smtp-username') && $conf->exists('smtp-password') ) { + $smtp_opt{"sasl_$_"} = $conf->config("smtp-$_") for qw(username password); + } elsif ( defined($enc) && $enc eq 'starttls') { + $error = "SMTP settings misconfiguration: STARTTLS enabled in ". + "smtp-encryption but smtp-username or smtp-password missing"; + } + + if ( defined($enc) ) { + $smtp_opt{'ssl'} = 'starttls' if $enc eq 'starttls'; + $smtp_opt{'ssl'} = 1 if $enc eq 'tls'; } + my $transport = Email::Sender::Transport::SMTP->new( %smtp_opt ); + warn "$me sending message\n" if $DEBUG; my $message = join("\n", $cust_msg->header, $cust_msg->body); local $@;