邮件里一键审批,不怕链接扫描器误点
直接在邮件里审批伙伴申请、内容任务申请和内容交付。为什么链接会先打开一个确认页。
RelayWonder 现在支持在邮件里一键审批三类决定:新的伙伴申请、内容任务申请和内容交付。每封通知邮件都带一个签名链接,14 天内有效,不需要登录。链接打开的是一个确认页,上面写着谁申请了、申请了什么;在你按下页面上的按钮之前,什么都不会改变。这一步是有意为之。像 Microsoft Defender Safe Links 这样的企业邮件过滤会在邮件送达前扫描其中的链接 [1],而 HTTP 标准把 GET 请求视为安全方法,就是为了让自动抓取和预取可以放心访问 [2];如果打开链接就直接批准,机器也能替你批准。按我们的示例估算,一个每月做 48 个决定的品牌,大约能省下一小时在控制台里来回找的时间。
哪些事可以在邮件里审批?
现在有三类通知带一键链接。每一类打开的确认页都按决定类型定制,包含你不打开控制台也能做决定所需的信息。
| 邮件 | 确认页显示 | 按钮 | 确认后会发生什么 |
|---|---|---|---|
| 新的伙伴申请 | 伙伴姓名和邮箱、计划、对方的留言 | 批准伙伴 / 拒绝 | 伙伴拿到追踪链接和优惠码 |
| 内容任务申请 | 伙伴、任务、留言、对方报价与任务默认奖励并列 | 接受(或接受对方报价)/ 拒绝 | 伙伴可以按约定价格开始制作内容 |
| 内容已交付 | 伙伴、任务、内容链接、自动内容检查结果、奖励 | 确认交付 | 奖励写入账本 |
有两处细节很重要。对于附了报价的任务申请,接受按钮写的是“接受对方报价”,页面会把报价和任务默认奖励放在一起,你永远不会接受一个没看到的价格;如果想给出不同的金额,页面上有进入控制台的链接,还价在控制台里做。对于内容交付,页面会显示自动内容检查的结果(页面能否访问、链接和优惠码是否在、有没有披露、是否提到品牌、是否回答了任务里的问题),以及内容本身的链接。拒绝一次交付通常需要给伙伴写说明,所以在控制台里做。
为什么链接先打开确认页,而不是直接批准?
最直接的设计是“点一下就批准”的链接。但这是错的,因为打开邮件里链接的不只有人。
微软关于 Defender for Office 365 中 Safe Links 的文档写道:只要 Safe Links 开启,无论链接是否被改写,都会在邮件送达前被扫描;没有有效信誉的链接会在后台异步“引爆”检测;还有一个推荐设置会把邮件扣住,直到链接扫描完成 [1]。其他邮件安全产品的做法类似。一个为了检查而请求你审批链接的扫描器,在你的服务器看来就是一个打开链接的访客。如果打开链接就等于批准,扫描器就会替你批准,甚至可能在品牌方有人读到邮件之前。
浏览器也会做类似的事。MDN 对 Speculation Rules API 的说明指出,预取会在用户真正跳转之前,用一次 GET 请求下载页面;如果这个地址会在服务端产生副作用,就会出问题,它举的例子包括退出登录的链接和加入购物车的链接 [3]。审批链接正是这类地址。
背后的规则由来已久。HTTP 语义标准 RFC 9110 把 GET、HEAD、OPTIONS 和 TRACE 定义为安全方法,说明这种区分是为了让自动抓取程序和预取能够正常工作,并要求资源所有者在通过安全方法访问时,必须禁用或拒绝不安全的操作 [2]。邮件里的链接永远是 GET。所以链接可以给你“看”东西,但“做”必须是另一个请求,而且只有人按下按钮才会发出。
确认页就是做这件事的。无论是你、扫描器还是预取程序打开链接,都只是渲染出一个页面,什么都不改变;按下按钮才会把决定作为一个单独的请求发出去。扫描器顺着链接过来,看到一个带按钮的页面,就离开了。
签名审批链接是怎么工作的
每个链接带一个小令牌,有四个字段:决定类型(伙伴申请、任务申请或内容交付)、对象 id、品牌 id,以及邮件发出后 14 天的过期时间。令牌用 HMAC-SHA256 签名,密钥由服务器密钥派生。HMAC 在 RFC 2104 中定义,用来验证一条消息来自持有共享密钥的一方且未被篡改 [4]。链接被打开时,服务器重新计算签名,用恒定时间比较,检查是否过期,然后才去查找对应的对象。
因为签名覆盖全部四个字段,改动任何一个都会让链接失效。你不能通过修改 id 把一位伙伴的审批链接变成另一位的,也不能把一个品牌的链接用在另一个品牌的对象上。过期时间在签名部分里,所以也无法延长。14 天之后,页面会提示链接已过期,并引导你去控制台。
链接打开两次没有影响;别人已经做了决定之后再按按钮,也没有影响。决定只对仍处于待处理状态的对象生效。如果同事一小时前已经在控制台里批准了这位伙伴,确认页会显示“已经处理过了”,并给出控制台链接。用一封旧邮件不可能把同一件事批准两次,也不可能推翻之前的决定。
安全模型是什么?
链接本身就是授权。这正是它能做到一键的原因,也是需要理解的取舍:在过期或被处理之前,拿到链接的任何人都能对那一个对象做那一个决定。实际中,邮件只发给品牌自己的团队,涉及的也都是业务决定,而不是付款:在品牌自己跑每月打款批次之前,不会有任何钱付出去。但你应该像对待重置密码邮件一样对待这些邮件,不要转发到团队以外。
| 情形 | 会发生什么 | 原因 |
|---|---|---|
| 邮件扫描器或 Safe Links 打开链接 | 渲染确认页,什么都不改变 | 打开是 GET,决定是另一个请求 [1] [2] |
| 浏览器预取链接 | 同上 | 预取是一次 GET [3] |
| 有人修改链接里的对象 id | 链接被拒绝 | HMAC 签名不再匹配 [4] |
| 14 天后打开链接 | 提示“链接已过期”,并给出控制台链接 | 过期时间在签名令牌里 |
| 同事已经处理了该对象 | 提示“已经处理过了” | 决定只对待处理的对象生效 |
| 邮件被转发给团队以外的人 | 对方在过期前可以做那一个决定 | 签名链接就是授权,不要转发 |
链接不能做什么同样重要。它不能让任何人登录,不能改设置,看不到其他伙伴或其他对象,不能导出数据,也不能动钱;RelayWonder 从不经手伙伴的钱,打款仍是每月一批,由品牌从自己的 PayPal 或 Wise 账户支付。一个泄露的链接最多在 14 天内暴露一个对象上的一个决定;而一个泄露的登录会话会暴露整个控制台,这就是链接不创建会话的原因。
一键审批能省多少时间?
省下的不是做决定的时间,读一份申请在哪里都要同样的时间;省下的是决定前后的步骤:切到控制台、会话过期了就重新登录、找到对应的品牌和列表、打开对象。对一个看摘要就能定的决定来说,这些步骤占了大部分工夫。
| 决定 | 每月数量 | 控制台额外耗时(每次 90 秒) | 邮件额外耗时(每次 15 秒) | 节省 |
|---|---|---|---|---|
| 伙伴申请 | 30 | 45 分钟 | 7.5 分钟 | 37.5 分钟 |
| 任务申请 | 10 | 15 分钟 | 2.5 分钟 | 12.5 分钟 |
| 内容交付 | 8 | 12 分钟 | 2 分钟 | 10 分钟 |
| 合计 | 48 | 72 分钟 | 12 分钟 | 60 分钟 |
每月一小时并不算多。更大的影响在响应速度上,这一点很难诚实地给出数字。一位周二晚上申请你计划的创作者,周三早上收到回复时仍然有兴趣;等到下周一才收到回复,他往往已经去了收件箱里的下一个计划。当审批只是通知里的一次点击,决定往往发生在读到通知的那一刻,而不是下一次有人打开控制台的时候,伙伴是能感觉到的。
你批准之后,伙伴看到什么
伙伴那边什么都没变,这正是重点:邮件只是通往同一个决定的捷径。你批准申请后,伙伴会收到一封批准邮件,里面有佣金条款,以及查看追踪链接和优惠码的链接;如果你的白标伙伴门户已上线就指向门户,否则指向 RelayWonder。你接受任务申请后,伙伴可以按约定价格开始做内容。你确认交付后,奖励作为一条正数记录写入只增不改的账本,和这条内容专属追踪链接带来的佣金放在一起,按计划的正常周期变为可支付。
怎么用,以及什么时候改用控制台
- 确保负责伙伴决定的人能收到品牌的伙伴通知。一键链接就在他们本来就会收到的邮件里。
- 打开链接,读确认页。上面有快速决定所需的信息:谁、申请什么,任务申请还会显示价格。
- 只有摘要足够时才按按钮。对于内容交付,先打开内容链接,看一下内容检查结果。
- 需要更多背景时用控制台:伙伴的历史记录、给出不同金额的还价,或者拒绝交付时需要写的说明。
- 不要把通知邮件转发到团队以外。如果误转了,就在控制台里处理该对象;一旦处理完,链接就不再起作用。
一个好习惯是:只有答案很明显时才在邮件里批准,有疑问的留到每周在控制台里集中处理。链接在简单情况上省时间,而大部分情况都是简单的;控制台则为困难的情况保留完整记录。
FAQ
在 RelayWonder 里哪些决定可以在邮件里审批?
三类:新的伙伴申请、内容任务申请和内容交付。申请可以在确认页上批准或拒绝;交付可以确认,确认后奖励写入账本。还价和拒绝交付在控制台里做。
为什么审批链接先打开一个页面,而不是直接批准?
邮件安全工具和浏览器会自动打开链接。微软的文档说明 Safe Links 在送达前扫描链接,RFC 9110 把 GET 请求视为安全方法,以便自动抓取和预取访问。确认页确保只有人按下按钮才能批准。
一键审批链接多久有效?
自邮件发出起 14 天。过期时间在签名令牌里,无法修改。过期后页面会提示链接已失效,并给出控制台链接。
在邮件里审批需要登录吗?
不需要。签名链接就是对那一个对象做那一个决定的授权,它不会创建登录会话。也正因为如此,不要把这些邮件转发到团队以外。
如果同事已经批准了同一份申请会怎样?
确认页会显示已经处理过了,并给出控制台链接。决定只对待处理的对象生效,所以旧邮件不能把同一件事批准两次,也不能推翻之前的决定。
有人能改链接去批准另一位伙伴吗?
不能。链接用 HMAC-SHA256 对决定类型、对象 id、品牌 id 和过期时间一起签名,改动任何一项都会导致签名校验失败,链接会被拒绝。
Sources
- Microsoft Learn:Microsoft Defender for Office 365 中的 Safe Links · 链接在送达前被扫描;无有效信誉的链接在后台引爆检测;可选择扣住邮件直到扫描完成。2026 年 10 月核对。
- RFC 9110:HTTP 语义,9.2.1 节 安全方法 · GET、HEAD、OPTIONS 和 TRACE 是安全方法;这种区分是为了爬虫和预取;资源所有者必须禁止通过安全方法执行不安全操作。2026 年 10 月核对。
- MDN:Speculation Rules API · 预取使用一次 GET;退出登录、加入购物车等有副作用的地址不适合预取。2026 年 10 月核对。
- RFC 2104:HMAC 消息认证的密钥散列 · 审批令牌签名所用的构造。2026 年 10 月核对。