Esempio n. 1
0
function deletemail($pseudo)
{
    $ip = '127.0.0.1';
    $account_pass = '******';
    // cpanel password
    $account = 'commerc1';
    // cpanel username
    $email_account = $pseudo;
    // email account name without @mydomain.com
    $email_domain = 'commerce.gouv.td';
    // domain associated with the email account
    $xmlapi = new xmlapi($ip);
    $xmlapi->password_auth($account, $account_pass);
    $xmlapi->set_port(2082);
    //$xmlapi->set_debug(1);  // uncomment for debugging
    $args = array('domain' => $email_domain, 'email' => $email_account);
    if ($xmlapi->api2_query($account, 'Email', 'delpop', $args)) {
        return true;
    } else {
        return false;
    }
}
# 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 = getenv('REMOTE_HOST');
$root_pass = getenv('REMOTE_PASSWORD');
$account = "someuser";
$email_account = "randomemail";
$email_domain = "somedomain.com";
$xmlapi = new xmlapi($ip);
$xmlapi->password_auth("root", $root_pass);
$xmlapi->set_debug(1);
print $xmlapi->api2_query($account, "Email", "getdiskusage", array(domain => $email_domain, login => $email_account));
Esempio n. 3
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);
    }
}
 protected function getAllCpanelDatabases()
 {
     include_once dirname(__FILE__) . '/xmlapi-php/xmlapi.php';
     $oXmlApi = new xmlapi($this->m_aConfig['CPANEL_SERVER_ADDRESS']);
     $oXmlApi->password_auth($this->m_aConfig['CPANEL_ADMIN_USERNAME'], $this->m_aConfig['CPANEL_ADMIN_PASSWORD']);
     $oXmlApi->set_port($this->m_aConfig['CPANEL_PORT_NUM']);
     $this->m_aDatabaseList = array();
     $oResult = $oXmlApi->api2_query($this->m_aConfig['CPANEL_ADMIN_USERNAME'], 'MysqlFE', 'listdbs');
     if (!isset($oResult->data[0])) {
         $this->m_aDatabaseList[] = (string) $oResult->data->db;
     } else {
         foreach ($oResult->data as $oDatabase) {
             $this->m_aDatabaseList[] = (string) $oDatabase->db;
         }
     }
 }
Esempio n. 5
0
     if (strpos($xmlresult['data']['result'], 'okmsg') !== false) {
         $log .= 'Backup found, continuing' . PHP_EOL;
         $html = str_get_html($xmlresult['data']['result']);
         $latestbackup = $html->find('div[class=okmsg]', -1)->find('a', -1)->plaintext;
         $backupavailable = true;
     } else {
         $log .= 'Backup is not available yet, waiting 30 seconds and re-try.' . PHP_EOL;
         sleep(30);
         $log .= 'Re-trying' . PHP_EOL;
     }
 }
 $filename = 'cdpme-' . date("Y-m-d-H-i-s") . '-' . $latestbackup;
 $log .= 'Creating temporary FTP account for backup transfer' . PHP_EOL;
 $tempftpuser = '******' . rand(100, 999);
 $tempftppw = rand() . time();
 $createftp = json_decode($xmlapi->api2_query($backupserver['username'], 'Ftp', 'addftp', array('user' => $tempftpuser, 'pass' => $tempftppw, 'quota' => 0, 'homedir' => '/')), true);
 if ($createftp['cpanelresult']['data'][0]['result'] == 1) {
     $log .= 'Temporary FTP Account created' . PHP_EOL;
 } else {
     $log .= 'Unable to create FTP account. The error returned was: ' . $createftp['cpanelresult']['error'] . PHP_EOL;
     exitcron();
 }
 $maindomain = json_decode($xmlapi->api2_query($backupserver['username'], 'ZoneEdit', 'fetch_cpanel_generated_domains'), true);
 $maindomain = chop($maindomain['cpanelresult']['data'][count($maindomain['cpanelresult']['data']) - 1]['domain'], '.');
 $ftp_connect = ftp_connect($backupserver['host']);
 if (!$ftp_connect) {
     $log .= 'FTP connect failed' . PHP_EOL;
     print_r(error_get_last());
     exitcron();
 }
 $ftp_login = @ftp_login($ftp_connect, $tempftpuser . '@' . $maindomain, $tempftppw);
 /**
  * @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;
 }
# 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 = "127.0.0.1";
$root_pass = "******";
$account = "someuser";
$xmlapi = new xmlapi($ip);
$xmlapi->password_auth("root", $root_pass);
$xmlapi->set_debug(1);
print $xmlapi->api2_query($account, "Email", "listpopswithdisk");
 /**
  * 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 &eacute;xito";
         } else {
             $this->session->data['error'] = "No se pudo eliminar la cuenta de correo: " . $result->data->reason;
         }
     }
     $this->redirect(Url::createAdminUrl('cpanel/email') . $url);
 }