You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Mule集成Outlook 365发送CSV附件自动添表头问题求助

解决Mule中Outlook 365连接器自动给CSV附件添加表头的问题

问题场景

在Mule集成开发中,需生成无表头的CSV文件并通过Outlook 365连接器作为邮件附件发送。使用DataWeave 2.0设置output application/csv header = false生成的CSV内容无表头,日志及本地文件验证均正常,但通过Outlook 365连接器发送后,接收方收到的附件被自动添加了column_0、column_1格式的表头。

示例请求Payload

[
    {
        "Code": "SDEN1001107GR",
        "UnitUsagesUsage": "Days",
        "Group": "Blank",
        "Category": "A",
        "Description": "Dense 100mm",
        "Rate": "0"
    }
]

原发送附件的DataWeave代码

%dw 2.0
import * from dw::core::Binaries
output application/json
---
{
    "message": {
        "subject": "Summary-" ++ now() as String {
            "format": "yyyyMMdd"
        },
        "body": {
            "contentType": "Text",
            "content": "Please find attached summary"
        },
        "toRecipients": [{
            "emailAddress": {
                "address": p('outlook.toRecipients')
            }
        }],
        "attachments": [{
            "@odata.type": "#microsoft.graph.fileAttachment",
            "name": "service-data.csv",
            "contentType": "application/csv",
            "contentBytes": toBase64(write(payload, "application/csv"))
        }]
    },
    "saveToSentItems": "true"
}

接收方收到的附件内容示例

column_0,column_1,column_2,column_3,column_4,column_5,column_6,column_7,column_8,column_9,column_10,column_11,column_12,column_13,column_14,column_15,column_16,column_17,column_18
 ,SDEN1001107GR,Dense 7.3N 100mm,Days,0,,Blank,,,,,,,,,,,,

解决方法

问题根源在于write函数默认会为CSV输出添加表头,即使之前在其他DataWeave脚本中设置过header=false,调用write时仍需明确传入该参数。

修改attachments中的contentBytes字段,在write方法中添加header: false的配置:

修改后的DataWeave代码

%dw 2.0
import * from dw::core::Binaries
output application/json
---
{
    "message": {
        "subject": "Summary-" ++ now() as String {
            "format": "yyyyMMdd"
        },
        "body": {
            "contentType": "Text",
            "content": "Please find attached summary"
        },
        "toRecipients": [{
            "emailAddress": {
                "address": p('outlook.toRecipients')
            }
        }],
        "attachments": [{
            "@odata.type": "#microsoft.graph.fileAttachment",
            "name": "service-data.csv",
            "contentType": "application/csv",
            "contentBytes": toBase64(write(payload, "application/csv", {header: false}))
        }]
    },
    "saveToSentItems": "true"
}

修改后,生成的CSV内容不会被Outlook 365连接器自动添加表头,接收方收到的附件与本地验证结果一致。

内容的提问来源于stack exchange,提问作者Sambit Swain

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 07:25:32