在Mule中发送电子邮件附件 - 为什么我要获得有效负载附件

时间:2017-06-28 02:29:40

标签: mule

我正在使用SMTP连接器在Mule中发送带有csv附件的电子邮件。

从Mule生成的电子邮件上有两个附件。

第一个是名为Payload的文件。 第二个是我明确添加myFile<date>.csv

的文件

如何摆脱Payload附件?根据我的理解,Payload文件中的内容应该显示为电子邮件的内容。但这并不是正在发生的事情,而是作为一种依恋出现。

以下是我发送电子邮件的子流程图。进入的有效载荷是csv。

<sub-flow name="paymentReconSendMailSubFlow">
    <set-attachment attachmentName="myFile-#[server.dateTime.format(&quot;yyyyMMddHHmmss&quot;) + '.csv']" value="#[payload]" contentType="application/csv" doc:name="Attachment"/>  
    <set-payload doc:name="Set Payload" value="#[null]"/>
    <smtps:outbound-endpoint host="${smtp.host}" port="${smtp.port}" user="${smtp.username}" password="${smtp.password}" connector-ref="SMTP" to="${smtp.toAddress}" from="${smtp.fromAddress}" subject="BLAH"   replyTo="${smtp.replyToAddress}" responseTimeout="10000" mimeType="text/html" doc:name="SMTP"/>
</sub-flow>   

以下是我收件箱中的内容。

enter image description here

2 个答案:

答案 0 :(得分:1)

看起来Mule仍然将消息有效负载的内容类型设置为application / csv,因此认为您的null有效负载是CSV。尝试添加mimeType =&#34; text / plain&#34;到set-payload元素

答案 1 :(得分:0)

你可以尝试在附加之前将csv文件序列化为字节数组吗?

例如:

  <file:inbound-endpoint path="${output.folder}" doc:name="File"/> 
  <file:file-to-byte-array-transformer  doc:name="File to String"/>
   <set-attachment value="#[message.payload]" contentType="application/csv" 
   attachmentName="#['myfile.csv']" 
   doc:name="Attachment" />

告诉我们是否正常工作,问题是在发送

之前文件的序列化