If a server's certificate isn't accepted by send-email, the output is:
Unable to initialize SMTP properly. Check config and use --smtp-debug.
but adding --smtp-debug=1 just produces the same output since we don't get as far as talking SMTP.
Turning on SSL debug at level 1 gives:
DEBUG: .../IO/Socket/SSL.pm:1796: SSL connect attempt failed error:14090086:SSL routines:ssl3_get_server_certificate:certificate verify failed DEBUG: .../IO/Socket/SSL.pm:673: fatal SSL error: SSL connect attempt failed error:14090086:SSL routines:ssl3_get_server_certificate:certificate verify failed DEBUG: .../IO/Socket/SSL.pm:1780: IO::Socket::IP configuration failed
IO::Socket::SSL defines level 1 debug as "print out errors from IO::Socket::SSL and ciphers from Net::SSLeay". In fact, it aliases Net::SSLeay::trace which is defined to guarantee silence at level 0 and only emit error messages at level 1, so let's enable it by default.
Signed-off-by: John Keeping <john@keeping.me.uk> --- This is the result of a previous discussion [0] but I decided to drop the switch on --smtp-debug since level 1 only gives output on errors.
[0] http://marc.info/?l=git&m=144840344331208&w=2
git-send-email.perl | 1 + 1 file changed, 1 insertion(+)
Show changes to git-send-email.perl +1 −0
diff --git a/git-send-email.perl b/git-send-email.perl index e907e0e..918aafa 100755 --- a/git-send-email.perl +++ b/git-send-email.perl @@ -1318,6 +1318,7 @@ Message-Id: $message_id require Net::SMTP::SSL; $smtp_domain ||= maildomain(); require IO::Socket::SSL; + $IO::Socket::SSL::DEBUG = 1; # Net::SMTP::SSL->new() does not forward any SSL options IO::Socket::SSL::set_client_defaults( ssl_verify_params());
-- 2.6.3.462.gbe2c914