- my %smtp_opt = ( 'host' => $conf->config('smtpmachine'),
- 'helo' => $domain,
- );
-
- my($port, $enc) = split('-', ($conf->config('smtp-encryption') || '25') );
- $smtp_opt{'port'} = $port;
-
- my $error = '';
- my $transport;
- if ( defined($enc) && $enc eq 'starttls' ) {
- foreach (qw(username password)) {
- $smtp_opt{$_} = $conf->config("smtp-$_");
- $error = "SMTP settings misconfiguration: ".
- "STARTTLS enabled in smtp-encryption but smtp-$_ missing"
- if ! length($smtp_opt{$_});
- }
- $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 );
- }
-