我正在尝试通过 POP 以编程方式从 Exchange 2003 获取电子邮件。作为概念验证,我尝试使用 openssl s_client 进行连接。
我已经在 Exchange 服务器上启动了 POP 服务。尝试使用
openssl s_client -connect MYEXCHANGESERVER:995
返回
20303:error:140790E5:SSL routines:SSL23_WRITE:ssl handshake failure:s23_lib.c:188:
试
openssl s_client -connect MYEXCHANGESERVER:995 -starttls pop3
返回
CONNECTED(00000003)
write:errno=32
[更新] 根据 jj33 的建议,通过 netcating(最初是 telneting)登录服务器如下:
nc -v MYEXCHANGESERVER 995
返回
Connection to MYEXCHANGESERVER 995 port [tcp/pop3s] succeeded!
然后连接自动关闭。
Netcating 到端口 110(不安全的弹出)返回
+OK Microsoft Exchange Server 2003 POP3 server version 6.5.7638.1 (MYEXCHANGESERVERNAME) ready.
我尝试的每一个命令都会得到回复
-ERR Protocol error.
[/更新]
请原谅我这个新手 - 我基本上是在盲目地瞎想,不知道自己应该做什么。过去,我通过 openssl s_client 读取我的 GMail,设置这些证书很容易,而且有很好的文档记录。我想我也需要在这里设置某种证书,而且我已经研究过使用 .pfx 文件。但就像我说的,我在这里完全迷路了。
谢谢您的任何建议,
安德烈亚斯
答案1
作为故障排除步骤,请尝试使用 telnet 直接连接到 995,看看它是否显示纯文本横幅。您可能根本没有加密,或者您可能已将其设置为在协议中升级到加密(我会说 SMTP 中的 STARTTLS,不确定 POP 中的动词是什么)
答案2
删除 starttls 标志 - 您没有在 110 上运行 TLS,因此该标志会破坏一些东西。
答案3
我知道这已经是 7 年前的事了,但我刚刚找到了解决同一问题的方法。解决方案是将标志传递-crlf
给s_client
。
openssl s_client -crlf -connect MYEXCHANGESERVER:995