6

メールサーバーの受信トレイに接続するための次のコードがあります。

Store popStore = popSession.getStore("pop3");
popStore.connect(address, userName, password);
Folder  inboxFolder = popStore.getFolder("Inbox");

これを投稿して、新しいメールをチェックします。Gmail に接続すると、実際には受信トレイ フォルダーからのみ送信されるはずのメールが、送信済みアイテムからも受信されます。Yahoo では、これは正常に機能しています。

Gmail でこの問題を引き起こしている可能性のあるアイデアはありますか?

編集:INBOXでも試してみましたが、結果は同じです

4

4 に答える 4

3

まずこれを試してください

Folder folder = store.getDefaultFolder();
folder = folder.getFolder("INBOX");
folder.open(Folder.READ_WRITE);
于 2013-07-20T05:17:19.290 に答える
3

以下はコード スニペットです。gmailで確認したところ、受信箱と送信済みメールに重複はありませんでした。(これはコメントで、書式設定の回答として投稿する必要がありました)

javax.mail.Folder[] folders = store.getDefaultFolder().list("*");
for (javax.mail.Folder folder : folders) {
    if ((folder.getType() & javax.mail.Folder.HOLDS_MESSAGES) != 0) {
        if (folder.getFullName().equalsIgnoreCase("[Gmail]/Sent Mail") 
                || folder.getFullName().equalsIgnoreCase("Inbox")) {
            System.out.println(folder.getFullName() + ": " + folder.getMessageCount());
            folder.open(Folder.READ_ONLY);
            for (Message m : folder.getMessages(
                               folder.getMessageCount() - 5, 
                               folder.getMessageCount())) {
                System.out.println("m.getSubject() = " + m.getSubject());
            }
            folder.close(true);
        }
    }
}
于 2013-07-18T12:37:54.293 に答える
2

Gmail で返信または全員に返信を使用してメールで通信すると、受信トレイ メールと見なされます。会話ビューなので。送信したメールが受信メールでもあるようにします。そのため、メッセージにそのメールが届きます。

この公式のGoogleの回答を読んでください。

于 2013-07-24T09:48:27.523 に答える