Mule下载电子邮件正文和附件
如何让Mule使用pop3下载附件?我试着尽可能地遵循示例,但我一直得到两个文件:一个是电子邮件正文,另一个是实际附件。以下是我使用的流程:Mule下载电子邮件正文和附件,mule,email-attachments,pop3,Mule,Email Attachments,Pop3,如何让Mule使用pop3下载附件?我试着尽可能地遵循示例,但我一直得到两个文件:一个是电子邮件正文,另一个是实际附件。以下是我使用的流程: <pop3:connector name="pop3Connector" checkFrequency="5000" doc:name="POP3"/> <expression-transformer name="returnAttachments" doc:name="Expression"> <return-ar
<pop3:connector name="pop3Connector" checkFrequency="5000" doc:name="POP3"/>
<expression-transformer name="returnAttachments" doc:name="Expression">
<return-argument evaluator="attachments-list" expression="*" />
</expression-transformer>
<file:connector name="fileName" doc:name="File">
<file:expression-filename-parser/>
</file:connector>
<flow name="incoming-orders" doc:name="incoming-orders">
<pop3s:inbound-endpoint host="pop.gmail.com" port="995" user="myuser%40mydomain" password="mypassword" responseTimeout="10000" doc:name="POP3" transformer-refs="returnAttachments" />
<collection-splitter doc:name="Collection Splitter"/>
<file:outbound-endpoint path="C:/popthreetest" outputPattern="#[function:datestamp].dat" doc:name="File">
<expression-transformer>
<return-argument expression="payload.inputStream" evaluator="groovy" />
</expression-transformer>
</file:outbound-endpoint>
</flow>
为完整起见,以下是JSON文件:
{
"attachment-name.txt": [
"C:/popthreetest/firstDestination.txt"
, "C:/path/to/secondDestination.txt"
, "C:\\popthreetest\\destination\\using-backslashes.txt"
]
}
带有附件的电子邮件是由多个部分组成的电子邮件,其中附件既是部分,也是正文。因此,Mule只能下载“整个软件包”,并将不同的部分提供给您 您应该能够根据零件名称在
集合拆分器之后过滤车身零件
或者,您可以使用MEL表达式删除集合的第一个元素,这通常是主体(Mule在内部使用此技术设置消息负载:)如果我检查message.payload.dataSource.name是否为null,这是否足够?也就是说,可能有一些东西不是也有名称的附件吗?我实际上是在检查带有特定名称的附件,所以我认为这不会影响我,但将来阅读此答案的其他人可能会想知道。
{
"attachment-name.txt": [
"C:/popthreetest/firstDestination.txt"
, "C:/path/to/secondDestination.txt"
, "C:\\popthreetest\\destination\\using-backslashes.txt"
]
}