http://www.perlmonks.org?node_id=11106300


in reply to Re: Accessing IMAP-Server Outlook.office365.com via Perl
in thread Accessing IMAP-Server Outlook.office365.com via Perl

#!/usr/local/bin/perl -w use Net::IMAP::Simple; use Date::Parse; my $imap_server = '40.101.136.18'; printf $imap_server; printf "\n"; if (!($imap_con = new Net::IMAP::Simple($imap_server, find_ssl_default +s=>[]))) { print "The Server is not available. \n"; exit; } my $user = 'USER'; my $password = qq(PW); if (!($imap_con->login($user, $password))) { print "invalid Login: ". $imap_con->errstr ."\n"; exit; } $imap_con->quit(); print "login possible. \n"; exit;

This is the small "Test"-Script I am using to see if I can login. It's basically c&p from how I invoked the methods in the previous script and "errstr" always returns "Command received in invalid state".

Replies are listed 'Best First'.
Re^3: Accessing IMAP-Server Outlook.office365.com via Perl
by talexb (Canon) on Sep 17, 2019 at 16:19 UTC

    I highly recommend you look at the module page on CPAN here and follow the example code more closely. You're ignoring the return status of your calls, and that's going to make it virtually impossible to understand what's failing.

    Alex / talexb / Toronto

    Thanks PJ. We owe you so much. Groklaw -- RIP -- 2003 to 2013.

Re^3: Accessing IMAP-Server Outlook.office365.com via Perl
by TieUpYourCamel (Sexton) on Sep 17, 2019 at 18:30 UTC
    This seems to work, although I'd give the same warning about blindly accepting the SSL certificate as they do on https://metacpan.org/pod/distribution/Net-IMAP-Simple/lib/Net/IMAP/Simple.pm#new
    #!/usr/local/bin/perl -w use Net::IMAP::Simple; use Date::Parse; my $imap_server = '40.101.136.18'; printf $imap_server; printf "\n"; if (!($imap_con = new Net::IMAP::Simple($imap_server, port => 993, use +_ssl => 'true'))) { print "The Server is not available. $Net::IMAP::Simple::errstr +\n"; exit; } my $user = ''; my $password = ''; if (!($imap_con->login($user, $password))) { print "invalid Login: ". $imap_con->errstr ."\n"; exit; } $imap_con->quit(); print "login possible. \n"; exit;
    You might consider using Email::Folder::Exchange