cloudflare API 接入最佳实践
date
Aug 6, 2024
tags
技术&产品
type
Post
status
Published
Last edited time
Oct 14, 2024 08:18 AM
缘起
Cloudflare是一家提供网络基础设施和网络安全服务的美国公司,成立于2009年。该公司主要通过其分布式网络优化和保护网站免受各种网络攻击,如DDoS攻击、垃圾邮件和其他安全威胁。Cloudflare提供的服务包括内容分发网络(CDN)、域名系统(DNS)、网页应用程序防火墙(WAF)、服务器less计算等,帮助提高网站性能和安全性,同时简化了网络管理。该公司服务全球数百万个网站,是互联网基础设施领域的重要参与者。
对于个人域名管理,我采用 Cloudflare 进行域名解析,并利用其先进的 Email Routing 功能。如果您拥有一个域名并通过Cloudflare进行配置,且希望设置一个以该域名为后缀的电子邮箱地址,Cloudflare的Email Routing功能能够满足您的需求。请留意,该服务目前仅提供邮件接收功能,不包含邮件回复。有关Email Routing服务的完整指南,请访问官方文档以获取更多信息。
Cloudflare 的 Email Routing 功能确实支持通过API进行管理,这使得它能够轻松集成到您的网站中,增强电子邮件管理的能力。以下是一个简化的集成步骤指南。
步骤
KEY 和 Token


- API Tokens 对应于 Bearer Auth,最好进行权限隔离。单独针对业务进行新增时,应选择对应的最小权限。这意味着在创建API令牌时,应该只授予执行特定任务所需的权限,以减少安全风险。
- API Keys -> Global API Key 对应于 API Key (api key),在HTTP请求中使用时,应通过 X-Auth-Key 头部传递。需要结合 X-Auth-Email 使用
- X-Auth-Email 对应登录用户的邮箱。在新增 API Tokens 时,您可以选择授权给哪些用户,可以选择单独的账户或者全部账户。这确保了API令牌只能被授权的用户使用。
- X-Auth-User-Service-Key 的使用方法可能不太为人所知
Bearer Auth 和 X-Auth-Key 使用其中一种即可。 下面为使用postman 进行请求时的例子


Email Routing API
在操作中,我们主要使用的是
destination addresses
和 rules
。destination addresses
负责管理目标邮箱,这个邮箱是您已经拥有的邮箱,所有捕获的邮件都会被转发到这个邮箱。而 rules
则是转发规则,您可以通过自定义前缀,然后根据规则将邮件转发到目标邮箱。在使用这两个API时,特别需要注意的是它们各自参数的不同。正确理解和配置这些参数对于确保邮件正确转发至关重要。

在 destination addresses 中,使用的是
account_identifier
,例如以下API端点:而在 routing rules 中,使用的是
zone_identifier
,例如以下API端点:这两个参数分别对应于首页中的
zone id
和 account id
。需要注意的是,每个域名对应的 zone id
是不同的,您需要在选择了特定的域名之后才能看到对应的 zone id
。另外,destination addresses 的鉴权方式使用的是 Bearer Auth,而 routing rules 的鉴权方式使用的是 X-Auth-Key。至于为什么这样设计,目前尚未进行研究。这种设计可能基于不同的安全考虑或者API的使用场景。

总结
通过上述步骤,您能够完成 Email Routing 的 API 模拟调用。详细的代码实现超出了本文的讨论范围,因此不再展开。值得一提的是,Cloudflare 提供了便捷的 SDK,可以简化集成过程。以下是针对 Golang 的 SDK。
cloudflare-go
cloudflare • Updated Jan 15, 2025