This commit is contained in:
garnier-quentin 2020-02-07 11:52:11 +01:00
parent b0af945571
commit 69ed1e62a4

View File

@ -44,29 +44,36 @@ sub message {
my $result; my $result;
eval { eval {
local $SIG{ALRM} = sub { die 'timeout' }; local $SIG{ALRM} = sub { die 'timeout' };
alarm($self->{option_results}->{timeout}); alarm($self->{option_results}->{timeout});
$result = $smtp_handle->send(-to => $self->{option_results}->{smtp_to}, $result = $smtp_handle->send(
-from => $self->{option_results}->{smtp_from}, -to => $self->{option_results}->{smtp_to},
%smtp_options); -from => $self->{option_results}->{smtp_from},
%smtp_options
alarm(0); );
alarm(0);
}; };
if ($@) { if ($@) {
$self->{output}->output_add(severity => 'unknown', $self->{output}->output_add(
short_msg => 'Unable to send message: ' . $@); severity => 'unknown',
short_msg => 'Unable to send message: ' . $@
);
$self->{output}->display(); $self->{output}->display();
$self->{output}->exit(); $self->{output}->exit();
} }
if ($result == -1) { if ($result == -1) {
$self->{output}->output_add(severity => 'critical', $self->{output}->output_add(
short_msg => 'Unable to send message.'); severity => 'critical',
short_msg => 'Unable to send message.'
);
$self->{output}->display(); $self->{output}->display();
$self->{output}->exit(); $self->{output}->exit();
} }
$self->{output}->output_add(severity => 'ok', $self->{output}->output_add(
short_msg => 'Message sent'); severity => 'ok',
short_msg => 'Message sent'
);
} }
sub connect { sub connect {
@ -98,30 +105,37 @@ sub connect {
my ($stdout, $error_msg); my ($stdout, $error_msg);
{ {
eval { eval {
local $SIG{ALRM} = sub { die 'timeout' }; local $SIG{ALRM} = sub { die "timeout\n" };
local *STDOUT; local *STDOUT;
open STDOUT, '>', \$stdout; open STDOUT, '>', \$stdout;
alarm($self->{option_results}->{timeout}); alarm($self->{option_results}->{timeout});
($smtp_handle, $error_msg) = Email::Send::SMTP::Gmail->new(-smtp=> $self->{option_results}->{hostname}, ($smtp_handle, $error_msg) = Email::Send::SMTP::Gmail->new(
%smtp_options); -smtp=> $self->{option_results}->{hostname},
%smtp_options
);
alarm(0); alarm(0);
}; };
} }
if ($@) { if ($@) {
$self->{output}->output_add(severity => $connection_exit, chomp $@;
short_msg => 'Unable to connect to SMTP: ' . $@); $self->{output}->output_add(
severity => $connection_exit,
short_msg => 'Unable to connect to SMTP: ' . $@
);
$self->{output}->display(); $self->{output}->display();
$self->{output}->exit(); $self->{output}->exit();
} }
if ($smtp_handle == -1) { if ($smtp_handle == -1) {
chomp $stdout; chomp $stdout;
$self->{output}->output_add(severity => $connection_exit, $self->{output}->output_add(
short_msg => 'Unable to connect to SMTP: ' . (defined($stdout) ? $stdout : $error_msg)); severity => $connection_exit,
short_msg => 'Unable to connect to SMTP: ' . (defined($stdout) ? $stdout : $error_msg)
);
$self->{output}->display(); $self->{output}->display();
$self->{output}->exit(); $self->{output}->exit();
} }
$connected = 1; $connected = 1;
} }