1

ブラジルのホスト(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;
    }
4

1 に答える 1

3

サーバーが壊れています。IMAPプロトコルを適切にサポートしていないようです。サーバーベンダーにバグを報告してください。

サーバーのバグを回避する必要がある場合は、その「検索」コマンドの使用を避ける必要があります。すべてのメッセージを取得して、SEENとマークされているメッセージをスキップすることができます。

于 2013-03-22T22:27:21.920 に答える