Hi there,

This bug is still present and it's annoying that we can't use the plugin
with tls connections because of it. There hasn't been any movement
upstream for 8 years now unfortunately.

But, thanks to Jan's input, I've tried a simple workaround of just
commenting out all of the calls to the problematic $smtp->message()
calls and it made the script work again.

I'm attaching the patch that I used for the workaround.
--- /usr/lib/nagios/plugins/check_smtp_send.orig	2020-09-25 15:36:59.291283004 -0400
+++ /usr/lib/nagios/plugins/check_smtp_send	2020-09-25 15:37:38.739800192 -0400
@@ -149,26 +149,26 @@
 	if( $tls and $auth_method ) {
 		$smtp_port = $default_smtp_tls_port unless $smtp_port;
 		$smtp = TLS_auth->new($smtp_server, Timeout=>$timeout, Port=>$smtp_port, User=>$username, Password=>$password, Auth_Method=>$auth_method);
-		if( $smtp ) {
-			my $message = oneline($smtp->message());
-			die "cannot connect with TLS/$auth_method: $message" if $smtp->code() =~ m/53\d/;
-		}
+		#if( $smtp ) {
+		#	my $message = oneline($smtp->message());
+		#	die "cannot connect with TLS/$auth_method: $message" if $smtp->code() =~ m/53\d/;
+		#}
 	}
 	elsif( $tls ) {
 		$smtp_port = $default_smtp_tls_port unless $smtp_port;
 		$smtp = Net::SMTP::TLS->new($smtp_server, Timeout=>$timeout, Port=>$smtp_port, User=>$username, Password=>$password);
-		if( $smtp ) {
-			my $message = oneline($smtp->message());
-			die "cannot connect with TLS: $message" if $smtp->code() =~ m/53\d/;
-		}
+		#if( $smtp ) {
+		#	my $message = oneline($smtp->message());
+		#	die "cannot connect with TLS: $message" if $smtp->code() =~ m/53\d/;
+		#}
 	}
 	elsif( $ssl ) {
 		$smtp_port = $default_smtp_ssl_port unless $smtp_port;
 		$smtp = Net::SMTP::SSL->new($smtp_server, Port => $smtp_port, Timeout=>$timeout,Debug=>$smtp_debug);
 		if( $smtp && $username )  {
 			$smtp->auth($username, $password);
-			my $message = oneline($smtp->message());
-			die "cannot connect with SSL/password: $message" if $smtp->code() =~ m/53\d/;
+			#my $message = oneline($smtp->message());
+			#die "cannot connect with SSL/password: $message" if $smtp->code() =~ m/53\d/;
 		}	
 	}
 	elsif( $auth_method ) {
@@ -176,8 +176,8 @@
 		$smtp = Net::SMTP_auth->new($smtp_server, Port=>$smtp_port, Timeout=>$timeout,Debug=>$smtp_debug);	
 		if( $smtp ) {
 			$smtp->auth($auth_method, $username, $password);
-			my $message = oneline($smtp->message());
-			die "cannot connect with SSL/$auth_method: $message" if $smtp->code() =~ m/53\d/;
+			#my $message = oneline($smtp->message());
+			#die "cannot connect with SSL/$auth_method: $message" if $smtp->code() =~ m/53\d/;
 		}			
 	}
 	else {
@@ -185,8 +185,8 @@
 		$smtp = Net::SMTP->new($smtp_server, Port=>$smtp_port, Timeout=>$timeout,Debug=>$smtp_debug);	
 		if( $smtp && $username ) {
 			$smtp->auth($username, $password);
-			my $message = oneline($smtp->message());
-			die "cannot connect with password: $message" if $smtp->code() =~ m/53\d/;
+			#my $message = oneline($smtp->message());
+			#die "cannot connect with password: $message" if $smtp->code() =~ m/53\d/;
 		}	
 	}
 };

Attachment: signature.asc
Description: OpenPGP digital signature

Reply via email to