历史与故障排除
该应用执行的每一项操作都会被记录下来。当邮件未送达或内容有误时,历史记录是首先要查看的地方。

列表
列:ID、名称、类型、状态、持续时间和****执行时间。
按以下条件筛选:
- 操作类型 - HTTP 请求或电子邮件
- 状态 - - 成功、失败、待处理或跳过(已取消订阅)
“搜索”功能可匹配布局或请求的名称。若通过 HTTP 请求的**“请求历史记录**”按钮进入此页面,系统会预先筛选出该条请求;点击**“显示所有事件**”按钮可清除筛选条件。
导出为 CSV
在“历史记录”页面顶部点击**“导出 CSV**”将按当前筛选条件原样下载列表:您设置的搜索条件和所有筛选条件均会应用于导出文件。该文件命名为history-<date>.csv,最多包含最近的 50,000 条事件。 如果您的筛选条件匹配的结果超过该数量,应用会在下载完成后提示您;请缩小筛选范围(例如仅限一种布局或一种状态),以便获取更早的事件。
列:日期(UTC)、ID、类型、状态、布局或请求、收件人、抄送、密送、主题、错误和持续时间(毫秒)。 列名和状态标签采用您管理员界面中的语言显示。收件人、抄送、密送和主题仅在电子邮件中显示。导出内容包含“历史记录”列表中显示的信息:Shopify Flow变量、请求正文和响应不包含在内。
需要注意的三点
红色“失败”徽章表示发送或请求未成功。点击它可查看提供商的错误信息。
琥珀色的“空变量”标记表示电子邮件_已_送达,但一个或多个 {{ variables.x }} 占位符渲染后显示为空 - - 因此收件人收到的邮件中出现了一个空白处。这正是过去难以察觉的故障:该行显示为绿色,服务商已接收该邮件,而只有收件人能看到这个问题。
灰色“跳过”徽章表示营销邮件未被发送,原因是所有“收件人”都已取消订阅您的营销邮件。这不属于发送失败,不会占用您的套餐配额,也不会计入成功率。请参阅 营销邮件与退订。
详细视图

打开条目后显示:
| 卡片 | 目录 |
|---|---|
| 空变量警告 | 哪些占位符没有返回任何结果,以及 Shopify Flow 是将它们作为空值返回还是根本没有返回 |
| 未发送:收件人已取消订阅 | 显示在“跳过”事件中而非错误中,并附有**“取消订阅**”链接 |
| 活动详情 | 事件 ID、操作类型、状态、持续时间、执行时间以及 Shopify Flow 运行 ID |
| 错误信息 | 当操作失败时,提供商或 API 的实际错误 |
| 请求数据 | 已发送的内容 - - 收件人、发件人、解析后的主题、变量或解析后的 HTTP 请求。对于营销邮件,to 表示在移除已退订地址后的收件人列表,而 suppressed 则显示被移除的数量 |
| 响应数据 | 返回的内容是 - - 服务商的邮件ID,还是HTTP状态码和正文?对于营销邮件,recipients 会列出所有收件人地址(如 sent、failed 或 skipped),并附上相应的邮件ID或错误信息。 |
标题会告诉你使用了哪个发件人,例如 Order email via support@acme.com (MICROSOFT)。
一封营销邮件会以“每名‘收件人’(To)对应一条消息”的方式发送,但在“历史记录”中仅计为一个事件。当所有收件人都收到消息时,该事件状态为**“成功”;只要在连续发送多条消息后有一条发送失败,该事件状态即变为“失败”**;此时,错误信息会列出未收到消息的收件人,而“响应数据”中的recipients字段则显示了已收到消息的收件人。

重新发送操作
详情页面上有一个**“重新发送**”按钮。该按钮会使用原始变量重新渲染布局,并通过同一发件人再次发送给原始收件人,或者完全按照原始发送方式重新执行该 HTTP 请求。
该操作会立即执行,并计入您的套餐中一次操作。对于通过备用默认发件人发送的操作,无法重新发送。
已跳过的事件没有“重新发送”按钮:由于未发送任何内容,因此也没有内容可重新发送。待客户重新订阅后,请再次运行该工作流程。重新发送营销邮件时,系统会再次检查退订列表,并排除自首次发送以来已退订的用户;如果此时已无用户,则拒绝重新发送。
常见问题
**这封电子邮件从未送达,且“历史记录”中完全没有相关条目。**该操作从未执行过。问题出在 Shopify Flow 上,而不是这里:请检查工作流程是否已启用、触发器是否已触发,以及是否有任何条件实际匹配。标签条件是完全匹配的,因此 VIP 和 vip 是不同的。
**该条目显示了“变量为空”的标记。**您的布局要求提供一个变量,但该变量要么未由Shopify Flow提供,要么被提供为空。请打开该条目以查看具体情况。完整操作指南请参见 从Shopify Flow传递数据。
该条目已被跳过。该邮件模板属于营销类模板,且所有“收件人”均在您的退订列表中,因此应用未发送该邮件。这说明退订功能运行正常。如果该邮件是客户必须收到的(例如订单或发货更新),则应使用交易类模板。请参阅 营销邮件与退订。
**测试邮件看起来没问题,但正式发送的邮件却是空的。**布局编辑器中的测试变量仅适用于预览和测试发送。正式发送时使用的是Shopify Flow操作中的“变量(JSON)”字段,这完全是两码事。这是最常见的混淆来源。
状态显示为“失败”,并出现身份验证错误。对于 SMTP,可能是凭据或端口有误 - - 请打开 SMTP 服务器并点击“测试连接”。对于 Microsoft 365 或 Google,可能需要重新授权连接:请检查**“邮件发件人”→“已连接的账户**”,查看是否有**“需要重新连接**”的标记。
**一封电子邮件的正文显示为 [object Object]。**你对整个对象进行了插值。在电子邮件中,你必须直接访问该对象({{ variables.customer.firstName }})或对其进行循环遍历。只有 HTTP 请求会自动将对象序列化为 JSON。
该邮件因大小超限而被拒收。总大小超过 20 MB 的附件将被拦截,且 Microsoft 365 会拒绝大于 4 MB 的内嵌附件。请将大文件切换为链接模式。请参阅 附件和图片。
**HTTP 请求因SSRF blocked而失败。**目标地址解析为私有或内部网络地址,出于安全考虑被拒绝。请使用可从外部访问的端点。
**所有操作都同时失败,并显示“套餐限额”提示。**您已用完30天的配额。请参阅 套餐与使用情况。
询问Sidekick
Shopify Sidekick 可以直接查询此应用,且仅限只读。这通常比手动筛选“历史记录”更快:
- “本周有没有邮件发送失败?”
- “为什么我上一封邮件没发出去?”
- “已设置哪些邮件发件人?”
- “我有针对 Airtable 的 HTTP 请求吗?”
Sidekick 绝不会返回密钥、SMTP 密码、OAuth 令牌、HTTP 头值或原始负载 - - 这些信息需要您在应用内操作才能获取。
还是卡住了
请提交一份错误报告,其中需包含您的商店域名、布局或请求名称,以及运行的时间戳。请参阅帮助中心中的**“报告错误”部分**。

