我正在尝试使用骆驼google-mail component从我的帐户中获取最新邮件。具体来说,我使用history
端点前缀和列表端点。我的路线看起来像这样
<route id="parseNewMails">
<from uri="g-mail://history/list?userId=me&consumer.delay=10000"/>
<!-- <setHeader headerName="CamelGoogleMail.startHistoryId">
<constant>2938321</constant>
</setHeader> -->
<to uri="file://output1"/>
</route>
Google Mail Api指定我可以使用startHistoryId
,labelId
等参数来控制输出。但是,我如何在URI中传递它们?
<from uri="g-mail://history/list?userId=me&CamelGoogleMail.startHistoryId=291234&consumer.delay=10000"/>
OR
<from uri="g-mail://history/list?userId=me&startHistoryId=291234&consumer.delay=10000"/>
不起作用。它抛出了这个错误:
Failed to resolve endpoint: g-mail://history/list?CamelGoogleMail.startHistoryId=2938321&consumer.delay=10000&userId=me due to: There are 1 parameters that couldn't be set on the endpoint. Check the uri if the parameters are spelt correctly and that they are properties of the endpoint. Unknown parameters=[{CamelGoogleMail.startHistoryId=2938321}]
修改 :: 我已经添加了所需的依赖项
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-google-mail</artifactId>
<version>2.17.2</version>
</dependency>
并配置组件
<bean id="g-mail" class="org.apache.camel.component.google.mail.GoogleMailComponent">
<property name="configuration">
<bean class="org.apache.camel.component.google.mail.GoogleMailConfiguration">
<property name="accessToken" value="xxx" />
<property name="applicationName" value="Simple Sample" />
<property name="clientId" value="xxx" />
<property name="clientSecret" value="xxx" />
<property name="refreshToken" value="xxx" />
<property name="scopes" value="https://www.googleapis.com/auth/gmail.readonly,https://www.googleapis.com/auth/gmail.modify,https://www.googleapis.com/auth/gmail.labels" />
<!-- <property name="p12FileName" value="" />
<property name="user" value="" /> -->
</bean>
</property>
</bean>
请注意,历史记录前缀和列表端点有效。它只是我不能指定startHistoryId参数。
答案 0 :(得分:0)
请在camel标头中设置startHistoryId的值。它应该工作。
可以在producer的消息头中提供任何URI选项 使用CamelGoogleMail的端点。前缀。