git-send-email.perl: add option --smtp-debug
authorJari Aalto <jari.aalto@cante.net>
Sun, 14 Mar 2010 15:16:09 +0000 (17:16 +0200)
committerJunio C Hamano <gitster@pobox.com>
Sun, 14 Mar 2010 20:02:47 +0000 (13:02 -0700)
Signed-off-by: Jari Aalto <jari.aalto@cante.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
git-send-email.perl
index 221506c3ed8b55eeb64dc0e01298a0b5d7bf4085..a8887ea6da0373ab41c45a7472ac6cb18c1f2011 100755 (executable)
@@ -64,6 +64,7 @@ sub usage {
     --smtp-pass             <str>  * Password for SMTP-AUTH; not necessary.
     --smtp-encryption       <str>  * tls or ssl; anything else disables.
     --smtp-ssl                     * Deprecated. Use '--smtp-encryption ssl'.
+    --smtp-debug            <0|1>  * Disable, enable Net::SMTP debug.
 
   Automating:
     --identity              <str>  * Use the sendemail.<id> options.
@@ -187,6 +188,8 @@ sub do_edit {
 my ($validate, $confirm);
 my (@suppress_cc);
 
+my ($debug_net_smtp) = 0;              # Net::SMTP, see send_message()
+
 my $not_set_by_user = "true but not set by the user";
 
 my %config_bool_settings = (
@@ -270,6 +273,7 @@ sub signal_handler {
                    "smtp-pass:s" => \$smtp_authpass,
                    "smtp-ssl" => sub { $smtp_encryption = 'ssl' },
                    "smtp-encryption=s" => \$smtp_encryption,
+                   "smtp-debug:i" => \$debug_net_smtp,
                    "identity=s" => \$identity,
                    "annotate" => \$annotate,
                    "compose" => \$compose,
@@ -938,7 +942,8 @@ sub send_message
                        require Net::SMTP;
                        $smtp ||= Net::SMTP->new((defined $smtp_server_port)
                                                 ? "$smtp_server:$smtp_server_port"
-                                                : $smtp_server);
+                                                : $smtp_server,
+                                                Debug => $debug_net_smtp);
                        if ($smtp_encryption eq 'tls' && $smtp) {
                                require Net::SMTP::SSL;
                                $smtp->command('STARTTLS');
@@ -957,7 +962,7 @@ sub send_message
                }
 
                if (!$smtp) {
-                       die "Unable to initialize SMTP properly. Check config. ",
+                       die "Unable to initialize SMTP properly. Check config and use --smtp-debug. ",
                            "VALUES: server=$smtp_server ",
                            "encryption=$smtp_encryption ",
                            defined $smtp_server_port ? "port=$smtp_server_port" : "";