# -- # 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::MailAccount::IMAPS; use strict; use warnings; # There are currently errors on Perl 5.20 on Travis, disable this check for now. ## nofilter(TidyAll::Plugin::OTRS::Perl::SyntaxCheck) use IO::Socket::SSL; use parent qw(Kernel::System::MailAccount::IMAP); our @ObjectDependencies = ( 'Kernel::System::Log', ); sub Connect { my ( $Self, %Param ) = @_; # check needed stuff for (qw(Login Password Host Timeout Debug)) { if ( !defined $Param{$_} ) { return ( Successful => 0, Message => "Need $_!", ); } } my $Type = 'IMAPS'; # connect to host my $IMAPObject = Net::IMAP::Simple->new( $Param{Host}, timeout => $Param{Timeout}, debug => $Param{Debug}, use_ssl => 1, ssl_options => [ SSL_verify_mode => IO::Socket::SSL::SSL_VERIFY_NONE(), ], ); if ( !$IMAPObject ) { return ( Successful => 0, Message => "$Type: Can't connect to $Param{Host}" ); } # authentication my $Auth = $IMAPObject->login( $Param{Login}, $Param{Password} ); if ( !defined $Auth ) { $IMAPObject->quit(); return ( Successful => 0, Message => "$Type: Auth for user $Param{Login}/$Param{Host} failed!" ); } return ( Successful => 1, IMAPObject => $IMAPObject, Type => $Type, ); } 1;