--- SMTP.pm.orig 2018-01-24 22:49:26.000000000 -0500 +++ SMTP.pm 2018-04-23 13:09:56.206166400 -0400 @@ -10,6 +10,7 @@ #use Mail::Sender; # something to consider use Sys::Hostname; use POSIX; +use IO::Socket::SSL; use parent 'Mail::DMARC::Base'; @@ -43,7 +44,7 @@ my $smtp = Net::SMTP->new( [ $self->get_smtp_hosts($to) ], - Timeout => 10, + Timeout => 30, Port => 25, Hello => $self->get_helo_hostname, Debug => $self->verbose ? 1 : 0, @@ -61,19 +62,26 @@ my $smtp = Net::SMTPS->new( [ $self->get_smtp_hosts($to) ], - Timeout => 12, + Timeout => 30, Port => $self->config->{smtp}{smarthost} ? 587 : 25, Hello => $self->get_helo_hostname, Debug => $self->verbose ? 1 : 0, + SSL_verify_mode => SSL_VERIFY_NONE, ) or do { warn "SSL connection failed\n"; ## no critic (Carp) return; }; + my $tls_supported = $smtp->supports('STARTTLS'); if ( defined ( $tls_supported ) ) { $smtp->starttls(); + $smtp->hello($self->get_helo_hostname); # Some servers expect a Hello after starttls. + if ( $smtp->code =~ /^5/ ) { + warn "server does not support STARTTLS\n"; ## no critic (Carp) + return; + } } else { warn "server does not support STARTTLS\n"; ## no critic (Carp)