【问题标题】:Create email account using script in Bluehost CPanel在 Bluehost CPanel 中使用脚本创建电子邮件帐户
【发布时间】:2013-01-27 14:53:12
【问题描述】:

我正在尝试使用 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);

任何帮助表示赞赏!

【问题讨论】:

    标签: php cpanel bluehost


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

      • 感谢您的回答。正如你所解释的,我认为 Cron 工作是唯一能做到这一点的方法。您能否提供 cron 作业文件的代码或任何有关此的提示?
      • 一个解决方案确实存在并且确实得到了支持
      【解决方案3】:

      我想出了一种方法来处理 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 没有任何支持,否则我在设置电子邮件帐户时遇到了麻烦。

      【讨论】:

      • 如果重要的话,我想把那个即时通讯添加到他们的专用服务器上。
      【解决方案4】:

      您可以直接在 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/

      【讨论】:

        猜你喜欢
        • 2019-10-16
        • 2013-06-10
        • 1970-01-01
        • 2016-08-27
        • 1970-01-01
        • 1970-01-01
        • 2016-05-14
        • 2011-09-19
        • 2013-07-26
        相关资源
        最近更新 更多