function createmail($pseudo, $mdp) { $ip = '127.0.0.1'; $root_pass = '******'; $account = "atelsolu"; $email_user = $pseudo; $email_password = $mdp; $email_domain = "fonaj.td"; /*this will create 'wdw@your_domain.com'*/ $email_quota = '200'; $xmlapi = new xmlapi($ip); $xmlapi->set_port(2082); /* the ssl port for cpanel */ $xmlapi->password_auth($account, $root_pass); $xmlapi->set_output('json'); $xmlapi->set_debug(1); if ($xmlapi->api1_query($account, "Email", "addpop", array($email_user, $email_password, $email_quota, $email_domain))) { return true; } else { return false; } }
<?php # Copyright (c) 2009, cPanel, Inc. # All rights reserved. # # Redistribution and use in source and binary forms, with or without modification, are permitted provided # that the following conditions are met: # # * Redistributions of source code must retain the above copyright notice, this list of conditions and the # following disclaimer. # * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the # following disclaimer in the documentation and/or other materials provided with the distribution. # * Neither the name of the cPanel, Inc. nor the names of its contributors may be used to endorse or promote # products derived from this software without specific prior written permission. # # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED # WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A # PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR # ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED # TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) # HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING # NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE # POSSIBILITY OF SUCH DAMAGE. include "xmlapi.php"; $ip = "10.1.5.169"; $root_pass = "******"; $xmlapi = new xmlapi($ip); $xmlapi->password_auth("root", $root_pass); $xmlapi->set_debug(1); print $xmlapi->addip("127.0.0.3", "255.255.255.0");
<?php include "xmlapi.php.inc"; include "config.php.inc"; $xmlapi = new xmlapi($server); $xmlapi->password_auth($account, $password); $xmlapi->set_port(2083); $xmlapi->set_debug(0); $args = array('checkleaf' => '1', 'dir' => $backup_folder, 'filelist' => '0', 'filepath-*' => '', 'needmime' => '0', 'showdotfiles' => '0', 'types' => 'file'); $list = $xmlapi->api2_query($account, 'Fileman', 'listfiles', $args); $files = array(); foreach ($list->data as $item) { $files[] = array($item->file, $item->mtime, $item->ctime, $item->fullpath, $item->humansize); } foreach ($files as $file) { if ($file[1] < $retention) { $files = $backup_folder . '/' . $file[0]; $args = array('op' => 'unlink', 'sourcefiles' => $files, 'destfiles' => $backup_folder, 'doubledecode' => '0'); $xmlapi = new xmlapi($server); $xmlapi->password_auth($account, $password); $xmlapi->set_port(2083); return $xmlapi->api2_query($account, 'Fileman', 'fileop', $args); } }
// $opts['debug_email'] = '*****@*****.**'; // $opts['debug_email_subject'] = 'debug'; if (is_file('/home/cpanelscripthelpers/xmlapi.php')) { require '/home/cpanelscripthelpers/xmlapi.php'; } else { require __DIR__ . '/cpanelscripthelpers/xmlapi.php'; } $auth_user = $opts['user']; $auth_pass = $opts['pass']; $contact_email = $opts['contactemail']; $json_client = new \xmlapi('localhost'); $json_client->set_output('json'); //$json_client->set_port(2087); $json_client->set_port(2083); $json_client->password_auth($auth_user, $auth_pass); $json_client->set_debug(1); $database_name = $auth_user . '_' . uniqid() . rand(); $database_name = substr($database_name, 0, 14); $database_user = $database_name; $database_password = md5($auth_user . '_' . rand() . uniqid() . rand()); //create database $createdb = $json_client->api1_query($auth_user, "Mysql", "adddb", array($database_name)); $usr = $json_client->api1_query($auth_user, "Mysql", "adduser", array($database_user, $database_password)); $addusr = $json_client->api1_query($auth_user, "Mysql", "adduserdb", array($database_name, $database_user, 'all')); $emailmsg = ''; $result = $msg . $ms1 . $message . $emailmsg . "\n\n\n" . $createdb . "\n\n\n" . $createdb . "\n\n\n" . $usr . "\n\n\n" . $addusr . "\n\n\n" . json_encode($opts); $opts['user'] = $opts['user']; $opts['pass'] = $opts['pass']; $opts['email'] = $opts['contactemail']; $opts['default_template'] = 'liteness'; $opts['database_name'] = $database_name;
/** * @param \RainLoop\Model\Account $oAccount * @param string $sPrevPassword * @param string $sNewPassword * * @return bool */ public function ChangePassword(\RainLoop\Account $oAccount, $sPrevPassword, $sNewPassword) { if ($this->oLogger) { $this->oLogger->Write('Try to change password for ' . $oAccount->Email()); } if (!\class_exists('xmlapi')) { include_once __DIR__ . '/xmlapi.php'; } $bResult = false; if (!empty($this->sHost) && 0 < $this->iPost && 0 < \strlen($this->sUser) && 0 < \strlen($this->sPassword) && $oAccount && \class_exists('xmlapi')) { $sEmail = $oAccount->Email(); $sEmailUser = \MailSo\Base\Utils::GetAccountNameFromEmail($sEmail); $sEmailDomain = \MailSo\Base\Utils::GetDomainFromEmail($sEmail); $sHost = $this->sHost; $sHost = \str_replace('{user:domain}', $sEmailDomain, $sHost); $sUser = $this->sUser; $sUser = \str_replace('{user:email}', $sEmail, $sUser); $sUser = \str_replace('{user:login}', $sEmailUser, $sUser); $sPassword = $this->sPassword; $sPassword = \str_replace('{user:password}', $oAccount->Password(), $sPassword); try { $oXmlApi = new \xmlapi($sHost); $oXmlApi->set_port($this->iPost); $oXmlApi->set_protocol($this->bSsl ? 'https' : 'http'); $oXmlApi->set_debug(false); $oXmlApi->set_output('json'); // $oXmlApi->set_http_client('fopen'); $oXmlApi->set_http_client('curl'); $oXmlApi->password_auth($sUser, $sPassword); $aArgs = array('email' => $sEmailUser, 'domain' => $sEmailDomain, 'password' => $sNewPassword); $sResult = $oXmlApi->api2_query($sUser, 'Email', 'passwdpop', $aArgs); if ($sResult) { if ($this->oLogger) { $this->oLogger->Write('CPANEL: ' . $sResult, \MailSo\Log\Enumerations\Type::INFO); } $aResult = @\json_decode($sResult, true); $bResult = isset($aResult['cpanelresult']['data'][0]['result']) && !!$aResult['cpanelresult']['data'][0]['result']; } if (!$bResult && $this->oLogger) { $this->oLogger->Write('CPANEL: ' . $sResult, \MailSo\Log\Enumerations\Type::ERROR); } } catch (\Exception $oException) { if ($this->oLogger) { $this->oLogger->WriteException($oException); } } } else { if ($this->oLogger) { $this->oLogger->Write('CPANEL: Incorrent configuration data', \MailSo\Log\Enumerations\Type::ERROR); } } return $bResult; }
/** * root access * @param $domain * @param $root_hash * @return xmlapi */ public static function authorize_root($domain, $root_hash) { self::$hashroot = $root_hash; //save hash try { $xmlapi = new xmlapi($domain); $xmlapi->hash_auth(HW_WHM_ROOT_USER, $root_hash); $xmlapi->set_output("json"); $xmlapi->set_debug(1); $inst = new self(); $inst->host = $domain; #$inst->cpanelUser = '******'; #$inst->cpanelPass = $root_hash; $inst->xmlapi = $xmlapi; return $inst; } catch (Exception $e) { print_r($e); } }
/** * ControllerCpanelEmail::delete() * * @see Load * @see Document * @see Language * @see Session * @see Redirect * @see getList * @return void */ public function delete() { $this->load->library('cpxmlapi'); $cp = new xmlapi(CPANEL_HOST); if (isset($this->request->post['selected'])) { $cp->set_port(CPANEL_PORT); //set port number. cpanel client class allow you to access WHM as well using WHM port. $cp->password_auth(CPANEL_USER, CPANEL_PWD); // authorization with password. not as secure as hash. $cp->set_debug(0); //output to error file set to 1 to see error_log. foreach ($this->request->post['selected'] as $user) { // cpanel email addpop function Parameters $call = array('domain' => CPANEL_DOMAIN, 'email' => $user); $result = $cp->api2_query(CPANEL_USER, "Email", "delpop", $call); // making call to cpanel api } if ($result->data->result == 1) { $this->session->data['success'] = " La(s) cuenta(s) han sido eliminada(s) con éxito"; } else { $this->session->data['error'] = "No se pudo eliminar la cuenta de correo: " . $result->data->reason; } } $this->redirect(Url::createAdminUrl('cpanel/email') . $url); }