【问题标题】:CAMEL imap component: invalid providerCAMEL imap 组件:无效的提供程序
【发布时间】:2015-10-13 10:11:09
【问题描述】:

这是路线:

<route id="reading1">
    <from uri="timer:timerName?period=50000"/>
    <to uri="imap://server/?username=My_@mail&amp;password=My_password"/>
    <log message="${body}"/>
  </route>

当我运行它时,我得到了这个错误:

javax.mail.NoSuchProviderException: invalid provider
    at javax.mail.Session.getTransport(Session.java:724)
    at javax.mail.Session.getTransport(Session.java:668)
    at javax.mail.Session.getTransport(Session.java:648)
    at org.apache.camel.component.mail.DefaultJavaMailSender.getTransport(DefaultJavaMailSender.java:138)
    at org.apache.camel.component.mail.DefaultJavaMailSender.send(DefaultJavaMailSender.java:110)
    at org.apache.camel.component.mail.MailProducer.process(MailProducer.java:63)
    at org.apache.camel.util.AsyncProcessorConverterHelper$ProcessorToAsyncProcessorBridge.process(AsyncProcessorConverterHelper.java:61)
    at org.apache.camel.processor.SendProcessor$2.doInAsyncProducer(SendProcessor.java:157)
    at org.apache.camel.impl.ProducerCache.doInAsyncProducer(ProducerCache.java:304)
    at org.apache.camel.processor.SendProcessor.process(SendProcessor.java:152)
    at org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:77)
    at org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:448)
    at org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:191)
    at org.apache.camel.processor.Pipeline.process(Pipeline.java:118)
    at org.apache.camel.processor.Pipeline.process(Pipeline.java:80)
    at org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:191)
    at org.apache.camel.component.timer.TimerConsumer.sendTimerExchange(TimerConsumer.java:165)
    at org.apache.camel.component.timer.TimerConsumer$1.run(TimerConsumer.java:73)
    at java.util.TimerThread.mainLoop(Unknown Source)
    at java.util.TimerThread.run(Unknown Source)
[ thread #0 - timer://timerName] TimerConsumer                  WARN  Error processing exchange. Exchange[Message: [Body is null]]. Caused by: [javax.mail.NoSuchProviderException - invalid provider]

当我把它改成:

<route id="reading1">
    <from uri="imap://server/?username=My_@mail&amp;password=My_password"/>
    <log message="${body}"/>
  </route>

有效 似乎 imap 组件不能在 &lt;to../&gt; 标签中,只有 &lt;from ../&gt; 标签,在我的情况下,imap 参数(用户名和密码)来自 Imap 之前的其他端点。 如何解决这个问题?

【问题讨论】:

    标签: email apache-camel imap blueprint-osgi


    【解决方案1】:

    发送电子邮件时使用smtpimappop3 用于接收电子邮件。 smtp 用于发送。

    是的,有点混乱。

    我们或许应该将其命名为 mail,然后默认为消费者使用 imap,在 Camel 中发送默认使用 smtp。

    【讨论】:

    • 感谢克劳斯的回复!每个时期我都必须阅读来自许多用户的邮件并将它们转换为短信。 imap 参数(用户名和密码)来自这样的文本文件:&lt;from uri="file:Uri"/&gt; &lt;split&gt; &lt;tokenize token="\n"&gt;&lt;/tokenize&gt; &lt;to uri="bean:com.ngtrend.mailtosms.Filetransform?method=extract(Exchange)"/&gt; // to extract @mail and pass and put them in headers &lt;to uri="imap://server/?username=${header.adressemail}&amp;amp;password={header.password}"/&gt; ........invoke SMS webservice...我收到了这条消息:javax.mail.NoSuchProviderException: invalid provider
    • 我尝试了一个带有 Timer 和 iMap 端点的基本示例(如第一篇文章中所述),我发现我们只能使用来自该 iMap 端点的事件。对吗?
    • 使用
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-11
    • 1970-01-01
    • 2022-01-04
    • 2019-02-03
    相关资源
    最近更新 更多