Coze Bot可通过代码节点生成base64编码的Excel附件数据,再经Zapier或自建Flask服务解码并邮件发送;关键要求是代码节点必须返回含file_data和filename字段的JSON,且SMTP需使用App Password而非登录密码。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

你需要让扣子(Coze)平台上的AI助手生成的数据报告,不经过人工下载和转发,直接作为附件发送到指定邮箱。这要求打通Coze Bot的输出能力与邮件服务链路,且必须绕过Coze原生不支持SMTP直发的限制。
确认Coze Bot能否输出结构化报告文件
进入Bot编辑页 → 点击「工作流」→ 新建一个节点,类型选「代码」→ 在Python代码框中写入生成逻辑:用pandas构造DataFrame → 调用.to_excel()保存为bytes对象 → 用base64.b64encode()编码 → 最后return {"file_data": encoded_str, "filename": "report_20260703.xlsx"}。这一步是后续触发邮件的前提,【必须返回base64编码后的二进制内容,不能只返回本地路径或URL】。
测试该节点是否能稳定输出含file_data字段的JSON响应。若返回空或格式错误,邮件环节将无法获取附件数据。
用Zapier中转实现附件邮件发送
Zapier是目前最稳妥的Coze外挂邮件通道,它能接收Coze Webhook推送的base64数据,并自动解码、封装为真实附件。
方法一:Zapier标准流程
① 在Zapier新建Zap → 触发应用选「Webhooks by Zapier」→ 事件选「Catch Hook」→ 复制生成的Webhook URL;
② 回到Coze工作流,在代码节点后加「HTTP请求」节点 → 方法选POST → URL粘贴上一步复制的链接 → Body选「Raw」→ 内容填{{context.output}}(确保它包含file_data和filename字段);
③ Zapier下一步选「Formatter by Zapier」→ 操作选「Text」→ 「Convert Base64 to File」→ 输入字段选file_data → 输出文件名字段选filename;
④ 最后一步选「Gmail」或「Outlook」→ 动作选「Send Email」→ 收件人填目标邮箱 → 主题写“【自动报告】{{context.timestamp}}” → 附件字段选上一步生成的文件。
注意:Gmail账号必须开启两步验证并生成App Password,否则Zapier无法登录发送。
用自建Python服务接收并转发(适合企业内网)
如果你有服务器权限且需规避Zapier的第三方依赖,可部署轻量HTTP服务接收Coze推送,再调用SMTP发信。
在服务器运行以下Flask脚本:
from flask import Flask, request
import smtplib, base64
from email.mime.multipart import MIMEMultipart
from email.mime.base import MIMEBase
from email import encoders
app = Flask(__name__)
@app.route('/send', methods=['POST'])
def send_report():
data = request.json
file_bytes = base64.b64decode(data['file_data'])
msg = MIMEMultipart()
msg['To'] = 'recipient@company.com'
msg['Subject'] = f"数据报告 - {data.get('filename', 'report.xlsx')}"
part = MIMEBase('application', 'vnd.openxmlformats-officedocument.spreadsheetml.sheet')
part.set_payload(file_bytes)
encoders.encode_base64(part)
part.add_header('Content-Disposition', f'attachment; filename="{data["filename"]}"',)
msg.attach(part)
server = smtplib.SMTP_SSL('smtp.exmail.qq.com', 465)
server.login('sender@company.com', 'your_app_password')
server.send_message(msg)
server.quit()
return 'OK'
启动服务后,把该服务器地址(如https://api.yourdomain.com/send)填入Coze的HTTP请求节点URL即可。这一步要求【SMTP密码必须是邮箱服务商提供的专用App Password,不可用登录密码】。


















