Hotmail 似乎有两个单独的 IMAP 端口:
imap-mail.outlook.com 993
和:
imap-mail.outlook.com 143
我猜测 143 不安全,而 993 是通过 SSL 连接的。但是,当我尝试通过 993 连接时:
telnet imap-mail.outlook.com 993
我只看到一个空白屏幕 - 没有确认或问候消息。当我通过 143 尝试同样的事情时,我确实收到了一条消息,但它是加密的:
随后,发出登录命令失败:
. LOGIN [email protected] mypassword
和:
. BAD Command received in Invalid state.
我甚至无法在 993 上输入此信息,因为我没有收到问候语。
请问有人能否告诉我为什么这不是正确连接,并可能建议如何解决这个问题?
答案1
这是正常的;如果你尝试 telnet HTTPS ,就会发生同样的情况443
;该端口993
用于使用 TLS 的 IMAPS。在 TLS 连接中(从RFC 5246, 7.4.1.2 客户端问候):
当客户端首次连接到服务器时,需要发送 ClientHello 作为其第一条消息。客户端还可以发送 ClientHello 以响应 HelloRequest 或主动重新协商现有连接中的安全参数。
服务员没有向您打招呼,因为您应该先向他打招呼!
IMAP 端口的143
工作方式不同,因为它不使用 TLS 启动连接。连接以纯文本开始,客户端使用 (RFC 3501,6.2.1)STARTTLS
:
[TLS] 协商在服务器的
CRLF
标记响应结束后立即开始。客户端发出命令后,不得发出进一步的命令,直到看到服务器响应并且 [TLS] 协商完成为止。OK
STARTTLS
例子:
C: a001 CAPABILITY S: * CAPABILITY IMAP4rev1 STARTTLS LOGINDISABLED S: a001 OK CAPABILITY completed C: a002 STARTTLS S: a002 OK Begin TLS negotiation now <TLS negotiation, further commands are under [TLS] layer> C: a003 CAPABILITY S: * CAPABILITY IMAP4rev1 AUTH=PLAIN S: a003 OK CAPABILITY completed C: a004 LOGIN joe password S: a004 OK LOGIN completed
换句话说,两者都可以是安全的,但143
不一定,因为它也用于普通 IMAP。
如果你需要通过 TLS 调试连接,您不能使用telnet
最初为 telnet 协议设计的命令。但是,还有其他几个工具,例如
OpenSSL
openssl s_client -connect imap-mail.outlook.com:993 openssl s_client -starttls imap -connect imap-mail.outlook.com:143
加密传输协议
gnutls-cli imap-mail.outlook.com -p 993 gnutls-cli imap-mail.outlook.com -s -p 143
ncat
和socat
(不支持STARTTLS
)ncat --ssl imap-mail.outlook.com 993 socat openssl:imap-mail.outlook.com:993 stdio socat ssl:imap-mail.outlool.com:993 readline
在 Debian 上,
telnet-ssl -z ssl imap-mail.outlook.com 993