【问题标题】:Sending email attachment in Mule - Why am I getting payload attachment在 Mule 中发送电子邮件附件 - 为什么我收到有效负载附件
【发布时间】:2017-07-03 19:46:53
【问题描述】:

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

Mule 生成的邮件有两个附件。

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

我怎样才能摆脱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>   

这是我在收件箱中收到的内容。

【问题讨论】:

    标签: mule


    【解决方案1】:

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

    【讨论】:

    • 感谢您的回答。这个让我莫名其妙。我厌倦了那个。我仍然得到相同的结果。没有变化。
    • 所以我发现了问题所在。这几乎是这里回答的内容,因此我将其标记为答案。它是 smtp 配置(而不是 set-payload)元素上的 mimeType。
    【解决方案2】:

    您能否尝试在附加之前将 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" />
    

    让我们知道是否正常工作,问题是发送前文件的序列化

    【讨论】:

      猜你喜欢
      • 2013-10-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-11-30
      • 1970-01-01
      • 2015-09-09
      相关资源
      最近更新 更多