首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Mail::IMAPClient将Perl IMAP连接到Exchange?

使用Mail::IMAPClient将Perl IMAP连接到Exchange?
EN

Stack Overflow用户
提问于 2011-11-12 05:15:25
回答 1查看 6.9K关注 0票数 2

尝试使用Mail::IMAPClient连接到Exchange时,不断收到无法登录的消息。根据我所读到的,一切都应该是可行的。我已经让它连接到Gmail,但尝试连接到MS Exchange似乎更难。是什么原因导致它在身份验证时失败?

代码语言:javascript
复制
use strict;
use warnings;
use Authen::NTLM;
use Mail::IMAPClient;

## Option variables
my $debug 
my $authmech = "NTLM";
my $username = "useraccount";
my $password = "set by prompt;

## Settings for connecting to IMAP server
my $imap = Mail::IMAPClient->new(
    Server            => 'mail.server.domain',
    User              => $username,
    Password         => $password,
    Port              => 993,
    Ssl                => 1,
    Authmechanism  => $authmech,
    Debug => 1
) or die "Cannot connect through IMAPClient: $@\n";

运行脚本的输出。

代码语言:javascript
复制
~]./status_page_msg.pl -d

Logging in as : user_account

Started at Sat Nov 12 19:20:11 2011
Using Mail::IMAPClient version 3.29 on perl 5.008008
Connecting via IO::Socket::SSL to mail.server.domain:993 Timeout 600
Connected to mail.server.domain
Read:   * OK The Microsoft Exchange IMAP4 service is ready - 'serverName'
Sending: 1 AUTHENTICATE NTLM
Sent 21 bytes
Read:   +
Sending: TlRMTVNTUAABAAAAB6IAAAoACgAgAAAAAAAAAAoAAABlYW0tc3RhdHVz
Sent 58 bytes
Read:   1 NO AUTHENTICATE failed.
ERROR: 1 NO AUTHENTICATE failed. at /usr/lib/perl5/site_perl/5.8.8/Mail/IMAPClient.pm line 3047
        Mail::IMAPClient::authenticate('Mail::IMAPClient=HASH(0x1ac95440)', 'NTLM', 'undef') called at /usr/lib/perl5/site_perl/5.8.8/Mail/IMAPClient.pm line 443
        Mail::IMAPClient::login('Mail::IMAPClient=HASH(0x1ac95440)') called at /usr/lib/perl5/site_perl/5.8.8/Mail/IMAPClient.pm line 395
        Mail::IMAPClient::Socket('Mail::IMAPClient=HASH(0x1ac95440)', 'IO::Socket::SSL=GLOB(0x1b43e110)') called at /usr/lib/perl5/site_perl/5.8.8/Mail/IMAPClient.pm line 351
        Mail::IMAPClient::connect('Mail::IMAPClient=HASH(0x1ac95440)') called at /usr/lib/perl5/site_perl/5.8.8/Mail/IMAPClient.pm line 307
        Mail::IMAPClient::new('Mail::IMAPClient', 'Server', 'mail.server.domain', 'User', 'user_account', 'Password', 'Correct', 'Port', 993, ...) called at ./status_page_msg.pl line 63
Cannot connect through IMAPClient: 1 NO AUTHENTICATE failed.
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-11-12 08:12:53

您应该说它以前可以工作,但在服务器升级到Exchange 2010后停止工作。

在谷歌上快速搜索"Exchange 2010 NTLM IMAP“,就会出现Discontinued Features from Exchange 2007 to Exchange 2010

Exchange2010RTM中的

或IMAP4客户端连接不支持Exchange。使用NTLM从POP3或IMAP4客户端程序进行连接将失败。如果您运行的是Exchange2010RTM,则建议使用以下POP3和IMAP4设置替代NTLM:

  • Kerberos (GSSAPI)
  • 纯文本身份验证

如果您使用的是Exchange 2010 RTM,则必须在Exchange 2010组织中保留Exchange 2003或Exchange 2007服务器才能使用NTLM。

在Exchange2010 SP1中恢复了对POP3和IMAP4连接的NTLM身份验证的支持。

由于您正在使用SSL,您应该能够切换到纯文本身份验证(只需删除Authmechanism)。或者,让您的系统管理员安装SP1。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8100068

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档