68 lines
1.5 KiB
Perl
68 lines
1.5 KiB
Perl
# --
|
|
# Copyright (C) 2001-2019 OTRS AG, https://otrs.com/
|
|
# --
|
|
# This software comes with ABSOLUTELY NO WARRANTY. For details, see
|
|
# the enclosed file COPYING for license information (GPL). If you
|
|
# did not receive this file, see https://www.gnu.org/licenses/gpl-3.0.txt.
|
|
# --
|
|
|
|
package Kernel::System::Email::SMTPTLS;
|
|
|
|
use strict;
|
|
use warnings;
|
|
|
|
use Net::SMTP;
|
|
|
|
use parent qw(Kernel::System::Email::SMTP);
|
|
|
|
our @ObjectDependencies = (
|
|
'Kernel::System::Log',
|
|
);
|
|
|
|
# Use Net::SSLGlue::SMTP on systems with older Net::SMTP modules that cannot handle SMTPTLS.
|
|
BEGIN {
|
|
if ( !defined &Net::SMTP::starttls ) {
|
|
## nofilter(TidyAll::Plugin::OTRS::Perl::Require)
|
|
## nofilter(TidyAll::Plugin::OTRS::Perl::SyntaxCheck)
|
|
require Net::SSLGlue::SMTP;
|
|
}
|
|
}
|
|
|
|
sub _Connect {
|
|
my ( $Self, %Param ) = @_;
|
|
|
|
# check needed stuff
|
|
for (qw(MailHost FQDN)) {
|
|
if ( !$Param{$_} ) {
|
|
$Kernel::OM->Get('Kernel::System::Log')->Log(
|
|
Priority => 'error',
|
|
Message => "Need $_!"
|
|
);
|
|
return;
|
|
}
|
|
}
|
|
|
|
# Remove a possible port from the FQDN value
|
|
my $FQDN = $Param{FQDN};
|
|
$FQDN =~ s{:\d+}{}smx;
|
|
|
|
# set up connection connection
|
|
my $SMTP = Net::SMTP->new(
|
|
$Param{MailHost},
|
|
Hello => $FQDN,
|
|
Port => $Param{SMTPPort} || 587,
|
|
Timeout => 30,
|
|
Debug => $Param{SMTPDebug},
|
|
);
|
|
|
|
return if !$SMTP;
|
|
|
|
$SMTP->starttls(
|
|
SSL_verify_mode => 0,
|
|
);
|
|
|
|
return $SMTP;
|
|
}
|
|
|
|
1;
|