Apache Camel从gmail帐户读取未读邮件

时间:2014-12-22 17:52:07

标签: java email apache-camel pooling

刚试过学习Apache Camel。

我正在尝试阅读gmail收件箱未读邮件。

我在搜索时获得了代码段,但无法从中获得成功。

如果有人指出错误,

    PollingConsumer pollingConsumer = null;
    CamelContext context = new DefaultCamelContext();

   Endpoint endpoint = context.getEndpoint("imaps://imap.gmail.com?username=" + mailId + "&password=" + password + "&delete=false&peek=false&unseen=true&consumer.delay=6000&closeFolder=false&disconnect=false");


    System.out.println("end point:"+endpoint);

    pollingConsumer = endpoint.createPollingConsumer();
    System.out.println("polling consumer:"+pollingConsumer);
    pollingConsumer.start();

    pollingConsumer.getEndpoint().createExchange();
    System.out.println("Exchange is created:");
    Exchange exchange = pollingConsumer.receive();
    System.out.println("pollingConsumer.receive()");

pollingConsumer.receive();被阻止,我的邮箱中有未读邮件。 我也尝试了pollingConsumer.receive(6000);,但它返回null。

我在Gmail设置中启用了IMAP访问。有什么我想念的吗?

1 个答案:

答案 0 :(得分:2)

让我写下解决方案,它将帮助有人遇到类似问题。

实际上我添加了java邮箱,但是imap jar丢失了,并没有显示任何错误。

这就是为什么我无法弄清楚实际原因。

浏览"imaps://imap.gmail.com"的参数后,我遇到了"debugMode"参数,默认情况下该参数为false。当我添加值为true的参数时,它抱怨我的控制台上缺少jar。添加之后,jar认为工作完美。

感谢您的帮助。