2

我有一个 base64Binary 编码文件(例如:pdf、img、doc)。在 Mule 中,我将此编码数据设置为 outBoundAttachment,最终使用 SMTP 将其作为附件发送。如何解码或仅将解码转换器应用于出站附件并在 smtp 中发送。

<set-attachment attachmentName="xml.pdf" value="#[flowVars['pdf']]" contentType="application/pdf" doc:name="Attachment"/>
<base64-decoder-transformer />
<string-to-byte-array-transformer />
<smtp:outbound-endpoint host="smtp.gmail.com" user="${username}" password="${pwd}"  connector-ref="smtpConnector" to="${toAddress}"  from="${fromAddress}" mimeType="text/html" subject="This is sample from mule"   responseTimeout="10000" doc:name="SMTP">
 <email:object-to-mime-transformer useOutboundAttachments="true"/>
 </smtp:outbound-endpoint> 

目前我得到:

'Failed to transform from "base64" to "org.mule.transformer.types.SimpleDataType"'
'Bad Base64 Input character at 0:60(decimal)'
4

1 回答 1

3

大多数转换器仅在消息的有效负载上工作。要将其应用于属性或变量,您可以使用丰富器并首先将变量设置为有效负载,然后再将其添加回属性。这样原始有效载荷就不会被覆盖。例子:

   <enricher target="#[flowVars.myvar]">
      <processor-chain>
         <set-payload value="#[flowVars.myvar]" />
         <base64-decoder-transformer />
      </processor-chain>
   </enricher>

更多关于丰富的信息:http: //www.mulesoft.org/documentation/display/current/Message+Enricher

于 2014-08-14T08:47:25.550 回答