沒有對以前的答案居然說如何使用PLAIN身份驗證,所以我做了更多的挖掘。事實證明,認證信息預計在base64中。這可能是最容易解釋的例子。假設用戶名爲「bob」,密碼爲「munchkin」。
我們首先需要用base64編碼。在一個Linux-ish系統上,它喜歡這樣的:
echo -en "\0bob\0munchkin" | base64
這根據需要合併空字符,也base64編碼。我們得到這個字符串:AGJvYgBtdW5jaGtpbg==
。
現在,我們可以做實際的認證(S
=服務器,C
=客戶端):
S: * OK The Microsoft Exchange IMAP4 service is ready.
C: D0 CAPABILITY
S: * CAPABILITY IMAP4 IMAP4rev1 AUTH=NTLM AUTH=GSSAPI AUTH=PLAIN CHILDREN IDLE NAMESPACE LITERAL+
S: D0 OK CAPABILITY completed.
C: D1 AUTHENTICATE PLAIN
S: +
C: AGJvYgBtdW5jaGtpbg==
S: D1 OK AUTHENTICATE completed
大功告成!
來源
2013-01-04 13:59:26
lid
你知道嗎?你是否與OP一樣?我的意思是,你回答了一個6個月的問題,用問題中甚至沒有討論過的答案元素,並在2分鐘內得到接受......如果這是正確的答案,我完全不介意,但它似乎只是從哪裏冒出來的。 – Bruno
用戶名是「mymailbox」還是「mymailbox @ domain」純粹是服務器端的管理/實現決定。對於服務器管理員來說,當同一臺服務器用於多個域時,它們對於使其用戶名成爲完整的電子郵件地址很有用。 – Bruno