本页由英文自动翻译。

阅读英文版
Proxy Mail QA

测试每人只获得一次新用户优惠

大多数邮件服务商会把 name+anything@ 和 NAME@ 投递到同一个收件箱,所以在很多应用看来,一个人就像多个新客户,每个都能拿到新用户折扣。用每个变体注册,看看你的应用有没有发现。

更新于

可以尝试的变体

变体 示例 到达
普通 k3f9x2@mailclub.dev 该收件箱
加号标签 k3f9x2+promo1@mailclub.dev 同一个收件箱
大写字母 K3F9X2@mailclub.dev 同一个收件箱

任何 +tag 都可以,收件箱会显示每封邮件发往哪个变体。智能体通过 get_address_variants 获取能投递的变体。

测试一下

  1. 注册领取优惠:使用普通地址,并记下优惠券。
  2. 再次注册:先用加号标签变体,再用大写字母,每次都在无痕窗口中进行,避免会话延续。
  3. 查看收件箱。 每封邮件都会显示发往哪个变体。如果收到了第二张优惠券,它的 offer_reuse 检查会失败,Accounts 页面会警告新用户优惠发放了不止一次。

检查还会说明优惠券是否不同(应用每次都发了新券),还是同一个共享代码(这时需要结账环节拒绝第二次使用)。用 优惠券结果 记录结账时的处理:重复领取的优惠券如果被接受,检查就会失败。

在测试中

offer-reuse.spec.ts
const tagged = address.replace('@', '+promo1@');
let submitted = new Date();
await signUpForOffer(page, address);
await qa.waitForCode(address, { type: 'coupon', since: submitted, timeout: 600 });
submitted = new Date();
await signUpForOffer(page, tagged);
// The same person: no second coupon should come.
await qa.expectNoEmail(tagged, { since: submitted, type: 'code', subtype: 'coupon', timeout: 300 });
expect((await qa.offers(address)).passed).toBe(true);

智能体通过 get_address_variants、wait_for_code(kind 为 coupon)和 check_offers 获得相同功能,test_offer_reuse 提示词会一步步带你完成。

在你的下一次注册测试中试试

免费版,无需信用卡。创建一个地址,看着验证码或链接送达。

免费创建账号打开应用

常见问题

需要开启什么吗?

目前是的。营销和优惠邮件处于 Labs 阶段:在应用的 Account settings → Labs 中开启。它也会作用于你的 API 密钥 和智能体;开启前,它们的营销工具会返回说明此情况的错误。

这些变体真的会进入同一个收件箱吗?

是的。发给 name+promo1@ 和 NAME@ 的邮件都会到达 name@,与 Gmail、Outlook 和大多数服务商一样,所以这个测试与真实用户能做的事一致。

那 Gmail 的点号呢,比如 n.a.m.e@gmail.com?

Proxy Mail QA 无法测试这种情况:在我们的域名上,加一个点就是另一个地址。如果你的应用会规范化 Gmail 地址,请用单元测试来测这条规则。

我的应用应该完全禁止 +tag 吗?

通常不应该:很多人用它来整理邮件。常见做法是在检查某人是否领过优惠时规范化地址,而发送邮件时保留用户输入的地址。

你的应用是用 AI 工具构建的?选择你的工具

对本页有疑问?

可以用任何语言提问。文档可以立即回答,你也可以把问题发给 Proxy Mail QA 团队,他们会用英文回复。