IMAP connector for 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

我有一封电子邮件需要在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.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. 
}