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

如何通过WHM或cPanel API管理单个cPanel邮件账户的联系邮箱?

如何通过WHM或cPanel API管理单个cPanel邮件账户的联系邮箱?

兄弟,我完全理解你的痛点——这个功能确实藏得有点深,当初我找的时候也绕了不少弯路。你提到的UserManager::update_contact_info确实是针对整个cPanel主账户的,不是单个邮件账户的联系邮箱。别着急,其实cPanel提供了专门的API端点来处理单个邮件账户的联系邮箱,只是需要用对层级的API。

一、获取单个邮件账户的联系邮箱

你需要通过WHM API调用cPanel级别的Email::popsettings函数(属于cPanel API 2),因为单个邮件账户的配置归属于具体的cPanel账户,得通过WHM的cpanel API代理调用这个函数。

举个curl调用的例子(你可以根据自己的开发工具调整,比如用PHP/Perl的WHM API库):

curl -X POST https://你的WHM服务器地址:2087/json-api/cpanel \
  -u "WHM用户名:WHM密码" \
  -d "cpanel_jsonapi_user=目标cPanel账户名" \
  -d "cpanel_jsonapi_apiversion=2" \
  -d "cpanel_jsonapi_module=Email" \
  -d "cpanel_jsonapi_func=popsettings" \
  -d "email=要查询的邮箱@你的主域名.com"

这个调用会返回该邮件账户的详细配置,其中的contactemail字段就是你在cPanel用户管理器里看到的联系邮箱。

二、更新单个邮件账户的联系邮箱

同样用WHM API代理调用cPanel API 2的Email::setpopsettings函数,指定要更新的邮箱和新的联系邮箱地址即可:

curl -X POST https://你的WHM服务器地址:2087/json-api/cpanel \
  -u "WHM用户名:WHM密码" \
  -d "cpanel_jsonapi_user=目标cPanel账户名" \
  -d "cpanel_jsonapi_apiversion=2" \
  -d "cpanel_jsonapi_module=Email" \
  -d "cpanel_jsonapi_func=setpopsettings" \
  -d "email=要更新的邮箱@你的主域名.com" \
  -d "contactemail=新的联系邮箱地址@xxx.com"

执行成功后,这个邮件账户的联系邮箱就会被更新,用户之后就能正常收到密码重置通知了。

一些实用提醒

  • 权限要求:你的WHM账户需要有足够权限,要么是root账户,要么是拥有目标cPanel账户管理权限的经销商账户。
  • 认证方式:除了用户名+密码,更推荐用WHM的API Token做认证,安全性更高。
  • API版本兼容:如果你的工具支持cPanel API v1,也可以用Email.get_pop_settings和Email.set_pop_settings,参数和逻辑完全一致,只是API版本的区别。

内容来源于stack exchange

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.08 09:23:07