添加邮箱转发的规则 代码如下
$apiToken = 'API令牌';
$zoneId = '区域ID';
$url = "https://api.cloudflare.com/client/v4/zones/{$zoneId}/email/routing/rules";
$data = [
'name' => 'My Email Route',
'enabled' => true,
'matchers' => [
[
'type' => 'literal',
'field' => 'to',
'value' => '新建一个域名邮箱地址(被转发)'
]
],
'actions' => [
[
'type' => 'forward',
'value' => ['转发的地址(需要验证!)']
]
]
];
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
curl_setopt($ch, CURLOPT_HTTPHEADER, [
"Authorization: Bearer {$apiToken}",
"Content-Type: application/json"
]);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
结果返回 会有一个 $ruleId 值 可以根据这个值删除此条邮箱处理规则
代码如下
<?php
$apiToken = 'YOUR_API_TOKEN';
$zoneId = 'YOUR_ZONE_ID';
$ruleId = 'RULE_ID_TO_DELETE';
$url = "https://api.cloudflare.com/client/v4/zones/{$zoneId}/email/routing/rules/{$ruleId}";
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "DELETE");
curl_setopt($ch, CURLOPT_HTTPHEADER, [
"Authorization: Bearer {$apiToken}",
"Content-Type: application/json"
]);
$response = curl_exec($ch);
if (curl_errno($ch)) {
echo 'Curl error: ' . curl_error($ch);
}
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
echo 'HTTP Code: ' . $httpCode . "\n";
echo 'Response: ' . $response . "\n";
您可以按照以下步骤创建一个具有所需权限的令牌:
- 登录 Cloudflare 仪表板。
- 转到 "我的个人资料" > "API 令牌"。
- 点击 "创建令牌"。
- 选择 "自定义 API 令牌"。
- 设置令牌名称,例如 "Email Routing API"。
在 "权限" 部分,添加以下权限:
- Zone - Zone Settings - Read
- Zone - Zone Settings - Edit
- Zone - Email Routing Rules - Edit
- 在 "区域资源" 部分,选择您要管理电子邮件路由的特定区域(域名),或选择 "所有区域" 如果您想要管理多个域名。
- 设置一个合适的 "TTL"(生存时间),如果您希望令牌在一定时间后过期。
- 点击 "继续到摘要" 然后 "创建令牌"。
- 复制生成的令牌。这将是您在代码中使用的
YOUR_API_KEY
。
获取 Zone ID 的方法有几种。以下是最常用的方法:
- 通过 Cloudflare 仪表板获取:
a. 登录到您的 Cloudflare 账户。
b. 在主页面上,选择您想要管理的域名。
c. 进入域名的概览页面后,向下滚动。
d. 在右侧栏中,您应该能看到 "Zone ID" 字段。 使用 API 获取:
如果您有多个域名,或者想通过编程方式获取 Zone ID,可以使用 Cloudflare API。以下是一个 PHP 示例:<?php $apiToken = 'YOUR_API_TOKEN'; $domain = 'example.com'; // 替换为您的域名 $url = "https://api.cloudflare.com/client/v4/zones?name={$domain}"; $ch = curl_init($url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_HTTPHEADER, [ "Authorization: Bearer {$apiToken}", "Content-Type: application/json" ]); $response = curl_exec($ch); curl_close($ch); $data = json_decode($response, true); if ($data['success'] && !empty($data['result'])) { $zoneId = $data['result'][0]['id']; echo "Zone ID for {$domain}: {$zoneId}\n"; } else { echo "Failed to retrieve Zone ID. Error: " . json_encode($data['errors']); }
使用这段代码时,请确保:
- 替换
YOUR_API_TOKEN
为您的实际 API 令牌。 - 将
example.com
替换为您想要查询的实际域名。
- 替换