У меня есть почтовый аккаунт на сервере хоста в Бразилии (uol.com.br). Эта учетная запись для тестов, в почтовом ящике 7.000 сообщений. Когда я подключаюсь по почте java и setDebug (true), сообщения не возвращаются и показывают это сообщение:

03-22 14:44:07.305: I/System.out(5524): A1 OK User logged in
03-22 14:44:07.320: I/System.out(5524): A2 CAPABILITY
03-22 14:44:07.435: I/System.out(5524): * CAPABILITY IMAP4 IMAP4rev1 QUOTA UIDPLUS NO_ATOMIC_RENAME UNSELECT CHILDREN MULTIAPPEND BINARY SORT
03-22 14:44:07.435: I/System.out(5524): A2 OK Completed
03-22 14:44:07.500: I/System.out(5524): A3 LIST "" "%"
03-22 14:44:07.835: I/System.out(5524): * LIST (\HasNoChildren) "." "INBOX"
03-22 14:44:07.850: I/System.out(5524): * LIST (\HasNoChildren) "." "Quarentena"
03-22 14:44:07.870: I/System.out(5524): * LIST (\HasNoChildren) "." "Drafts"
03-22 14:44:07.885: I/System.out(5524): * LIST (\HasNoChildren) "." "Sent Messages"
03-22 14:44:07.925: I/System.out(5524): * LIST (\HasNoChildren) "." "Deleted Messages"
03-22 14:44:07.950: I/System.out(5524): A3 OK Completed (0.000 secs 6 calls)
03-22 14:44:07.990: I/System.out(5524): DEBUG: connection available -- size: 1
03-22 14:44:07.995: I/System.out(5524): A4 SELECT INBOX
03-22 14:44:08.130: I/System.out(5524): * FLAGS (\Answered \Flagged \Draft \Deleted \Seen)
03-22 14:44:08.145: I/System.out(5524): * OK [PERMANENTFLAGS (\Answered \Flagged \Draft \Deleted \Seen \*)]  
03-22 14:44:08.160: I/System.out(5524): * 7245 EXISTS
03-22 14:44:08.170: I/System.out(5524): * 1 RECENT
03-22 14:44:08.180: I/System.out(5524): * OK [UNSEEN 7243]  
03-22 14:44:08.190: I/System.out(5524): * OK [UIDVALIDITY 1208433603]  
03-22 14:44:08.235: I/System.out(5524): * OK [UIDNEXT 10125]  
03-22 14:44:08.235: I/System.out(5524): A4 OK [READ-WRITE] Completed
03-22 14:44:21.555: I/System.out(5524): A5 SEARCH UNSEEN ALL
03-22 14:44:23.910: I/System.out(5524): A5 BAD Unsupported command.

Это часть кода для установки флага. В gmail этот код подходит для 100 сообщений в папке входящих

public Message[] getInboxMessages() {
        Message[] messages = null;
        try {

            Flags f1 = new Flags(Flags.Flag.SEEN);
            FlagTerm notseen = new FlagTerm(f1, false);

            messages = mInboxFolder.search(notseen);            

        } catch (NoSuchProviderException e) {
            Log.w(TAG, e.getMessage());

        } catch (MessagingException e) {
            Log.w(TAG, e.getMessage());
        }
        return messages;
    }
1
Mateus 22 Мар 2013 в 22:11
Не могли бы вы опубликовать свой код, пожалуйста?
 – 
Todd
22 Мар 2013 в 22:15
Тодд: Я отредактировал вопрос с частью кода. Этот же код отлично работает в учетных записях Gmail со 100 сообщениями в почтовом ящике.
 – 
Mateus
22 Мар 2013 в 22:38
A5 - это не команда, это в основном идентификатор запроса для протокола IMAP. Возможно, сервер, к которому вы подключаетесь, не поддерживает команду SEARCH UNSEEN ALL.
 – 
joev
22 Мар 2013 в 22:45
Привет @Mateus. Получили ли вы какой-либо ответ от вашего сервера (UOL)?
 – 
j4x
29 Ноя 2016 в 16:47

1 ответ

Лучший ответ

Сервер сломан. Похоже, он не поддерживает протокол IMAP должным образом. Сообщите об ошибке поставщику сервера.

Если вам нужно обойти ошибку сервера, вам следует избегать использования этой команды "search". Вы можете получить все сообщения и просто пропустить те, которые отмечены SEEN.

3
Bill Shannon 23 Мар 2013 в 02:27