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

如何通过Data Factory发送含SSMS表查询结果附件的邮件?

从SSMS表取数并通过Data Factory发送带附件邮件的实现方案

方案1:优化现有Logic App+Data Factory流程(解决附件问题)

之前的问题核心是直接传递Lookup的JSON输出无法被Logic App识别为附件,需要先将数据转成可识别的文件格式,再通过Logic App发送:

  • 步骤1:在ADF中导出查询结果为文件
    • 若数据量≤5000行:先用Lookup活动执行SQL查询获取数据,再通过Copy活动将数据写入Azure Blob存储的CSV/Excel文件(源选SQL查询结果,目标选Blob存储,指定文件路径和格式)。
    • 若数据量>5000行:直接用Copy活动从SSMS表导出数据到Blob存储的CSV/Excel文件,跳过Lookup活动。
  • 步骤2:修改Logic App配置
    • 保持HTTP触发方式,添加Get blob content步骤:连接你的Blob存储,通过ADF传递的文件路径参数定位目标文件。
    • 添加**Send email (V2)**步骤:
      • 收件人字段引用ADF传入的receiver参数
      • 附件区域选择"添加附件",将Get blob content的输出作为附件内容,设置文件名(如data_report.csv)
      • 邮件主题/正文可结合ADF传入的DatafactoryName、pipelineName参数动态生成
  • 步骤3:更新ADF Web活动的请求Body
    新增文件路径参数,示例:
    {
      "filePath": "reports/data_report.csv",
      "DatafactoryName": "@{pipeline().DataFactory}",
      "pipelineName": "@{pipeline().PipelineName}",
      "receiver": "@{variables('receiver')}"
    }
    

方案2:直接用Data Factory内置Send Email活动(无需Logic App)

若ADF可连接Office 365或SendGrid,可直接完成全流程:

  • 步骤1:同方案1,用Copy活动将SSMS表数据导出到Azure Blob存储的CSV/Excel文件。
  • 步骤2:在ADF管道中添加Send Email活动
    • 配置邮件连接器(Office 365 Outlook或SendGrid)
    • 邮件设置:
      • 收件人填@{variables('receiver')}
      • 主题/正文按需设置,比如@{pipeline().PipelineName} 数据报告
      • 附件区域选择"存储文件",连接Blob存储并指定导出的文件路径,或用动态内容引用路径。

关键注意点

  • 数据量限制:Lookup活动最多返回5000行,数据量大必须用Copy活动导出到存储,不能直接传Lookup输出。
  • 文件格式:优先用CSV或Excel作为附件格式,避免直接传递JSON结构,确保邮件客户端可正常解析。
  • 权限配置:确保ADF拥有SQL表读取权限、Blob存储写入权限;若用Logic App,需赋予其Blob存储读取权限和邮件发送权限。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 00:00:09