> ## Documentation Index
> Fetch the complete documentation index at: https://documentation.onesignal.com/llms.txt
> Use this file to discover all available pages before exploring further.

# 为邮件设置确认选择加入

> 学习如何在 OneSignal 中使用标签、细分和旅程实施双重选择加入（确认选择加入）流程，以提高参与度、合规性和列表质量。

## 概述

**确认选择加入**（也称为**双重选择加入**）要求新的邮件订阅者通过点击后续邮件中的确认链接来验证他们的邮件地址。这个额外步骤确保您的邮件订阅者真正希望收到您的邮件。

<Info>
  本指南将指导您如何使用至少 1 个标签、细分和旅程设置确认选择加入工作流程。有关计划限制的详细信息，请参阅我们的[定价页面](https://onesignal.com/pricing)。

  如果您想直接通过 API 设置确认选择加入流程，请参阅[验证魔术链接 OTP 示例](./example-verification-magic-link-otp)。
</Info>

### 单一 vs 双重选择加入

* **单一选择加入**：用户输入他们的邮件（例如，注册表单）并立即被添加到您的邮件列表。
* **双重选择加入（确认选择加入）**：用户输入邮件后，必须点击验证邮件中的确认链接才能被添加。

#### 双重选择加入的好处

* 提高参与度和列表质量
* 验证与 **GDPR**、**CAN-SPAM** 和其他法规的合规性
* 过滤虚假、垃圾邮件陷阱或输入错误的地址
* 降低退信和投诉率
* 防止滥用和列表轰炸

<Note>
  大多数专业发送者使用双重选择加入来保护他们的域名声誉并最大化[送达性](./email-deliverability)。
</Note>

***

## 如何创建确认选择加入旅程

此设置将使用名为 `confirmed_opt_in` 的标签，其值为 `true` 或 `false` 来识别已确认的订阅者。如果您已经有一个已确认的邮件订阅者列表，您可以使用 [CSV 导入器](./import)为这些用户添加标签。

**前置条件：**

在开始之前，请将您的邮件地址设置为 OneSignal 中的测试订阅。更多详细信息请参阅[测试订阅](./test-users)。

### 1. 创建未确认选择加入的用户细分

在 OneSignal 仪表板中，转到**受众 > 细分**并点击**新建细分**。

构建一个名为**未确认邮件选择加入**的细分，使用以下过滤器和 **AND** 逻辑：

* **用户标签** `confirmed_opt_in` **"不是"** `true`
* **设备类型**是**邮件**
* **测试用户**为 true（在生产环境上线前将移除）

此细分将包含所有具有邮件订阅且标签 `confirmed_opt_in` 设置为 `false` 或未设置的测试用户。

<Frame caption="未确认邮件选择加入细分">
  <img src="https://mintcdn.com/onesignal/P-72FyFfB9AgPzK3/images/tutorials/did-not-confirm-email-opt-in-segment.png?fit=max&auto=format&n=P-72FyFfB9AgPzK3&q=85&s=8192490399d038544ae86863fce50a8c" alt="未确认邮件选择加入细分" width="1246" height="866" data-path="images/tutorials/did-not-confirm-email-opt-in-segment.png" />
</Frame>

### 2. 创建确认选择加入邮件模板

导航到**消息 > 模板 > 新建邮件模板**并选择 **HTML 编辑器**或**拖放编辑器**。

设计一封简单的确认邮件：

* 清晰的主题行（例如，"确认您的订阅"）
* 单一突出的**确认 CTA**（"确认订阅"）
* 不要包含任何其他链接，如社交媒体按钮或其他可能分散用户确认过程注意力的 CTA。

以下是您可以复制粘贴到 HTML 编辑器中的入门模板：

```html HTML theme={null}
<!DOCTYPE html>
<html>
  <body style="font-family: Arial, sans-serif; background-color: #f7f7f7; padding: 20px;">
    <table role="presentation" width="100%" cellspacing="0" cellpadding="0" style="max-width: 600px; margin: auto; background: #ffffff; border-radius: 8px; overflow: hidden;">
      <tr>
        <td style="padding: 30px; text-align: center;">
          <h2 style="color: #333;">请确认您的订阅</h2>
          <p style="color: #555;">我们需要验证您的邮件地址才能将您添加到我们的列表中。</p>
          <a href="https://media4.giphy.com/media/v1.Y2lkPTc5MGI3NjExOHgxZjNrcTRvM2FoZTNzNDVhN2c1ZmN3ajdwYjFlcjR6ZmU0MDVuNCZlcD12MV9pbnRlcm5hbF9naWZfYnlfaWQmY3Q9Zw/fxI1G5PNC5esyNlIUs/giphy.gif" 
             style="display: inline-block; padding: 12px 20px; margin-top: 20px; background-color: #007bff; color: #ffffff; text-decoration: none; border-radius: 4px; font-weight: bold;">
             确认订阅
          </a>
          <p style="font-size: 12px; color: #999; margin-top: 30px;">
            如果您没有请求此操作，您可以安全地忽略此邮件。
          </p>
        </td>
      </tr>
    </table>
  </body>
</html>
```

<Frame caption="选择加入邮件模板">
  <img src="https://mintcdn.com/onesignal/P-72FyFfB9AgPzK3/images/tutorials/html-opt-in-template.png?fit=max&auto=format&n=P-72FyFfB9AgPzK3&q=85&s=f466d82e6e3a9ab0d644bb5f84d82bdb" alt="选择加入模板" width="2312" height="1496" data-path="images/tutorials/html-opt-in-template.png" />
</Frame>

<Warning>
  注意"确认订阅"按钮链接到页面 `https://media4.giphy.com/media/v1.Y2lkPTc5MGI3NjExOHgxZjNrcTRvM2FoZTNzNDVhN2c1ZmN3ajdwYjFlcjR6ZmU0MDVuNCZlcD12MV9pbnRlcm5hbF9naWZfYnlfaWQmY3Q9Zw/fxI1G5PNC5esyNlIUs/giphy.gif`

  建议将其更改为您网站上感谢用户确认订阅的页面。
</Warning>

### 3. 构建确认选择加入旅程

导航到**旅程 > 新建旅程**并选择**从头开始**。

#### 旅程设置

1. 为旅程命名：`确认邮件选择加入`或任何您喜欢的名称来识别此旅程的作用。
2. 进入规则：包含细分**未确认邮件选择加入**细分。
3. 退出规则：勾选**他们完成了整个旅程**。
4. 重新进入规则：选择**否，他们只能接收一次**。
5. 时间表：选择**立即开始**或安排稍后时间并**永不停止**。

点击**保存**。

#### 邮件消息步骤

添加一个**邮件**消息步骤并选择**确认邮件选择加入**模板。

您的旅程到目前为止应该如下所示：

<Frame caption="邮件消息步骤和旅程设置">
  <img src="https://mintcdn.com/onesignal/P-72FyFfB9AgPzK3/images/tutorials/confirm-email-opt-in-message-step-and-journey-settings.png?fit=max&auto=format&n=P-72FyFfB9AgPzK3&q=85&s=15d881b358d978ce55bfe2c162248744" alt="邮件消息步骤" width="1506" height="1728" data-path="images/tutorials/confirm-email-opt-in-message-step-and-journey-settings.png" />
</Frame>

#### 等待直到步骤

添加一个**等待直到**步骤并将分支 A 条件设置为：

* **上一条消息**
* **确认邮件订阅**模板名称
* **已点击**

勾选**过期分支**选项并设置为"最多等待 `1 天` 并**继续旅程**"。

<Frame caption="等待直到步骤">
  <img src="https://mintcdn.com/onesignal/P-72FyFfB9AgPzK3/images/tutorials/confirm-email-opt-in-wait-until-step.png?fit=max&auto=format&n=P-72FyFfB9AgPzK3&q=85&s=18cd9325a298fca5dc1a3d417469d02b" alt="等待直到步骤" width="754" height="746" data-path="images/tutorials/confirm-email-opt-in-wait-until-step.png" />
</Frame>

#### 为确认的用户添加标签

在分支 **A（消息已点击）**下添加一个**标记用户**操作，将标签设置为 `confirmed_opt_in`，值设置为 `true`。

<Frame caption="标记用户操作">
  <img src="https://mintcdn.com/onesignal/P-72FyFfB9AgPzK3/images/tutorials/confirm-email-opt-in-tag-user-action.png?fit=max&auto=format&n=P-72FyFfB9AgPzK3&q=85&s=001a1d48f7bba349de2b21c297b509e9" alt="标记用户操作" width="900" height="472" data-path="images/tutorials/confirm-email-opt-in-tag-user-action.png" />
</Frame>

当用户点击按钮确认他们的订阅时，他们的 `confirmed_opt_in` 标签将从 `false` 更改为 `true`。这将允许您跟踪哪些用户已确认他们的邮件订阅。

#### 跟进未确认的用户

1 天后，如果用户没有点击按钮确认他们的订阅，他们将走向\*\*过期（1 天）\*\*分支。此时您可以创建一个新的邮件模板并重复该过程（确认邮件订阅 2 > 等待直到点击 > 如果点击则标记）。建议至少再重复一次该过程以确保最佳选择加入率。

<Frame caption="完整确认邮件选择加入旅程示例">
  <img src="https://mintcdn.com/onesignal/P-72FyFfB9AgPzK3/images/tutorials/confirm-email-opt-in-journey-example.png?fit=max&auto=format&n=P-72FyFfB9AgPzK3&q=85&s=4b3e76960f548462d2213c1ea388ceb0" alt="完整确认邮件选择加入旅程示例" width="862" height="1636" data-path="images/tutorials/confirm-email-opt-in-journey-example.png" />
</Frame>

### 4. 测试

此时旅程应该准备好进行测试。如果您遵循了本教程，请记住我们在细分中使用了"测试用户"过滤器，因此这只会发送给您标记为"测试者"且符合标签条件的邮件。如果您需要添加更多测试邮件，可以在 OneSignal 仪表板中按照以下说明手动执行：

* [导入邮件](./import)
* 设置[测试订阅](./test-users)

准备测试时：

1. 在旅程中点击**设为活跃**。
2. 等待几分钟，您应该会收到第一个邮件模板。
3. 点击邮件中的按钮。再等几分钟。
4. 您的用户应该退出旅程并拥有更新的 `confirmed_opt_in=true` 标签。

#### 故障排除

一旦您将旅程设为活跃，如果几分钟后您没有收到确认邮件：

1. 导航回活跃的旅程
2. 点击第一个邮件步骤
3. 在左上角选择**受众活动**。有关受众活动的更多详细信息，请参阅[旅程分析](./journeys-analytics)。
4. 您应该在"已送达"列中看到您的邮件。如果没有，请检查您的邮件地址是否已订阅并符合细分条件。

如果您收到了邮件并点击了按钮，但几分钟后没有更新标签：

1. 导航到**受众 > 用户**
2. 搜索您的邮件地址
3. 检查"标签"列。如果旅程正常工作，您应该看到 `confirmed_opt_in=true`。

<Info>
  仍需帮助？

  请发邮件至 `support@onesignal.com` 并提供以下信息：

  * 您正在测试的邮件地址。
  * 旅程的链接。您可以从浏览器地址栏复制粘贴 URL。
  * 您认为可能有用的任何其他信息。

  我们很乐意帮助！
</Info>

### 5. 在生产中设为活跃

准备向实际用户发送时，您需要执行以下操作：

1. 导航到旅程并点击**更多选项 > 停止 + 归档**。
2. 导航到细分并点击**选项 > 暂停**，然后**选项 > 复制**。
3. 更新细分以移除"测试用户"过滤器。
4. 导航回旅程页面并点击**选项 > 复制**。
5. 更新旅程以使用没有"测试用户"过滤器的细分并**保存**。
6. 准备向所有用户上线时点击**设为活跃**。

<Check>
  现在确认的订阅者携带 `confirmed_opt_in=true` 标签，您可以使用它进行细分并确保您只向已验证的用户发送消息。
</Check>

***

## 重要注意事项和陷阱

<AccordionGroup>
  <Accordion title="法规合规">
    * **GDPR** 要求明确同意，双重选择加入提供了这一点。
    * **CAN-SPAM** 不要求双重选择加入，但它减少投诉。
    * 始终存储同意证明（时间戳 + 来源）。
  </Accordion>

  <Accordion title="送达性最佳实践">
    * 确认邮件应该**简单明了** — 避免大量图片。
    * 不要在确认邮件中添加营销内容。
    * 设置正确的[邮件认证](./email-setup)（SPF、DKIM、DMARC）以避免进入垃圾邮件文件夹。
  </Accordion>

  <Accordion title="用户体验和转化提示">
    * 在注册后显示**感谢页面**，解释确认步骤。
    * 使用清晰的主题行（例如，"最后一步：确认您的订阅"）。
    * 谨慎发送提醒 — 最多 2-3 次尝试。
  </Accordion>

  <Accordion title="常见问题">
    * **链接未跟踪**：确保您的按钮使用来自 OneSignal 模板编辑器的跟踪链接。
    * **用户从不确认**：一些邮件可能进入垃圾邮件。鼓励用户检查垃圾邮件或促销文件夹。
    * **重复选择加入**：在您的主要发送细分中仅允许 `confirmed_opt_in = true` 用户。
  </Accordion>
</AccordionGroup>

***

## 后续步骤

* 使用 `confirmed_opt_in` 标签构建**高质量邮件细分**。
* 查看[邮件设置和合规](./email-setup)以保护您的域名声誉。
* 探索[旅程操作和分支](./journeys-actions)以获得高级重试策略。
