You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

无root权限下,如何从外部网站调用CPanel API展示邮件转发器?

能否用PHP展示CPanel邮件转发器?可行!

核心逻辑

没有root权限也能实现,核心是用CPanel官方开放的UAPI(用户级API)——这是给普通CPanel用户提供的操作接口,可直接访问账户内的邮件转发器等资源,无需托管商开放root权限。

实现步骤

  • 先在你的CPanel后台生成API令牌(路径:安全 > API令牌),仅勾选「邮件」分类下的转发器相关权限,避免过度授权
  • 用PHP通过HTTPS请求调用UAPI的Email/list_forwarders接口,带上你的CPanel用户名和生成的令牌完成身份验证
  • 解析接口返回的JSON数据,筛选出指定用户对应域名的转发器信息,再渲染成网页展示给目标用户

关键注意点

  • 禁止硬编码CPanel密码,用API令牌安全性更高
  • 接口请求必须使用HTTPS,防止凭据泄露
  • 给PHP页面加身份验证(比如简单密码锁、关联WordPress用户权限),避免无关人员访问
  • 若托管商限制了UAPI调用,直接联系服务商开启即可,这是CPanel标准功能

极简示例代码

<?php
// 配置信息
$cpanel_user = '你的CPanel用户名';
$cpanel_token = '你生成的API令牌';
$cpanel_host = '你的CPanel地址(比如 cpanel.yourserver.com)';
$target_domain = '需要展示的用户域名';

// 发起API请求
$ch = curl_init("https://{$cpanel_host}:2083/execute/Email/list_forwarders");
curl_setopt($ch, CURLOPT_HTTPHEADER, [
    "Authorization: cpanel {$cpanel_user}:{$cpanel_token}"
]);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, true); // 生产环境保持开启

$response = curl_exec($ch);
curl_close($ch);

// 处理返回结果
$result = json_decode($response, true);
if ($result['status'] !== 1) {
    die("获取失败:{$result['errors'][0]}");
}

// 筛选目标域名的转发器
$user_forwarders = array_filter($result['data'], function($item) use ($target_domain) {
    return $item['domain'] === $target_domain;
});

// 展示内容
echo "<h3>{$target_domain} 的邮件转发器</h3>";
foreach ($user_forwarders as $fw) {
    echo "<p><strong>{$fw['email']}</strong> → {$fw['forward']}</p>";
}
?>

内容的提问来源于stack exchange,提问作者MGB

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 00:57:23