我正在使用spring集成的org.springframework.integration.mail.ImapMailReceiver来读取IMAP服务器上的一些电子邮件。
与许多其他IMAP服务器一样,我连接的IMAP服务器使用电子邮件地址作为用户名。
所以我以这种方式创建ImapMailReceiver的新实例
新的ImapMailReceiver(“imap://user@mail.XXXX.com.au:password@mail.XXXX.com.au:143 / INBOX”);
我相信ImapMailReceiver使用URLName类将给定的字符串解析为协议,用户等。
但是,由于url字符串包含2个'@'字符,因此URLName类变得混乱,无法解析用户名和密码。
以前有其他人有过类似的问题吗?你是怎么解决这个问题的?
任何评论都会受到欢迎!!
感谢。
答案 0 :(得分:3)
用户名中的“@”需要进行URL编码。如果您使用带有单独的用户名,密码等参数的URLName构造函数,它将为您执行此操作。如果您是手动编写,则需要正确编写,并对任何特殊字符使用正确的编码。
答案 1 :(得分:1)
' ave尝试从GMAIL收到邮件,这就是为什么我使用 imaps
`imapMailReceiver = new ImapMailReceiver("imaps://" + URLEncoder.encode(USERNAME, "UTF-8") + ":" + PASSWORD + "@imap.gmail.com:993/INBOX");`
不,它运作良好