2011-03-03 81 views

回答

4

默認情況下,IMAP的唯一身份驗證機制是the LOGIN command,它採用未加密的用戶名和密碼。您可以在其上添加加密層,可以通過IMAP連接或通過STARTTLS命令啓動TLS層,但仍需要客戶端知道明文密碼。

服務器還可以選擇性地提供可通過the AUTHENTICATE command調用的SASL認證方法。服務器在其對CAPABILITY命令的響應中宣告它支持的SASL機制。例如,如果服務器包含功能「AUTH=PLAIN」,則客戶端可以通過AUTHENTICATE PLAIN IMAP命令使用PLAIN SASL認證方法。

的Gmail只支持一個SASL認證機制,XOAUTH

C: 1 capability 
S: * CAPABILITY IMAP4rev1 UNSELECT IDLE NAMESPACE QUOTA XLIST CHILDREN XYZZY 
     SASL-IR AUTH=XOAUTH 
S: 1 OK Thats all she wrote! dv32if2169247ibb.17 

XOAUTH是使用OAuth非標準SASL認證機制。 (領先的'X'表示它不是標準化的。)Google已經發布了a document defining the XOAUTH SASL mechanism。他們還提供了google-mail-xoauth-tools package,其中包括示例代碼,演示如何通過XOAUTH將Gmail與Gmail一起使用。

+0

我們剛剛轉向使用XOAUTH,它一直運行良好。 – GreenKiwi 2012-01-19 20:31:17

+0

儘管在代碼中或屬性文件中,您仍然必須以純文本形式編寫密碼。 – Adam 2014-09-16 14:26:17