> ## 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.

# SendGrid 设置

> 将 SendGrid 与 OneSignal 集成以进行电子邮件递送。

# 要求

* [SendGrid Account](https://www.sendgrid.com)
* [OneSignal Account](https://onesignal.com)

# 设置

## 1. SendGrid 发送者身份验证

建议使用 SendGrid 的"域名认证"功能，这样 SendGrid 会通过您的域名发送电子邮件，而不是通过 `via sendgrid.net`，用户点击的链接也会显示为来自您的域名。

**建议**：按照 SendGrid 的指南 [如何设置域名认证](https://docs.sendgrid.com/ui/account-and-settings/how-to-set-up-domain-authentication)。

如果您没有域名，SendGrid 还提供[单发送者验证](https://docs.sendgrid.com/ui/sending-email/sender-verification)。

## 2. 安装 DNS 记录

如果您选择了**域名认证**，请确保您的 DNS 记录已通过验证。

<Frame caption="SendGrid DNS 验证状态">
  <img src="https://mintcdn.com/onesignal/_KaXe4GQkxsEfa17/images/docs/3ceb5db-Screen_Shot_2021-10-20_at_1.18.12_PM.png?fit=max&auto=format&n=_KaXe4GQkxsEfa17&q=85&s=9cbb18e747d85c69d73e272e3c2e23d5" width="1402" height="872" data-path="images/docs/3ceb5db-Screen_Shot_2021-10-20_at_1.18.12_PM.png" />
</Frame>

SPF、DKIM 和 MX 记录应该通过 SendGrid 的设置向导自动配置。

<Frame caption="SendGrid 域名认证设置">
  <img src="https://mintcdn.com/onesignal/YOTSrtBSoqdrJ37A/images/docs/41879e3-esp-sendgrid-domain-3.jpg?fit=max&auto=format&n=YOTSrtBSoqdrJ37A&q=85&s=deaeacb61d563fb01079199a4a1373be" width="2500" height="1600" data-path="images/docs/41879e3-esp-sendgrid-domain-3.jpg" />
</Frame>

## 3. 创建 API 密钥

在 SendGrid 控制台中，转到 [设置 -> API 密钥](https://app.sendgrid.com/settings/api_keys) 并点击"创建 API 密钥"。

<Frame caption="SendGrid API 密钥创建界面">
  <img src="https://mintcdn.com/onesignal/KSCNwSpBCNSQ8xdF/images/docs/f794466-esp-sendgrid-apikey.jpg?fit=max&auto=format&n=KSCNwSpBCNSQ8xdF&q=85&s=58f82278dd1461db66aedf9123723b50" width="2500" height="1270" data-path="images/docs/f794466-esp-sendgrid-apikey.jpg" />
</Frame>

将您的 API 密钥命名为 `OneSignal API Key` 之类的名称，并确保将权限设置为**完全访问**。准备好后点击"创建并查看"。

<Frame caption="SendGrid API 密钥权限设置">
  <img src="https://mintcdn.com/onesignal/RWtLFPeffHrC81wI/images/docs/afe1836-esp-sendgrid-apikey-2.jpg?fit=max&auto=format&n=RWtLFPeffHrC81wI&q=85&s=c2647bf1992dc79b00974c453a8ffb00" width="2500" height="1350" data-path="images/docs/afe1836-esp-sendgrid-apikey-2.jpg" />
</Frame>

接下来，点击 API 密钥以将其复制到剪贴板。

<Frame caption="复制 SendGrid API 密钥">
  <img src="https://mintcdn.com/onesignal/56ctKxZSV4m5VEkn/images/docs/b8a9822-esp-sendgrid-apikey-3.jpg?fit=max&auto=format&n=56ctKxZSV4m5VEkn&q=85&s=df6331d166120cd300fac9d50bb04f82" width="2500" height="990" data-path="images/docs/b8a9822-esp-sendgrid-apikey-3.jpg" />
</Frame>

### 我可以允许的最小 API 限制是什么？

您需要允许的最小访问权限如下：

<Frame caption="最小 API 权限要求">
  <img src="https://mintcdn.com/onesignal/3zq1PvSaqvUE2bIx/images/docs/2d82f50-Screen_Shot_2021-12-09_at_1.25.57_PM.png?fit=max&auto=format&n=3zq1PvSaqvUE2bIx&q=85&s=d8857161192778c6714357b2d5e95ac3" width="986" height="1722" data-path="images/docs/2d82f50-Screen_Shot_2021-12-09_at_1.25.57_PM.png" />
</Frame>

<Warning>
  如果您正在使用 SendGrid 的白名单功能，请确保将 OneSignal 添加到此列表中。

  请参见下面的常见问题解答 [如何将 OneSignal 的 IP 地址加入白名单？](./sendgrid-setup#how-do-i-whitelist-onesignals-ips)
</Warning>

## 4. 禁用 Sendgrid 订阅跟踪

OneSignal 会自动为每封发送的电子邮件添加其自己的默认退订链接。

在 sendgrid 中禁用**订阅跟踪**，以防止 Sendgrid 自动在文本和 HTML 电子邮件底部添加其自己的退订链接。

<Frame caption="SendGrid 订阅跟踪设置">
  <img src="https://mintcdn.com/onesignal/tNi1OgLc_p9hiq7_/images/docs/1b863e8-Sendgrid_Tracking_Settings.png?fit=max&auto=format&n=tNi1OgLc_p9hiq7_&q=85&s=c483fc9706a46d3ab6cc4d00ee90802f" width="1235" height="647" data-path="images/docs/1b863e8-Sendgrid_Tracking_Settings.png" />
</Frame>

## 5. 启用电子邮件消息

在 OneSignal 中，导航到**设置 > 平台 > 电子邮件**并**激活**电子邮件以配置您的电子邮件设置。

选择 **SendGrid** 作为提供商。

<Frame caption="从电子邮件设置中选择 SendGrid 的图像">
  <img src="https://mintcdn.com/onesignal/RWtLFPeffHrC81wI/images/docs/a42b5c0-Screenshot_2023-09-27_at_4.38.36_PM.png?fit=max&auto=format&n=RWtLFPeffHrC81wI&q=85&s=af1b1a422edf6fc979eeb9b4c3cfc42e" width="1880" height="1026" data-path="images/docs/a42b5c0-Screenshot_2023-09-27_at_4.38.36_PM.png" />
</Frame>

将您的 SendGrid API 密钥粘贴到提供的字段中。

<Frame caption="显示在哪里输入您的 API 密钥的图像">
  <img src="https://mintcdn.com/onesignal/ciRrThfP6xMpI7GY/images/docs/0431d6a-Screenshot_2023-09-27_at_4.39.12_PM.png?fit=max&auto=format&n=ciRrThfP6xMpI7GY&q=85&s=bbb78dfd7e2c9deaf6699292dd55dab8" width="1862" height="644" data-path="images/docs/0431d6a-Screenshot_2023-09-27_at_4.39.12_PM.png" />
</Frame>

### 递送默认设置

添加您希望电子邮件来自的默认**姓名**和**电子邮件地址**（这些可以稍后更改）。

完成后按完成。

<Frame caption="电子邮件配置成功横幅">
  <img src="https://mintcdn.com/onesignal/YOTSrtBSoqdrJ37A/images/docs/4b63e41-Screenshot_2023-09-27_at_4.41.02_PM.png?fit=max&auto=format&n=YOTSrtBSoqdrJ37A&q=85&s=7fa2706b1fa954740752c6b1557552cc" width="1874" height="884" data-path="images/docs/4b63e41-Screenshot_2023-09-27_at_4.41.02_PM.png" />
</Frame>

## 6. 添加订阅者

如果您有准备好的电子邮件列表，请选择**上传 CSV**，或者您也可以稍后再执行此操作。

如果您有网站并想提示用户提供他们的电子邮件，请选择**添加 Web 提示**以使用 OneSignal 的[电子邮件 Web 提示](./permission-requests)。

<Frame caption="电子邮件订阅者设置选项">
  <img src="https://mintcdn.com/onesignal/MUgio66t0sYhGEvj/images/docs/6ba703e-Screenshot_2023-09-27_at_4.39.54_PM.png?fit=max&auto=format&n=MUgio66t0sYhGEvj&q=85&s=1073f5704e2367527d67cab6980789d2" width="1874" height="1174" data-path="images/docs/6ba703e-Screenshot_2023-09-27_at_4.39.54_PM.png" />
</Frame>

## 7. 测试

导航到**消息 > 电子邮件**，选择**新电子邮件**。

添加一个`主题`，选择编辑体验（拖放编辑器是一个好的开始）并点击**发送测试电子邮件**。

<Frame caption="电子邮件测试界面">
  <img src="https://mintcdn.com/onesignal/6v_cVPknFpo5qSVB/images/docs/10d1976-Screenshot_2023-09-27_at_4.49.08_PM.png?fit=max&auto=format&n=6v_cVPknFpo5qSVB&q=85&s=5bd931f0ccb9ad064110678ce5e0e183" width="2206" height="692" data-path="images/docs/10d1976-Screenshot_2023-09-27_at_4.49.08_PM.png" />
</Frame>

输入您的电子邮件并按**发送测试电子邮件**。电子邮件应该很快就会到达您的收件箱！

<Info>
  如果遇到问题，请参阅我们的[电子邮件常见问题解答](./email-troubleshooting)。

  如果遇到困难，请联系 `support@onesignal.com` 寻求帮助。

  为了更快获得帮助，请提供：

  * 您的 OneSignal 应用 ID
  * 问题的详细信息、日志和/或屏幕截图
  * 重现步骤
</Info>

# 建议

## 识别用户

**如果使用集成则必需。** **建议用于跨多个渠道（推送、电子邮件、短信）的消息传递。**

OneSignal 在名为 subscription\_id 的唯一 ID 下创建订阅级记录。单个用户可以根据他们用于与您的应用程序交互的设备、电子邮件地址和电话号码的数量拥有多个 subscription\_id 记录。

如果您的应用程序有自己的登录系统来跟踪用户，请随时调用 `login` 将所有渠道链接到单个用户。有关更多详细信息，请参阅[别名和外部 ID](./users)。

## 收集新电子邮件

**如果使用电子邮件和短信消息传递，建议使用。**

有几种方法可以将新电子邮件地址传递到 OneSignal：

* 使用 OneSignal 的前端 SDK 捕获新电子邮件。请参阅[电子邮件 SDK 方法](./mobile-sdk-reference#email)。
* 使用[创建用户](/reference/create-user)或[创建订阅](/reference/create-subscription) API 从您的服务器添加电子邮件。
* 如果您想通过 CSV 导入电子邮件，请参阅[导入电子邮件地址](./import)。

## 添加数据标签

**可选**

标签是用于跟踪用户事件和属性的自定义 `key : value` 字符串数据对。设置标签是进行更复杂的[细分](./segmentation)和[消息个性化](./message-personalization)所必需的。

有关更多详细信息，请参阅[数据标签](./add-user-data-tags)。

<Check>
  访问[电子邮件教程](./email-messaging)了解后续步骤。
</Check>

# 导出电子邮件

1. **联系人列表导航**：转到 `营销 > 联系人`。

2. <Frame caption="导航到联系人页面">
     <img src="https://mintcdn.com/onesignal/jBdBk5XvQR5eKOks/images/docs/7c49df1-step-1-50.png?fit=max&auto=format&n=jBdBk5XvQR5eKOks&q=85&s=eb80902228ae5d891426577e09211c6a" width="224" height="1167" data-path="images/docs/7c49df1-step-1-50.png" />
   </Frame>

3. **列表识别**：找到您想要导出的列表。

4. **导出选择**：在**操作**列表标题下打开上下文菜单。

<Frame caption="选择要导出的联系人列表">
  <img src="https://mintcdn.com/onesignal/Z6xkXGfmy814If53/images/docs/d900c5a-step-3-50.png?fit=max&auto=format&n=Z6xkXGfmy814If53&q=85&s=4ef417459779b56fe9211305f082782e" width="1261" height="679" data-path="images/docs/d900c5a-step-3-50.png" />
</Frame>

4. **开始导出**：点击**导出**。这将带您到 `联系人 > 活动导出`。
5. **下载文件**：等待**状态**显示"准备下载"，然后点击**下载 CSV**。

<Frame caption="下载导出的 CSV">
  <img src="https://mintcdn.com/onesignal/3zq1PvSaqvUE2bIx/images/docs/2d1c12f-step-5-50.png?fit=max&auto=format&n=3zq1PvSaqvUE2bIx&q=85&s=3f8102ca85b5dde7c55e10cb12643ce6" width="1261" height="630" data-path="images/docs/2d1c12f-step-5-50.png" />
</Frame>

6. **文件检索**：文件将保存在您的下载目录中。

# 获取 API 密钥

1. 导航到您的 Sendgrid 控制台，并从左侧边栏打开**设置**。

<Frame caption="导航到设置 > API 密钥">
  <img src="https://mintcdn.com/onesignal/4HyuQPBpu-4xjmQC/images/docs/cf3fe33-step-1-50.png?fit=max&auto=format&n=4HyuQPBpu-4xjmQC&q=85&s=0a162a955d877a4b66623bbe835cfcb7" width="1616" height="1365" data-path="images/docs/cf3fe33-step-1-50.png" />
</Frame>

2. 选择 **API 密钥**。

<Frame caption="点击创建 API 密钥按钮">
  <img src="https://mintcdn.com/onesignal/9_Q1FZLh6C0BFLq-/images/docs/c3045de-step-2-50.png?fit=max&auto=format&n=9_Q1FZLh6C0BFLq-&q=85&s=2421e360c654dcf620110214bdceb187" width="1616" height="1365" data-path="images/docs/c3045de-step-2-50.png" />
</Frame>

3. 为您的密钥命名。可选择*受限访问*以获得特定权限。

<Frame caption="命名密钥并设置权限">
  <img src="https://mintcdn.com/onesignal/0qspEXXeJ8zJbkJ-/images/docs/8770efc-step-3-50.png?fit=max&auto=format&n=0qspEXXeJ8zJbkJ-&q=85&s=f2c9125755ab5db955af0a8dd6d1edfc" width="1616" height="1365" data-path="images/docs/8770efc-step-3-50.png" />
</Frame>

如果使用*受限访问*，请确保您为营销授予**完全访问**权限。

<Frame caption="为营销授予完全访问权限">
  <img src="https://mintcdn.com/onesignal/0qspEXXeJ8zJbkJ-/images/docs/83d80f8-step-4-50.png?fit=max&auto=format&n=0qspEXXeJ8zJbkJ-&q=85&s=33a46fe982c60987c70cd4dfa9e0d07e" width="1616" height="1365" data-path="images/docs/83d80f8-step-4-50.png" />
</Frame>

4. 点击**创建并查看**。

<Frame caption="点击创建并查看按钮">
  <img src="https://mintcdn.com/onesignal/KSCNwSpBCNSQ8xdF/images/docs/f92f0c4-step-5-50.png?fit=max&auto=format&n=KSCNwSpBCNSQ8xdF&q=85&s=75a7a005e4040d66c4badf0d68260942" width="1616" height="1365" data-path="images/docs/f92f0c4-step-5-50.png" />
</Frame>

5. 复制您的 API 密钥。

<Frame caption="复制 API 密钥">
  <img src="https://mintcdn.com/onesignal/MUgio66t0sYhGEvj/images/docs/64034da-step-6-50.png?fit=max&auto=format&n=MUgio66t0sYhGEvj&q=85&s=73edf11c5792ca71d42301ac225594f6" width="1616" height="1365" data-path="images/docs/64034da-step-6-50.png" />
</Frame>

# 常见问题解答

## 如果我在 SendGrid 中已经有活动的 Webhook，如何设置 OneSignal？

为了简化设置并能够访问电子邮件递送统计信息，OneSignal 将自动配置 SendGrid 的 Webhook。不幸的是，SendGrid 对于给定帐户仅支持单个 webhook。OneSignal 需要 webhook 来进行电子邮件分析，这可能与之前设置的 webhook（例如用于分析集成）发生冲突。

如果您需要当前设置的 webhook，您可以将请求转发到 `https://onesignal.com/email/hooks/sendgrid`。设置 30 秒超时以获得最佳结果。

如果您不需要之前设置的 webhook，您必须更改它。在 SendGrid 中，转到**设置 > 邮件设置**并点击"事件 Webhook"。HTTP Post URL 应该是 `https://onesignal.com/email/hooks/sendgrid` 并具有显示的最小设置：

<Frame caption="SendGrid webhook 配置设置">
  <img src="https://mintcdn.com/onesignal/tc0EvmtSSX56SX0c/images/docs/989f714-Screen_Shot_2021-10-20_at_2.05.47_PM.png?fit=max&auto=format&n=tc0EvmtSSX56SX0c&q=85&s=fccfdce1d4e2ae9139c8a00bd1605bf2" width="2526" height="1522" data-path="images/docs/989f714-Screen_Shot_2021-10-20_at_2.05.47_PM.png" />
</Frame>

## 如何将 OneSignal 的 IP 地址加入白名单？

有关详细信息，请参阅我们的 [REST API 概述](/reference/rest-api-overview) 中的要求。

<Frame caption="OneSignal IP 白名单要求">
  <img src="https://mintcdn.com/onesignal/56ctKxZSV4m5VEkn/images/docs/b7550d9-Screen_Shot_2022-05-27_at_5.32.06_PM.png?fit=max&auto=format&n=56ctKxZSV4m5VEkn&q=85&s=d107970e875efcb9418aea08ea412106" width="1626" height="1314" data-path="images/docs/b7550d9-Screen_Shot_2022-05-27_at_5.32.06_PM.png" />
</Frame>

***
