javax.mail.URLName не может проанализировать имя пользователя и пароль, когда имя пользователя содержит символ «@» - PullRequest
1 голос
/ 30 марта 2012

Я использую 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класс запутывается и не может разобрать имя пользователя и пароль.

У кого-нибудь еще были подобные проблемы раньше?Как вы справились с этой проблемой?

Любые комментарии будут оценены !!

Спасибо.

Ответы [ 2 ]

3 голосов
/ 30 марта 2012

«@» в имени пользователя должно быть закодировано в URL. Если вы используете конструктор URLName, который принимает отдельные параметры имени пользователя, пароля и т. Д., Он сделает это за вас. Если вы пишете это от руки, вам нужно написать это правильно, с правильной кодировкой для любых специальных символов.

1 голос
/ 22 мая 2014

Я пытаюсь получать письма от GMAIL, поэтому я использую imaps

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

Нет, хорошо работает

...