【问题标题】:Library for IMAP IDLE [closed]IMAP IDLE 库 [关闭]
【发布时间】:2012-07-06 22:22:52
【问题描述】:

我正在寻找一个 Java 库来帮助我使用 IMAP,最好是 IDLE。

我需要编写一个 Java 应用程序,使用 SSL 通知并检索新电子邮件。该应用程序将检查由 hMailServer 托管的帐户的收件箱。

到目前为止,我已经看过了:

Apache Commons Imap 但它似乎没有实现 IDLE。

JavaPushMail 但它没有充分记录(我也许可以解决它,但我不确定我的继任者是否会高兴)。

Javamail,他们的 IMAPFolder 似乎是个不错的选择,但我的时间不多,为此编写一个稳定的库需要时间。

Chilkatsoft 是一个 199 美元的库,它有点贵(我知道,免费且可靠的代码总是很容易获得 :) 另外,我不确定它是否能处理 IDLE。

如果收件箱记录在案且稳定,我可以寻求一个轮询收件箱的解决方案。

我会很感激一些示例代码、一个库或朝着正确的方向推进。

对不起所有的“我”,提前感谢。

【问题讨论】:

    标签: java email imap hmail-server


    【解决方案1】:

    除了 Javamail,我没有使用过您提到的任何库,但我可以保证。我必须编写一个应用程序来轮询交换服务器并解析收件箱中的所有新邮件。这是该项目中使用的代码片段。我在应用程序中进行了所有投票,所以我没有研究来自服务器或任何东西的推送通知。我知道这并不是您想要的,但我希望这是朝着正确方向迈出的一步。

    import java.util.Properties;
    import javax.mail.*
    import javax.mail.search.FlagTerm;
    
    
    public class Driver {
        public static void main(String[] args){
            // Create properties (disable security checks on server)
            Properties props = new Properties();
            props.put("mail.imaps.ssl.checkserveridentity", "false");
            props.put("mail.imaps.ssl.trust", "*");
    
            // Get session
            Session session = Session.getDefaultInstance(props, null);
    
            try{
                // Get the store
                Store store = session.getStore("imaps");
                store.connect("servername", "username", "password");
    
                //connection configuration
                Folder folder = store.getFolder("INBOX");
                folder.open(Folder.READ_WRITE);
    
                //get all unread messages in the inbox
                FlagTerm ft = new FlagTerm(new Flags(Flags.Flag.SEEN), false); 
                Message[] messages = folder.search(ft);
    
                for (int i = messages.length -1; i>=0; i--) {
                    messages[i].setFlag(Flags.Flag.SEEN, true);
                }
                // Close connection 
                folder.close(false);
                store.close();
            }
            catch(Exception e){
            }
        }
    }
    

    【讨论】:

      【解决方案2】:

      我继续使用Javamail。只是觉得奇怪的是还没有为它编写好的包装器/客户端。好吧,不能拥有一切。感谢您的回答,Conor Sherman。

      【讨论】:

        【解决方案3】:

        我自己没用过,不过这个库看起来不错:

        https://github.com/MailCore/mailcore2

        MailCore 2 提供了一个简单的异步 API 来处理电子邮件协议 IMAP、POP 和 SMTP。 API 已从头开始重新设计。

        【讨论】:

        • 现在可以从 java 中使用吗?
        • @arnt 有 Java API 文档。看起来可以通过java调用c++代码。我想它可以从java中使用。但它不是纯java。我猜你需要为每个平台编译核心。
        猜你喜欢
        • 2011-01-21
        • 2011-03-27
        • 2010-11-07
        • 2010-11-22
        • 1970-01-01
        • 2011-01-11
        • 1970-01-01
        • 1970-01-01
        • 2013-01-12
        相关资源
        最近更新 更多