3

我正在尝试使用 php 脚本在 bluehost cpanel 中创建电子邮件帐户。我为此尝试了 XML API,但它给出了“拒绝访问”错误。

现在我正在尝试使用以下代码做同样的事情,但没有成功。我可以登录 CPanel 但无法创建电子邮件帐户。

$login = "https://my.bluehost.com/cgi/account/cpanel";
$time=time();
$c = curl_init();
curl_setopt($c, CURLOPT_URL, $login);
curl_setopt($c, CURLOPT_COOKIEJAR, "cookies.txt");
curl_setopt($c, CURLOPT_COOKIEFILE, "cookies.txt");
curl_setopt($c, CURLOPT_POST, 1);
curl_setopt($c, CURLOPT_POSTFIELDS, "ldomain=$username&lpass=$password&l_redirect=/cgi-bin/cplogin&l_server_time=$time&l_expires_min=0");
curl_setopt($c, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($c, CURLOPT_FOLLOWLOCATION, 1);
$login_done1 = curl_exec($c);
print_r($login_done1);




   $email= "https://$cpanel:2083/frontend/bluehost/mail/doaddpop.html";
    curl_setopt($c, CURLOPT_URL, $email);s
    curl_setopt($c, CURLOPT_COOKIEJAR, "cookies.txt");
    curl_setopt($c, CURLOPT_COOKIEFILE, "cookies.txt");
    curl_setopt($c, CURLOPT_POST, 1);
    curl_setopt($c, CURLOPT_POSTFIELDS, "email=ddddd&domain=test.org&password=test@1617&password2=test@1617&quota=250&new_email_submit=Create");
    curl_setopt($c, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($c, CURLOPT_FOLLOWLOCATION, 1);
    $login_done2 = curl_exec($c);
    print_r($login_done2);

任何帮助表示赞赏!

4

4 回答 4

1

我已经就这个问题与 bluehost 打过交道,主要问题是 Bluehost 帐户不授予对 su 的访问权限。超级用户。因此,您无法从任何后门访问 Cpanel,甚至您自己的后门也不行。如果网站所有者希望允许用户创建电子邮件帐户,这将是一个很大的痛苦。

于 2013-02-15T06:30:55.247 回答
1

我想出了一种方法来处理 BlueHost 中的 cpanel 并创建一个电子邮件帐户

$account_user将是登录 Blue Host 的默认用户名;它可能与它相同,$cp_user但绝对不允许它成为 root。

 private function createEmail($email, $password) {
    $cp_user = "USERNAME";
    $cp_pwd = "PASSWORD";
    $domain = "yourdomain.com"
    $quota = "500" // This is in Megabytes. 0 Would be unrestricted email box size.
    $account_user = "username"
    $url = "DOMAIN N OR IP :2087 //Your Port";
    $php = "/json-api/cpanel?cpanel_jsonapi_user=".$account_user."&cpanel_jsonapi_version=2&cpanel_jsonapi_module=Email&cpanel_jsonapi_func=addpop&email=" . $email . "&password=" . $password . "&quota=".$quota."&domain=".$domain;
    $string1 = "https://" . $cp_user . ":" . $cp_pwd . "@" . $url . $php;
    $blueHost = fopen($string1, "r");
    fclose($blueHost);
    return $blueHost;
}

登录后在 Bluehost.com 中创建电子邮件用户时,只需进行一些试验和错误并检查 JSON API 调用。希望这对某些人有所帮助,因为 Blue Host 没有任何支持,否则我在设置电子邮件帐户时遇到了麻烦。

于 2013-06-19T19:41:41.843 回答
0

您可以直接在 chrooted 环境中实现这一点(SSH 必须通过 Bluehost / Hostmonster CPANEL 启用)。只需将 127.0.0.1 指定为 $cpanel,您就不需要使用https://my.bluehost ... 登录页面进行任何先前的身份验证。它适用于共享主机以及专用主机。

虽然您需要通过 GET 进行身份验证:

    curl http://username:password@127.0.0.1:2082/frontend/bluehost/mail/doaddpop.html?blabla

这是一个有用的概述,您可以翻译成您的语言。请用谷歌搜索 doaddfwd.html dodelpop、dodelfwd 等。 http://beto.euqueroserummacaco.com/blog/criando-contas-de-email-no-cpanel-com-curl/

于 2015-01-04T21:05:46.563 回答
-1

已经提出的另一种方法是允许用户创建他们想要的电子邮件并将其存储到 mysql 之类的数据库中。然后创建并设置一个 cron 作业,该作业将定期检查该数据库是否有新电子邮件,并通过 cron 作业将电子邮件创建到 cpanel 中。在 bluehost 中创建电子邮件帐户实际上非常麻烦。2 个原因,1 就像我之前提到的 -su 块。但他们也提供了一个 cpanel 转售。所以它真的不是cpanel的完整许可证。因为 cpanel 本身确实具有创建电子邮件帐户和创建子域的功能。到目前为止,我发现提供真正 cpanel 的只有 Hostgator 和 Godaddy,不过我更喜欢 bluehost。几乎只有其他创建电子邮件帐户的方法是在实际文件结构中创建它们。

于 2013-02-15T06:41:08.877 回答