D7net
Home
Console
Upload
information
Create File
Create Folder
About
Tools
:
/
usr
/
src
/
rmw
/
cpanel
/
RemoteMxWizard
/
php
/
Filename :
cpanel.func.php
back
Copy
<?php ################################################## # # # GK~root - Creating a better web # # Copyright (c) GK~root. All Rights Reserved. # # Software: Remote Mx Wizard # # Version: 1.0.3 # # Create Date: Jan 07 2015 # # Website: http://www.gk-root.com # # # ################################################## # # # This software is released under a license. # # You cannot transfer it to any other person, # # resell it or claim any code as your own. # # By using the software you agree to this terms. # # # ################################################## function SetLangFile() { global $LiveCpApi; $userlocale = $LiveCpApi->api2('Locale','get_user_locale'); $UserLocalFile = '/usr/local/cpanel/base/3rdparty/RemoteMxWizard/lang/'.trim($userlocale['cpanelresult']['data'][0]['locale']).'.php'; if (file_exists($UserLocalFile)) { $UserLangFile = $UserLocalFile; } else { $UserLangFile = '/usr/local/cpanel/base/3rdparty/RemoteMxWizard/lang/en.php'; } return $UserLangFile; } function SetStdHeader() { global $LiveCpApi; $stdheader = $LiveCpApi->api1("Branding", "include", array("stdheader.html")); return $stdheader['cpanelresult']['data']['result']; } function SetStdFooter() { global $LiveCpApi; $stdfooter = $LiveCpApi->api1("Branding", "include", array("stdfooter.html")); return $stdfooter['cpanelresult']['data']['result']; } function UserTheme() { global $LiveCpApi; $statsbar = $LiveCpApi->api2('StatsBar','stat',array("display"=>"theme")); $cpTheme = trim($statsbar['cpanelresult']['data'][0]['value']); if (!empty($cpTheme)) { return $cpTheme; } else { return false; } } function cpBase($UserTheme) { if (isset($_ENV['cp_security_token'])) { $cptokuri = $_ENV['cp_security_token'].'/frontend/'; } else { $cptokuri = '/frontend/'; } if ($UserTheme) { return $cptokuri.$UserTheme.'/'; } else { return false; } } function cpToken() { $cp_security_token = getenv('cp_security_token'); if (isset($_ENV['cp_security_token'])) { if (!empty($cp_security_token)) { return str_replace("/", "", $cp_security_token); } } return false; } function GetAlwaysAccept($domain) { global $LiveCpApi; $getalwaysaccept = $LiveCpApi->api2("Email", "getalwaysaccept", array("domain"=>$domain)); $res['alwaysaccept'] = $getalwaysaccept['cpanelresult']['data'][0]['alwaysaccept']; $UserConfFile = getenv('HOME').'/.remotemxwizard/oldprovider.conf'; if (file_exists($UserConfFile)) { $res['mxconf'] = $UserConfFile; } else { $res['mxconf'] = false; } return $res; } function SaveProviderConfig($ConfFile) { $UserConfDir = getenv('HOME').'/.remotemxwizard'; if (!file_exists($UserConfDir)) { mkdir($UserConfDir); } $FullConfFile = '/usr/local/cpanel/base/3rdparty/RemoteMxWizard/mail_providers/'.$ConfFile; if (file_exists($FullConfFile)) { if (copy($FullConfFile, $UserConfDir.'/oldprovider.conf')) { return true; } } return false; } function RemoveProviderConfig() { $UserConfFile = getenv('HOME').'/.remotemxwizard/oldprovider.conf'; $UserSpfFile = getenv('HOME').'/.remotemxwizard/oldspfrecord'; if (file_exists($UserConfFile)) { if (unlink($UserConfFile)) { if (file_exists($UserSpfFile)) {unlink($UserSpfFile);} if (rmdir(getenv('HOME').'/.remotemxwizard')) { return true; } } } return false; } function FetchLocalDomainZone($domain,$services=false) { global $LiveCpApi; $domainzone = $LiveCpApi->api2('ZoneEdit','fetchzone_records',array("domain"=>$domain)); $getmainserverip = $LiveCpApi->api2('SPFUI','getmainserverip',array("user"=>getenv('USER'))); $res['serverip'] = $getmainserverip['cpanelresult']['data'][0]['mainserverip']; foreach($domainzone['cpanelresult']['data'] as $val) { if ($val['type'] == 'MX') { if ($val['name'] == $domain.'.') { $res['oldMxPri'] = $val['preference']; } } if ($val['type'] == 'TXT') { if ($val['name'] == $domain.'.') { if (preg_match("/v=spf/i", $val['record'])) { $res['RspfLine'] = $val['line']; $res['spfOld'] = $val['record']; } } } if ($val['type'] == '$TTL') { $res['GlobalTTL'] = $val['ttl']; } if (isset($val['name'])) { if ($val['name'] == 'mail.'.$domain.'.') {$res['mailLine'] = $val['line'];} if ($val['name'] == 'webmail.'.$domain.'.') {$res['webmailLine'] = $val['line'];} if ($services && is_array($services)) { foreach ($services as $Service) { $rType = trim($Service[0]); $rName = trim($Service[1]); $rDest = trim($Service[2]); $rOptional = trim($Service[3]); if ($val['name'] == $rName.'.'.$domain.'.') {$res['services'][$rName] = $val['line'];} } } } } return $res; } function EditMailLine($domain,$des,$mailLine,$ttl,$mailrecord) { global $LiveCpApi; global $LANG; if ($mailrecord == 'mail') { $type = 'CNAME'; $destype = 'cname'; } elseif ($mailrecord == 'webmail') { $type = 'A'; $destype = 'address'; } $EditMailLine = $LiveCpApi->api2('ZoneEdit','edit_zone_record',array("domain"=>$domain,"line"=>$mailLine,"name"=>$mailrecord,"type"=>$type,$destype=>$des,"ttl"=>$ttl)); if ($EditMailLine['cpanelresult']['data'][0]['result']['status'] == "1") { print('<p>'.$LANG['funcmsg1'].' "'.$mailrecord.'.'.$domain.'" '.$LANG['funcmsg2'].' "'.$des.'" '.$LANG['funcmsg6'].' '.$type.' '.$LANG['funcmsg7'].'.</p>'); } else { print('<p class="red">'.$EditMailLine['cpanelresult']['data'][0]['result']['statusmsg'].'</p>'); } } function SetProviderServices($domain,$service,$cname,$Rtype,$ttl) { global $LiveCpApi; global $LANG; if (!empty($service)) { $AddRecord = $LiveCpApi->api2('ZoneEdit','add_zone_record',array("domain"=>$domain,"name"=>$service,"type"=>$Rtype,"cname"=>$cname,"ttl"=>$ttl)); if ($AddRecord['cpanelresult']['data'][0]['result']['status'] == "1") { echo '<p>'.$LANG['funcmsg1'].' "'.$service.'.'.$domain.'" '.$LANG['funcmsg2'].' "'.$cname.'" '.$LANG['funcmsg6'].' '.$Rtype.' '.$LANG['funcmsg7'].'.</p>'; } else { echo '<p class="red">'.$AddRecord['cpanelresult']['data'][0]['result']['statusmsg'].'</p>'; } } } function SetProviderMXs($providername,$domain,$ProviderMXs,$oldpreference,$BackupMxPreference,$ProviderSPF,$ttl) { global $LiveCpApi; global $LANG; foreach ($ProviderMXs as $MXrecord=>$Preference) { $addmx = $LiveCpApi->api2('Email','addmx',array("domain"=>$domain,"exchange"=>$MXrecord,"preference"=>$Preference,"alwaysaccept"=>"remote")); if ($addmx['cpanelresult']['data'][0]['status'] == "1") { echo '<p>'.$LANG['funcmsg10'].' '.$providername.' '.$LANG['funcmsg16'].': "'.$MXrecord.'".</p>'; if (isset($addmx['cpanelresult']['data'][0]['checkmx']['warnings']) && !empty($addmx['cpanelresult']['data'][0]['checkmx']['warnings'])) { echo '<p>'.$addmx['cpanelresult']['data'][0]['checkmx']['warnings'].'</p>'; } } else { echo '<p class="red">'.$LANG['funcmsg11'].' '.$providername.' "'.$MXrecord.'".<br>'.$addmx['cpanelresult']['data'][0]['statusmsg'].'</p>'; } } if (empty($BackupMxPreference)) { $delmx = $LiveCpApi->api2('Email','delmx',array("domain"=>$domain,"exchange"=>$domain,"preference"=>$oldpreference)); if ($delmx['cpanelresult']['data'][0]['status'] == "1") { echo '<p>'.$LANG['funcmsg8'].' '.$LANG['funcmsg14'].': "'.$domain.'".</p>'; } else { echo '<p class="red">'.$LANG['funcmsg9'].' '.$LANG['funcmsg14'].': "'.$domain.'".<br>'.$delmx['cpanelresult']['data'][0]['statusmsg'].'</p>'; } } else { $changemx = $LiveCpApi->api2('Email','changemx',array("domain"=>$domain,"exchange"=>$domain,"oldexchange"=>$domain,"oldpreference"=>$oldpreference,"preference"=>$BackupMxPreference)); if ($changemx['cpanelresult']['data'][0]['status'] == "1") { echo '<p>'.$LANG['funcmsg12'].'</p>'; if (isset($changemx['cpanelresult']['data'][0]['checkmx']['warnings']) && !empty($changemx['cpanelresult']['data'][0]['checkmx']['warnings'])) { echo '<p>'.$changemx['cpanelresult']['data'][0]['checkmx']['warnings'].'</p>'; } } else { echo '<p class="red">'.$LANG['funcmsg13'].'.<br>'.$CMX['cpanelresult']['data'][0]['statusmsg'].'</p>'; } } if (!empty($ProviderSPF)) { $AddSpf = $LiveCpApi->api2('ZoneEdit','add_zone_record',array("domain"=>$domain,"name"=>$domain.'.','txtdata'=>$ProviderSPF,"type"=>"TXT","ttl"=>$ttl,"class"=>"IN")); if ($AddSpf['cpanelresult']['data'][0]['result']['status'] == "1") { echo '<p>'.$LANG['funcmsg10'].' '.$providername.' '.$LANG['funcmsg15'].': "'.$ProviderSPF.'".</p>'; } else { echo '<p class="red">'.$AddSpf['cpanelresult']['data'][0]['result']['statusmsg'].'</p>'; } } } function GetUserOldSpf() { $UserOldSpfFile = getenv('HOME').'/.remotemxwizard/oldspfrecord'; if (file_exists($UserOldSpfFile)) { $OldSpfRecord = trim(file_get_contents($UserOldSpfFile)); if (!empty($OldSpfRecord)) { return $OldSpfRecord; } } return false; } function RemoveProviderMXs($domain,$ttl,$OldProviderConf) { global $LiveCpApi; global $LANG; $UserOldSpfRecord = GetUserOldSpf(); foreach ($OldProviderConf['MXs'] as $MXrecord=>$Preference) { $RMX = $LiveCpApi->api2('Email','delmx',array("domain"=>$domain,"exchange"=>$MXrecord,"preference"=>$Preference,"alwaysaccept"=>"local")); if ($RMX['cpanelresult']['data'][0]['status'] == "1") { print('<p>'.$LANG['funcmsg8'].' '.$OldProviderConf['NAME'].' '.$LANG['funcmsg16'].': "'.$MXrecord.'".</p>'); if (isset($RMX['cpanelresult']['data'][0]['checkmx']['warnings']) && !empty($RMX['cpanelresult']['data'][0]['checkmx']['warnings'])) { print('<p>'.$RMX['cpanelresult']['data'][0]['checkmx']['warnings'].'</p>'); } } else { print('<p class="red">'.$LANG['funcmsg9'].' '.$OldProviderConf['NAME'].' '.$LANG['funcmsg16'].': "'.$MXrecord.'".<br>'.$RMX['cpanelresult']['data'][0]['statusmsg'].'</p>'); } } if (empty($OldProviderConf['BACKUPMX'])) { $BMXR = $LiveCpApi->api2('Email','addmx',array("domain"=>$domain,"exchange"=>$domain,"preference"=>"0","alwaysaccept"=>"local")); if ($BMXR['cpanelresult']['data'][0]['status'] == "1") { print('<p>'.$LANG['funcmsg10'].' '.$LANG['funcmsg14'].': "'.$domain.'".</p>'); } else { print('<p class="red">'.$LANG['funcmsg11'].' '.$LANG['funcmsg14'].': "'.$domain.'".<br>'.$BMXR['cpanelresult']['data'][0]['statusmsg'].'</p>'); } } else { $CBMXR = $LiveCpApi->api2('Email','changemx',array("domain"=>$domain,"exchange"=>$domain,"oldexchange"=>$domain,"oldpreference"=>$OldProviderConf['BACKUPMX'],"preference"=>"0","alwaysaccept"=>"local")); if ($CBMXR['cpanelresult']['data'][0]['status'] == "1") { print('<p>'.$LANG['funcmsg12'].'</p>'); if (isset($CBMXR['cpanelresult']['data'][0]['checkmx']['warnings']) && !empty($CBMXR['cpanelresult']['data'][0]['checkmx']['warnings'])) { print('<p>'.$CBMXR['cpanelresult']['data'][0]['checkmx']['warnings'].'</p>'); } } else { print('<p class="red">'.$LANG['funcmsg13'].'<br>'.$CBMXR['cpanelresult']['data'][0]['statusmsg'].'</p>'); } } if ($UserOldSpfRecord) { $AddUserOldSpf = $LiveCpApi->api2('ZoneEdit','add_zone_record',array("domain"=>$domain,"name"=>$domain.'.','txtdata'=>$UserOldSpfRecord,"type"=>"TXT","ttl"=>$ttl,"class"=>"IN")); if ($AddUserOldSpf['cpanelresult']['data'][0]['result']['status'] == "1") { print('<p>'.$LANG['funcmsg10'].' '.$LANG['funcmsg17'].' "'.$UserOldSpfRecord.'".</p>'); } else { print('<p class="red">'.$AddUserOldSpf['cpanelresult']['data'][0]['result']['statusmsg'].'</p>'); } } if (RemoveProviderConfig()) { print('<p>'.$LANG['funcmsg18'].'</p>'); } else { print('<p class="red">'.$LANG['funcmsg19'].'</p>'); } } function RemoveZoneRecord($providername,$domain,$record,$line,$spf=false) { global $LiveCpApi; global $LANG; if ($spf) { $userdir = getenv('HOME').'/.remotemxwizard'; if (!file_exists($userdir)) {mkdir($userdir);} if (file_put_contents($userdir.'/oldspfrecord',$spf)) { echo '<p>'.$LANG['funcmsg20'].' '.$LANG['funcmsg17'].': "'.$spf.'".</p>'; } else { echo '<p>'.$LANG['funcmsg21'].' '.$LANG['funcmsg17'].': "'.$spf.'".</p>'; } $Rspf = $LiveCpApi->api2('ZoneEdit','remove_zone_record',array("domain"=>$domain,"line"=>$line)); if ($Rspf['cpanelresult']['data'][0]['result']['status'] == "1") { echo '<p>'.$LANG['funcmsg8'].' '.$LANG['funcmsg17'].' '.$LANG['funcmsg22'].': "'.$domain.'".</p>'; } else { echo '<p class="red">'.$Rspf['cpanelresult']['data'][0]['result']['statusmsg'].'</p>'; } } elseif (!empty($record) && $spf == false && !empty($line)) { sleep(1); $fetchzone = $LiveCpApi->api2('ZoneEdit','fetchzone_records',array("domain"=>$domain)); foreach($fetchzone['cpanelresult']['data'] as $valz) { if (isset($valz['name'])) { if ($valz['name'] == $record.'.'.$domain.'.') {$rLine = $valz['line'];} } } $RZR = $LiveCpApi->api2('ZoneEdit','remove_zone_record',array("domain"=>$domain,"line"=>$rLine)); if ($RZR['cpanelresult']['data'][0]['result']['status'] == "1") { echo '<p>'.$LANG['funcmsg8'].' '.$record.'.'.$domain.' '.$LANG['funcmsg7'].'.</p>'; } else { echo '<p class="red">'.$RZR['cpanelresult']['data'][0]['result']['statusmsg'].'</p>'; } } elseif (empty($record) && $spf == false && !empty($line)) { $sRZR = $LiveCpApi->api2('ZoneEdit','remove_zone_record',array("domain"=>$domain,"line"=>$line)); if ($sRZR['cpanelresult']['data'][0]['result']['status'] == "1") { echo '<p>'.$LANG['funcmsg8'].' '.$providername.' '.$LANG['funcmsg15'].' '.$LANG['funcmsg22'].': "'.$domain.'".</p>'; } else { echo '<p class="red">'.$sRZR['cpanelresult']['data'][0]['result']['statusmsg'].'</p>'; } } } function GawMatchConfig($domain) { global $LiveCpApi; if (file_exists('/usr/local/cpanel/base/3rdparty/RemoteMxWizard/mail_providers/google_apps.conf')) { $GawConf = GetMailProviderConf('google_apps.conf'); $listmxs = $LiveCpApi->api2('Email','listmxs',array("domain"=>$domain)); foreach ($listmxs['cpanelresult']['data'][0]['entries'] as $mxrecord) { $userMXS = trim($mxrecord['mx']); if (array_key_exists($userMXS,$GawConf['MXs'])) { if (SaveProviderConfig('google_apps.conf')) { return true; } } } } return false; } ?>