私有基础设施让你通过自己的 Microsoft Azure AD OAuth 应用连接 Outlook 邮箱,而不必使用 ColdSend 的共享应用。凭证完全由你掌控,可满足安全与合规审查要求,每一次认证请求都以你自己的应用 ID 签名——信任度和邮箱声誉也随之提升。
何时使用私有 OAuth
如果你符合以下情况,请选择这一方案:
- 需要自定义品牌的 OAuth 授权页(显示你的公司名称,而不是 ColdSend)
- 有合规或安全要求,强制使用自己的 OAuth 应用
- 希望获得与自有 Azure AD 租户绑定的更高 API 配额
- 需要以组织身份为客户或团队成员管理邮箱
想更快完成设置? 如果你不需要自己的 OAuth 应用,ColdSend 共享模式可让你在一分钟内完成连接,无需任何 Azure 配置。
前置条件
- 一个 Microsoft Azure 账户(免费套餐即可——在此创建)
- 可访问 Azure 门户,并具备注册应用的权限
- 一个 ColdSend 账户
第 1 步:在 Azure 中注册新应用
- 打开 Azure 门户。
- 在顶部搜索栏输入 App registrations 并选择该服务。
- 点击 + New registration。
- 填写详细信息:
- Name:为你的应用取一个易识别的名称(例如
ColdSend Outlook OAuth) - Supported account types:选择 Accounts in any organizational directory (Any Microsoft Entra ID tenant - Multitenant) and personal Microsoft accounts
- Name:为你的应用取一个易识别的名称(例如
- Redirect URI 先留空(我们会在第 2 步添加)。
- 点击 Register。

第 2 步:添加重定向 URI
注册完成后,你会进入该应用的 Overview 页面。
在左侧边栏点击 Authentication。
在 Platform configurations 下点击 + Add a platform。
选择 Web。
在 Redirect URIs 下填入:
https://cloud.coldsend.pro/client/email-accounts/oauth/callback点击 Configure。

ColdSend 需要这个 URI 才能完成 OAuth 握手。缺少它,Microsoft 会拒绝登录请求。
第 3 步:设置 API 权限
- 在左侧边栏点击 API permissions。
- 点击 + Add a permission。
- 选择 Microsoft Graph。
- 选择 Delegated permissions。
- 搜索并添加以下权限:
| 权限 | 用途 |
|---|---|
offline_access |
允许 ColdSend 刷新令牌,无需重复请求授权 |
openid |
OpenID Connect 认证所必需 |
email |
读取用户的邮箱地址 |
profile |
读取用户的基本资料信息 |
User.Read |
读取已登录用户的个人资料 |

- 接着再次点击 + Add a permission。
- 选择 APIs my organization uses。
- 搜索 Office 365 Exchange Online 并选中。
- 选择 Delegated permissions。
- 添加以下权限:
| 权限 | 用途 |
|---|---|
Mail.Send |
代表用户通过 SMTP 发送邮件 |
Mail.ReadWrite |
读写邮箱,用于回复跟踪 |
Mail.ReadWrite.Shared |
读写共享邮箱 |
Mail.Send.Shared |
从共享邮箱发送邮件 |

最终你应在 Microsoft Graph 和 Office 365 Exchange Online 下共获得 9 项权限。
- 点击 Grant admin consent for [Your Organization] 并确认。

注意: 如果你看不到 "Grant admin consent" 按钮,可能是不具备管理员权限。请联系你的 Azure AD 管理员授予同意。
第 4 步:生成客户端密钥
- 在左侧边栏点击 Certificates & secrets。
- 在 Client secrets 下点击 + New client secret。
- 填写:
- Description:例如
ColdSend OAuth Secret - Expires:选择 90 days 或 180 days(出于安全考虑推荐如此)
- Description:例如
- 点击 Add。
- 立即复制密钥的 Value(不是 Secret ID)。之后你将无法再次查看。

现在你应已获得两项信息:
- Application (client) ID——位于应用的 Overview 页面
- Client secret Value——你刚刚复制的值
第 5 步:在 ColdSend 中添加凭证
- 登录你的 ColdSend 账户。
- 在左侧边栏进入 Sender Accounts。
- 点击 Create Email Account 下拉菜单,选择 Microsoft Outlook。
- 在 Choose connection type 下选择 Private OAuth App。
- 页面会显示 OAuth 配置表单。填写:
- Client ID:粘贴 Azure 中的 Application (client) ID(可在我们刚创建的应用的 overview 页面找到)
- Client Secret:粘贴你在第 4 步复制的密钥值
- App Name(可选):一个易读的名称,例如
My Company Outlook App
- 点击 Add Configuration。

第 6 步:验证配置
- 添加配置后,它会显示为 Pending 或 Unverified 状态。
- 点击配置旁的 Verify(刷新)图标。
- ColdSend 会用 Microsoft 的令牌端点测试这组凭证。
- 验证成功后,状态变为 Verified。

验证失败? 请再次确认:
- Client ID 与 Azure 应用的 Application (client) ID 一致
- Client Secret 填的是 Value(不是 Secret ID)
- 你已在第 3 步授予管理员同意
第 7 步:使用私有 OAuth 连接邮箱
- 确认已选中验证通过的配置。
- 点击 Sign in with Microsoft。
- 你会被重定向到 Microsoft 登录页——用你想连接的 Outlook 账户登录。
- 查看权限说明并点击 Accept。
- 你会被重定向回 ColdSend,收件箱会出现在 Connected Accounts 区域。

授权页会显示你的应用名称(而非 ColdSend 的),为你的用户或客户提供完全品牌化的体验。
连接多个邮箱
私有 OAuth 应用配置并验证完成后:
- 你可以用同一个 OAuth 应用连接多个 Outlook 账户
- 每个用户用自己的 Microsoft 凭证登录
- 所有连接都使用你应用的 Client ID 进行认证
- 每个收件箱都会获得独立的加密刷新令牌,各自维护令牌刷新周期
要添加更多账户,只需再次点击 Sign in with Microsoft,并用另一个 Outlook 账户完成认证。
管理你的 OAuth 配置
编辑凭证
如果客户端密钥过期或你需要轮换密钥:
- 在 Azure 门户生成新的客户端密钥。
- 在 ColdSend 中点击配置旁的 Edit(铅笔)图标。
- 粘贴新的 Client Secret 并保存。
- 重新验证配置。
现有收件箱会继续使用当前的刷新令牌,直到其过期。新建连接将使用更新后的凭证。
删除配置
- 点击配置旁的 Delete(垃圾桶)图标。
- 确认删除。
警告: 使用该配置的现有收件箱在删除后可能无法刷新令牌。请用 ColdSend 共享模式或新的私有配置重新连接它们。
故障排查
"AADSTS50011: The redirect URI does not match"
请确认 Azure 中的重定向 URI 与以下地址完全一致:https://cloud.coldsend.pro/client/email-accounts/oauth/callback(末尾不要带斜杠)。
"AADSTS65001: The user or administrator has not consented"
返回第 3 步,为你的 Azure AD 租户点击 Grant admin consent。
"AADSTS7000218: The request body must contain 'client_secret'"
请确认你粘贴的是密钥 Value(来自 Certificates & secrets),而非 Secret ID。
在 ColdSend 中验证失败
- 确认你的 Azure 应用支持多租户账户("Accounts in any organizational directory")
- 确认客户端密钥尚未过期
- 检查你是否同时添加了 Microsoft Graph 和 Exchange Online 权限(共 9 项)
常见问题
我可以切回 ColdSend 的共享 OAuth 吗?
可以。删除或停用你的私有配置,然后用 ColdSend 共享模式重新连接邮箱。你的营销活动和发送历史不受影响。
ColdSend 会存储我的 Client Secret 吗?
客户端密钥在静态存储时已加密,用于为团队的 OAuth 流程管理令牌刷新,且绝不会在 ColdSend 界面中暴露。
为什么除了 Microsoft Graph 还需要 Exchange Online 权限?
ColdSend 需要由 Exchange Online 资源签发的 Mail.Send、Mail.ReadWrite、Mail.ReadWrite.Shared 和 Mail.Send.Shared 作用域,才能发送邮件并跟踪回复——包括来自共享邮箱的邮件。
我的 Azure 应用需要通过 Microsoft 验证吗?
如果你只在自有组织内连接邮箱,管理员同意(第 3 步)就足够了。只有在计划让外部用户通过你的应用认证时,才需要 Microsoft 的应用验证。
客户端密钥过期后会发生什么?
现有的刷新令牌仍然有效,但在更新密钥之前,你无法连接新的收件箱。建议在到期前设置日历提醒。
同一个 Azure 应用可以同时用于 Google 和 Outlook 吗?
不可以。Google 和 Microsoft 使用各自独立的 OAuth 生态。Outlook 需要单独的 Azure AD 应用,Google Workspace 需要单独的 Google Cloud 项目。Google 端设置请参阅 Google OAuth 设置指南。