IMAP connector for Mule是否能够捕获给定多部分电子邮件的整个嵌套结构,并包含多个子部分?
我有一封电子邮件需要在mule中处理,其结构大致如下,多部分/混合包装多部分/备选方案,这又有两个部分:IMAP connector for Mule是否能够捕获给定多部分电子邮件的整个嵌套结构,并包含多个子部分?,mule,mule-studio,Mule,Mule Studio,我有一封电子邮件需要在mule中处理,其结构大致如下,多部分/混合包装多部分/备选方案,这又有两个部分: Message-ID: <113093521.2.1380303746136.JavaMail.admin-gmsharpe@PSL-GSHARPE> Subject: MultiPart Mail MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="----=_Part_0_1336225759.1380303
Message-ID: <113093521.2.1380303746136.JavaMail.admin-gmsharpe@PSL-GSHARPE>
Subject: MultiPart Mail
MIME-Version: 1.0
Content-Type: multipart/mixed;
boundary="----=_Part_0_1336225759.1380303746093"
X-Virus-Scanned: clamav-milter 0.97.8 at msa3
X-Virus-Status: Clean
X-Scanned-By: MIMEDefang 2.74
------=_Part_0_1336225759.1380303746093
Content-Type: multipart/alternative;
boundary="----=_Part_1_2021372560.1380303746102"
------=_Part_1_2021372560.1380303746102
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
This is multipart mail and u read part1......
------=_Part_1_2021372560.1380303746102
Content-Type: text/html; charset=us-ascii
Content-Transfer-Encoding: 7bit
This is multipart mail and u read part2......
------=_Part_1_2021372560.1380303746102--
------=_Part_0_1336225759.1380303746093--
查看上面代码中MimePartDataSource中包含的内容,我不确定Mule IMAP连接器是否在电子邮件中占据了两个以上的级别:multipart/mixed及其子multipart/alternative。我不认为它实际上抓住了multipart/alternative的两个子部分。有人能证实这一点吗?如果Mule IMAP组件实际上没有捕获两个级别之外的任何内容,我怀疑除了定制Mule IMAP端点、MessageReceiver等的部分之外,我无能为力……您所说的两个级别是什么意思?
<expression-transformer name="returnAttachments">
<return-argument evaluator="attachments-list" expression="*" optional="false"/>
</expression-transformer>
<flow name="imap-flow" doc:name="imap-flow">
<imaps:inbound-endpoint host="${mail.host}" port="${mail.port}" user="${user}" password="${password}" responseTimeout="10000" doc:name="IMAP" connector-ref="IMAPS" transformer-refs="returnAttachments" disableTransportTransformer="true"/>
<collection-splitter/>
<component class="<package name>.EmailTransformer" doc:name="EmailTransformer"/>
..... Rest of flow ....
</flow>
private String getRelevantEmailBodyContent(MuleMessage message) throws Exception {
DataHandler handler = (DataHandler)message.getPayload();
MimePartDataSource mimePartDataSource = (MimePartDataSource)handler.getDataSource();
... Not sure what to do next.
}