2017-08-31 48 views
0

如果密碼包含@,ImapMailReceiver無法正確返回主機。ImapMailReceiver的不當行爲

例如:

用戶名:[email protected]

密碼:ABC @ 123

主機:imap.gmail.com

最終URI字符串

IMAP://[email protected]:ABC @ 123 @ imap.gmail.com:993/INBOX

然後,ImapMailReceiver識別主機作爲[email protected]

我檢查this線程,但我使用JavaConfig方式創建ImapMailReceiver,其中線程是關於XML配置的方式。

任何方式來解決這個問題?

謝謝!

UPDATE

最終URI字符串與編碼

IMAP://abc%40gmail.com:abc%[email protected]:993/INBOX

在這種情況下,我得到了AuthenticationException。

以上信息可能有助於您理解問題。

UPDATE 1

以上是來自Gmail的問題。需要在Gmail中啓用LESS SECURE APP安全選項才能解決身份驗證相關問題。

回答

0

RFC 1738說:

Within the user and password field, any ":", "@", or "/" must be encoded. 

我想你已經知道的URL編碼是如何工作的。如果你想複習一下,同一份文件的第18頁是一個很好的開始。

+0

感謝您的回覆。 我知道URL編碼。我甚至嘗試編碼密碼,但那次我得到了AuthenticationException。 –

+0

我更新了編碼字符串的問題。 –

+1

默認情況下,GMail不允許javamail客戶端;您必須進入帳戶設置並降低安全要求;不要問我如何,我必須自己再次谷歌。 –