Hotmail似乎有两个独立的IMAP端口:
imap-mail.outlook.com 993
和:
imap-mail.outlook.com 143
我的猜测是143是不安全的,993是通过SSL。 但是,当我尝试连接超过993:
telnet imap-mail.outlook.com 993
我只是得到一个空白的屏幕 – 没有确认或问候消息。 当我尝试超过143的同样的东西,我得到一个消息,但它的encryption:
随后,发出login命令失败:
. LOGIN [email protected] mypassword
附:
. BAD Command received in Invalid state.
我甚至不能在993上input,因为我没有得到问候。
请有人build议我为什么这是不正确的连接,并可能build议如何解决这个问题?
这个是正常的; 如果您尝试telnet HTTPS 443 ,则会发生同样的情况; 端口993用于使用TLS的IMAPS。 在TLS连接(从RFC 5246,7.4.1.2客户端Hello )中:
当客户端首次连接到服务器时,需要发送ClientHello作为其第一条消息。 客户端还可以发送ClientHello来响应HelloRequest或主动为了重新协商现有连接中的安全参数。
服务器不会问候你,因为你应该先问候一下!
IMAP端口143工作方式不同,因为它不启动与TLS的连接。 连接以纯文本forms开始,客户端请求TLS( RFC 3501,6.2.1 ) STARTTLS :
在来自服务器的标记的
OK响应结束时,在CRLF之后立即开始[TLS]协商。 一旦客户端发出STARTTLS命令,它不能发出更多命令,直到看到服务器响应并且完成[TLS]协商。例:
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
换句话说,两个CAN都是安全的,但143并不一定,因为它也用于普通的IMAP。
如果您需要通过TLSdebugging连接 ,则不能使用最初为telnet协议devise的telnet命令。 但是,还有其他几个工具,例如
OpenSSL的
openssl s_client -connect imap-mail.outlook.com:993 openssl s_client -starttls imap -connect imap-mail.outlook.com:143
的GnuTLS
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