私は数日間は検索しましたが、最終的にオプションがなくなりました。クライアントの1人がメールアカウントを"outlook.office365.com "、私のperlスクリプトはすべてプラットフォーム上で異なる設定をしているので失敗するので、すべてのスクリプトを書き直して、すべての作業をやり直す必要がありました。モジュールで電子メールを送ることができました" Email: :Sender :: Transport :: SMTP :: TLS "しかし、私は以前のモジュールを使って、同じメールアドレスを" Mail :: POP3Client "のように読んで処理しませんでした。Perlモジュールでメールを処理するためにoutlook.office365.comに接続できませんMail :: IMAPClient
これは試してみるのコードです:
use Mail::IMAPClient;
use Email::MIME;
my $username = 'user';
my $password = 'pass';
my $server = 'outlook.office365.com';
print "Anon connect to IMAP\n";
my $imap = Mail::IMAPClient->new(
Server => $server,
Username => $username,
Password => $password,
Port => 993,
Ssl => 1,
Authmechanism => "PLAIN",
Debug => 1,
)or die "Cannot connect to $mailhost as $username: [email protected]";
print "upgrading connection to TLS \n";
$imap->starttls
(
SSL_verify_mode => 0,
) or die "starttls failed: [email protected]\n";
$imap->User($username);
$imap->Password($password);
print "Logging In\n";
$imap->login() or die "imap login failed: [email protected]\n";
これは私がstackoverflowの上で発見したソリューションですが、それは私のために働くdoes notの、私は私のファイアウォール設定を確認し、すべてがOKです。
これが出力されます。
Anon connect to IMAP
Started at Fri Dec 16 13:54:25 2016
Using Mail::IMAPClient version 3.38 on perl 5.022001
Connecting with IO::Socket::SSL PeerAddr outlook.office365.com PeerPort 993 Proto tcp Timeout 600 Debug 1
ERROR: Unable to connect to outlook.office365.com: at C:/Perl64/site/lib/Mail/IMAPClient.pm line 370.
Mail::IMAPClient::connect(Mail::IMAPClient=HASH(0xcac170)) called at C:/Perl64/site/lib/Mail/IMAPClient.pm line 314
Mail::IMAPClient::new("Mail::IMAPClient", "Server", "outlook.office365.com", "Username", "user", "Password", "pass", "Port", 993, ...) called at dont.pl line 10
Cannot connect to as user: Unable to connect to outlook.office365.com: at dont.pl line 10.
私のSSL接続を確認するには:
openssl s_client -connect outlook.office365.com:993
結果:
* OK The Microsoft Exchange IMAP4 service is ready.
ので、任意のアイデア?このコードで何が間違っているの?
おそらく、モジュールによって返されたメッセージが不明ですか?あなたは分割しようとする可能性があります:最初にオブジェクトを作成し、次に接続して認証します。さらに、すでにオブジェクトがある場合、モジュールのドキュメントは、より多くのエラーにアクセスできることを示しています。 –
何かがあるかもしれません。ユーザー名とパスワードを使わずにコードを使用すると、「読み取り:* OK Microsoft Exchange IMAP4サービスが利用可能です」という行が表示されます。あなたの資格情報は確かですか? –
私はあなたがなぜ接続できないのか分かりませんが、 'starttls'呼び出しは冗長で、エラーも発生します。あなたの接続はすでに安全です。 – Max