【问题标题】:javax.mail.URLName cannot parse username and password when username contains an '@' character当用户名包含“@”字符时,javax.mail.URLName 无法解析用户名和密码
【发布时间】:2012-03-30 00:40:53
【问题描述】:

我正在使用 spring 集成中的 org.springframework.integration.mail.ImapMailReceiver 从 IMAP 服务器读取一些电子邮件。

与许多其他 IMAP 服务器一样,我要连接的 IMAP 服务器使用电子邮件地址作为用户名。

所以我正在以这种方式创建 ImapMailReceiver 的新实例

new ImapMailReceiver(“imap://user@mail.XXXX.com.au:password@mail.XXXX.com.au:143/INBOX”);

我相信 ImapMailReceiver 使用 URLName 类将给定的字符串解析为协议、用户等。

但是,由于 url 字符串包含 2 个“@”字符,因此 URLName 类会变得混乱,无法解析用户名和密码。

以前有没有其他人遇到过类似的问题?您是如何解决这个问题的?

任何cmets都会被欣赏!!

谢谢。

【问题讨论】:

    标签: java email jakarta-mail spring-integration


    【解决方案1】:

    用户名中的“@”需要进行 URL 编码。如果您使用带有单独的用户名、密码等参数的 URLName 构造函数,它将为您执行此操作。如果您是手写,则需要正确书写,并为任何特殊字符使用正确的编码。

    【讨论】:

      【解决方案2】:

      我尝试从 GMAIL 接收邮件,这就是我使用 imaps 的原因

      `imapMailReceiver = new ImapMailReceiver("imaps://" + URLEncoder.encode(USERNAME, "UTF-8") + ":" + PASSWORD + "@imap.gmail.com:993/INBOX");`
      

      不,效果很好

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-03-20
        • 2017-05-31
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-08-27
        相关资源
        最近更新 更多