【问题标题】:Read all mails from inbox阅读收件箱中的所有邮件
【发布时间】:2013-09-30 07:39:01
【问题描述】:

它只读取收件箱中的新消息,而我想读取所有消息。 如何实现?

Folder folderInbox = store.getFolder("INBOX");
folderInbox.open(Folder.READ_ONLY)
Message[] arrayMessages = folderInbox.getMessages();

【问题讨论】:

    标签: java inbox


    【解决方案1】:

    你能不能试试Message[] messages = inbox.getMessages(startMessage, endMessage);的方法,而不是Message[] arrayMessages = folderInbox.getMessages();

    这里的 startMessage 和 endMessage 是整数值。一个很好的例子取自这里 - enter link description here

        Folder inbox = store.getFolder("inbox");
        inbox.open(Folder.READ_WRITE); // Folder.READ_ONLY
        int messageCount = inbox.getMessageCount();
        System.out.println("Total Messages" + messageCount);
        int startMessage = messageCount - 5;
        int endMessage = messageCount;
    
        if (messageCount < 5) {
            startMessage = 0;
        }
    
        Message[] messages = inbox.getMessages(startMessage, endMessage);
    

    【讨论】:

    • 我试过上面的东西..但我仍然得到 messageCount 为 0。
    • messagecount 始终提供收件箱中的邮件总数。您的 SMTP 是否已设置完毕,并在阅读后保留电子邮件。仅供参考,许多 SMTP 在从服务器收件箱发送后会删除电子邮件。一种检查方法是连接到 gmail 收件箱并查看您的程序的行为。
    • codejava.net/java-ee/javamail/… 这是代码.... 你也可以试试... 因为我的邮件不是通过 SMTP 从收件箱中删除的。
    • 我做到了。每次下载时,本地文件夹中的文件都会被替换..
    • 太好了,也请发表您的答案。谢谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-06-01
    • 2014-05-20
    • 1970-01-01
    • 2012-11-27
    • 1970-01-01
    • 2011-03-14
    • 1970-01-01
    相关资源
    最近更新 更多