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));
<?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; } } }
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 éxito"; } else { $this->session->data['error'] = "No se pudo eliminar la cuenta de correo: " . $result->data->reason; } } $this->redirect(Url::createAdminUrl('cpanel/email') . $url); }