mcpField
D
double-opt-in-email

double-opt-in-email

github.com/mukul975营销与增长32339 次安装32 周前更新
代码仓库

关于 double-opt-in-email

用于设计双重确认邮件订阅流程的实用技能,面向处理营销同意的团队,涵盖验证、抑制名单和多司法辖区合规要求。

主要功能

  1. 01两步式邮件同意流程
  2. 02邮件格式验证
  3. 03抑制名单检查
  4. 04令牌过期与重试处理
  5. 05多司法辖区同意规则

适用场景

  1. 01构建新闻邮件注册流程
  2. 02避免向抑制名单地址发送确认邮件
  3. 03处理过期或重复使用的确认链接

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/mukul975/privacy-data-protection-skills --skill double-opt-in-email

安装后在 Claude Code 中输入/double-opt-in-email确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

assets/
template.md
references/
standards.md
workflows.md
scripts/
process.py

详细介绍

实施双重确认订阅

概述

双重确认订阅(DOI)是电子邮件营销同意的黄金标准。它需要两个步骤:(1)用户提交电子邮件地址并表示有兴趣;(2)用户点击验证邮件中的确认链接。这样便能创建可验证的同意记录,满足 GDPR 第 7(1) 条(可证明性)、《电子隐私指令》第 13 条(电子营销须事先获得同意),以及德国联邦最高法院(BGH)的裁决要求;这些裁决已确立 DOI 为德国的预期标准。

双重确认订阅工作流

START: User enters email on CloudVault SaaS Inc. sign-up or newsletter form
  │
  ├─► Step 1: Initial Opt-In Request
  │     ├─ User enters email address
  │     ├─ User ticks unticked checkbox: "Send me product updates and news"
  │     ├─ Validate email format (RFC 5322)
  │     ├─ Check suppression list — if email is suppressed, do NOT send confirmation
  │     └─ Display: "Check your email to confirm your subscription."
  │
  ├─► Step 2: Generate Confirmation Token
  │     ├─ Create cryptographically random token (256-bit, URL-safe base64)
  │     ├─ Associate token with: email address, purpose, timestamp, IP, user agent
  │     ├─ Set expiration: 48 hours from generation
  │     └─ Store pending subscription record (status: "pending_confirmation")
  │
  ├─► Step 3: Send Confirmation Email
  │     ├─ From: [email protected]
  │     ├─ Subject: "Confirm your CloudVault newsletter subscription"
  │     ├─ Body:
  │     │   ├─ "You requested to receive product updates from CloudVault SaaS Inc."
  │     │   ├─ "Click below to confirm:"
  │     │   ├─ [Confirm Subscription] button → confirmation URL with token
  │     │   ├─ "If you didn't request this, you can ignore this email."
  │     │   ├─ "This link expires in 48 hours."
  │     │   └─ Controller details: CloudVault SaaS Inc., 42 Innovation Drive, Dublin
  │     ├─ Headers:
  │     │   ├─ List-Unsubscribe: <mailto:[email protected]>
  │     │   └─ List-Unsubscribe-Post: List-Unsubscribe=One-Click
  │     └─ Note: This confirmation email is NOT marketing — it is transactional
  │
  ├─► Step 4: User Clicks Confirmation Link
  │     ├─ Validate token: exists, not expired, not already used
  │     ├─ If valid:
  │     │   ├─ Update subscription status: "confirmed"
  │     │   ├─ Record consent with full audit trail:
  │     │   │   ├─ Initial request: timestamp, IP, user agent
  │     │   │   ├─ Confirmation: timestamp, IP, user agent
  │     │   │   └─ Consent text version hash
  │     │   ├─ Add email to active marketing list
  │     │   └─ Display: "Subscription confirmed! You'll receive updates from CloudVault."
  │     │
  │     ├─ If expired:
  │     │   ├─ Display: "This link has expired. Please subscribe again."
  │     │   └─ Delete pending record
  │     │
  │     └─ If already used:
  │           └─ Display: "You're already subscribed."
  │
  └─► Step 5: Ongoing Management
        ├─ Every marketing email includes one-click unsubscribe (RFC 8058)
        ├─ Unsubscribe adds to suppression list (permanent)
        ├─ Consent records retained for demonstration per Art. 7(1)
        └─ Re-consent requested after 24 months of inactivity

令牌过期与重试处理

情况操作原因
令牌过期(48 小时)删除待处理记录,不发送提醒避免垃圾邮件风险;用户可以重新订阅
用户重复请求如已有待处理请求,则不发送第二封确认邮件防止邮件泛滥
邮件退信将待处理记录标记为“已退信”,不重试电子邮件地址无效
令牌被使用两次显示“已订阅”页面防止重复记录

抑制名单管理

抑制名单对于遵守《CAN-SPAM 法案》第 7704(a)(3)(A) 条(10 天内处理退订)和 GDPR 第 17(3)(c) 条(为履行法律义务而保留数据)至关重要:

  1. 有人退订时:立即将其电子邮件添加到抑制名单
  2. 抑制名单永久保留:绝不自动从抑制名单中删除电子邮件
  3. 发送前检查:发送任何营销邮件之前,以及发送 DOI 确认邮件之前,务必检查抑制名单
  4. 抑制名单中的电子邮件重新订阅时:允许重新订阅,但必须重新完成 DOI 确认;仅在点击确认链接后才从抑制名单中删除

多司法管辖区合规

要求GDPR + ePrivacyCAN-SPAM(美国)CASL(加拿大)
同意类型事先选择加入(建议使用 DOI)选择退出(但 DOI 是最佳实践)明确同意(默示同意的适用范围有限)
退订第 7(3) 条——退订应与订阅同样容易10 个工作日内处理10 个工作日内处理
发件人身份信息第 13(1)(a) 条必须提供实际邮寄地址必须提供联系信息
记录保存第 7(1) 条——证明已获得同意保存退订请求 3 年保存同意记录
处罚最高 2,000 万欧元或全球营业额的 4%每封邮件最高 51,744 美元每次违规最高 1,000 万加元

主要法规参考

  • 《电子隐私指令》第 13 条——未经请求的通信
  • GDPR 第 7(1) 条——证明已获得同意
  • GDPR 第 7(3) 条——撤回同意
  • 《CAN-SPAM 法案》(15 U.S.C. 7701-7713)——美国商业电子邮件要求
  • CASL(S.C. 2010, c. 23)——加拿大反垃圾邮件法
  • RFC 8058——列表邮件标头中的单击功能信号
  • 德国 BGH VI ZR 269/12(2004)——双重确认订阅作为电子邮件营销同意的标准
  • CNIL 关于商业推广的审议文件(2022)——电子邮件同意要求

评论

支持 Markdown