Java 如何使用ApacheCamel轮询我的google邮件收件箱中的邮件?

Java 如何使用ApacheCamel轮询我的google邮件收件箱中的邮件?,java,gmail,apache-camel,polling,Java,Gmail,Apache Camel,Polling,我正在尝试学习如何使用ApacheCamel,目前我想尝试在我的Google邮件收件箱中轮询邮件 为此,我首先尝试了Apache Camel文档中提供的邮件组件的以下示例: from("imaps://imap.gmail.com?username=YOUR_USERNAME@gmail.com&password=YOUR_PASSWORD" + "&delete=false&unseen=true&consumer.delay=60000").to("l

我正在尝试学习如何使用ApacheCamel,目前我想尝试在我的Google邮件收件箱中轮询邮件

为此,我首先尝试了Apache Camel文档中提供的邮件组件的以下示例:

from("imaps://imap.gmail.com?username=YOUR_USERNAME@gmail.com&password=YOUR_PASSWORD"
    + "&delete=false&unseen=true&consumer.delay=60000").to("log:newmail");
这是我的代码:

public static void main(String[] args) throws Exception
{
    // create CamelContext
    CamelContext context = new DefaultCamelContext();

    // add our route to the CamelContext
    context.addRoutes(new RouteBuilder()
    {
        public void configure()
        {
            from("imap://imap.gmail.com?username=YOUR_USERNAME@gmail.com&password=YOUR_PASSWORD"
                + "&delete=false&unseen=true&consumer.delay=10000").to("log:newmail");
        }
    });

    // start the route and let it do its work
    context.start();
    Thread.sleep(60000);

    // stop the CamelContext
    context.stop();
}
在适当的字段中输入用户名和正确的密码后,我使用maven运行代码的编译和执行:

mvn clean compile exec:java -Dexec.mainClass=natan.apps.ApacheCamelDemo
我在控制台中获得以下信息:

[ead #0 - imap://imap.gmail.com] MailConsumer                   DEBUG Connecting to MailStore: imap://imap.gmail.com:143, folder=INBOX
[ead #0 - imap://imap.gmail.com] MailConsumer                   WARN  Consumer Consumer[imap://imap.gmail.com?consumer.delay=10000&delete=false&password=xxxxxx&unseen=true&username=natan.daniel0%40gmail.com] failed polling endpoint: imap://imap.gmail.com?consumer.delay=10000&delete=false&password=xxxxxx&unseen=true&username=natan.daniel0%40gmail.com. Will try again at next poll. Caused by: [javax.mail.MessagingException - * BYE Cannot connect to IMAP server ::ffff:64.233.166.108 (::ffff:64.233.166.108:143), connect error 10060]
javax.mail.MessagingException: * BYE Cannot connect to IMAP server ::ffff:64.233.166.108 (::ffff:64.233.166.108:143), connect error 10060;
  nested exception is:
        com.sun.mail.iap.ConnectionException: * BYE Cannot connect to IMAP server ::ffff:64.233.166.108 (::ffff:64.233.166.108:143), connect error 10060
        at com.sun.mail.imap.IMAPStore.protocolConnect(IMAPStore.java:723)[javax.mail-1.5.5.jar:1.5.5]
        at javax.mail.Service.connect(Service.java:366)[javax.mail-1.5.5.jar:1.5.5]
        at org.apache.camel.component.mail.MailConsumer.ensureIsConnected(MailConsumer.java:520)[camel-mail-2.18.2.jar:2.18.2]
        at org.apache.camel.component.mail.MailConsumer.poll(MailConsumer.java:94)[camel-mail-2.18.2.jar:2.18.2]
        at org.apache.camel.impl.ScheduledPollConsumer.doRun(ScheduledPollConsumer.java:175)[camel-core-2.18.2.jar:2.18.2]
        at org.apache.camel.impl.ScheduledPollConsumer.run(ScheduledPollConsumer.java:102)[camel-core-2.18.2.jar:2.18.2]
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)[:1.8.0_111]
        at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)[:1.8.0_111]
        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)[:1.8.0_111]
        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)[:1.8.0_111]
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)[:1.8.0_111]
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)[:1.8.0_111]
        at java.lang.Thread.run(Thread.java:745)[:1.8.0_111]
我无法连接到IMAP服务器

我的代码中缺少什么吗?我需要一些SSL配置吗?请注意,我只是在Google mail设置中启用了IMAP

我使用maven处理依赖项,使用Eclipse编辑代码


提前感谢。

您需要在google mail帐户中打开imap以允许访问您的电子邮件。默认情况下是不允许的。您好,易卜生先生,谢谢您的回答。实际上,imap在我的Google mail帐户设置中默认激活。只有pop被禁用。没有其他建议?这是连接错误代码10060导致的网络错误。尝试从另一个网络,如您的家庭互联网连接,而不是可能有各种防火墙规则/问题的公司网络。IP协议听起来像是网络错误,您能否在camel上下文之外创建正常的imap连接。您需要在google mail帐户中打开imap以允许访问您的电子邮件。默认情况下是不允许的。您好,易卜生先生,谢谢您的回答。实际上,imap在我的Google mail帐户设置中默认激活。只有pop被禁用。没有其他建议?这是连接错误代码10060导致的网络错误。尝试从另一个网络,如您的家庭互联网连接,而不是可能有各种防火墙规则/问题的公司网络。IP协议听起来像是网络错误,您能否在camel上下文之外创建正常的imap连接。