我刚刚开始学习mule,所以如果这是一个非常基本的问题,请原谅我。
我已经成功配置 mule 来监控我的邮箱,所以每当有邮件进来时,我都会将邮件写入文本文件(仅用于测试)。
现在我需要解析这封邮件并从邮件中获取消息/From/To。
<flow name="testFlow" doc:name="testFlow">
<imap:inbound-endpoint host="ip"
port="143" user="username" password="pwd" doc:name="IMAP"
responseTimeout="10000" transformer-refs="Message_Properties">
</imap:inbound-endpoint>
<file:outbound-endpoint path="C:\"
outputPattern="#[function:datestamp].dat" doc:name="File">
</file:outbound-endpoint>
</flow>
我以为我可以使用以下表达式(使用表达式转换器)获取标题信息
#[inboundProperties['email-header-name']]
但这似乎不起作用。我也尝试了以下表达式,但没有奏效,
#[map-payload:HOST]
#[map-payload:MESSAGE]
#[map-payload:TIMESTAMP]
有人可以帮忙吗?还有人知道是否有包含可用表达式列表的文档吗?
编辑:
我包括了记录器来查看属性,它显示了所有属性,但我找不到正文。另外,我尝试使用 fromAddress
#[map-payload:fromAddress] and #[inboundProperties['fromAddress']]
但是没有用,有人可以让我知道我错在哪里吗?
属性如下所示,
inbound.fromAddress=Service <service@xx.com>
inbound.subject=Test Final inbound.toAddresses=Service
编辑2:
这是我尝试过但不起作用的方法:(
我正在尝试检索电子邮件主题并写入文件或仅使用基于电子邮件主题的记录器显示它,但我收到以下错误。
ERROR 2013-02-07 19:22:45,275 [[test].connector.file.mule.default.dispatcher.01] org.mule.exception.DefaultMessagingExceptionStrategy:
********************************************************************************
Message : Could not find a transformer to transform "SimpleDataType{type=javax.mail.internet.MimeMessage, mimeType='*/*'}" to "SimpleDataType{type=java.io.InputStream, mimeType='*/*'}".
Code : MULE_ERROR-236
你能告诉我我在哪里犯错吗?
<flow name="testFlow1" doc:name="testFlow1">
<imap:inbound-endpoint host="ip"
port="143" user="uname" password="pwd" doc:name="IMAP"
responseTimeout="10000" disableTransportTransformer="true">
</imap:inbound-endpoint>
<logger message="#[message.inboundProperties['inbound.fromAddress']]" level="INFO" doc:name="Logger"/>
<choice doc:name="Choice">
<when expression="message.inboundProperties['inbound.subject']=='plain test'">
<processor-chain>
<logger message="#[message.inboundProperties['inbound.fromAddress']]" level="INFO" doc:name="Logger"/>
</processor-chain>
</when>
<otherwise>
<processor-chain>
<file:outbound-endpoint path="C:\mule" outputPattern="#[function:datestamp].dat" responseTimeout="10000" disableTransportTransformer="true" doc:name="File">
</file:outbound-endpoint>
</processor-chain>
</otherwise>
</choice>
</flow>