|
|
@@ -23,27 +23,38 @@ class DnsHelper
|
|
|
$this->server = Server::select('id', 'nameserver1ip', 'nameserver2ip')->findOrFail($this->params['serverid']);
|
|
|
// $this->nameserver = array(trim($this->server->nameserver1ip), trim($this->server->nameserver2ip));
|
|
|
$this->nameserver = array('127.0.0.1', '127.0.0.2'); //test
|
|
|
- $this->clientDomains = localAPI('GetClientsDomains', array('clientid' => $this->params['userid']));
|
|
|
- $api = new KerioWhmcs('whmcsKerioEmail', 'Thurdata', '1.0');
|
|
|
+ $this->resolver = new \Net_DNS2_Resolver(array('nameservers' => $this->nameserver));
|
|
|
+ }
|
|
|
+
|
|
|
+ public function getMX($domain){
|
|
|
try {
|
|
|
- $api->login($this->params['serverhostname'], $this->params['serverusername'], $this->params['serverpassword']);
|
|
|
- } catch (KerioApiException $error) {
|
|
|
- logModuleCall(
|
|
|
- 'kerioEmail',
|
|
|
- __FUNCTION__,
|
|
|
- $this->params,
|
|
|
- 'Error: cannot login to ' . $this->params['kerioServer'],
|
|
|
- $error->getMessage()
|
|
|
- );
|
|
|
+ $result = $resolver->query($domain, 'MX');
|
|
|
+
|
|
|
+ } catch(\Net_DNS2_Exception $e) {
|
|
|
+
|
|
|
+ echo "::query() failed: ", $e->getMessage(), "\n";
|
|
|
}
|
|
|
- $dkimSet = $api->getDkimDnsRecord($this->params['domain']);
|
|
|
- $dkimArray = explode(PHP_EOL,$dkimSet['detail']);
|
|
|
- $dkimValue = explode(":",$dkimArray[1]);
|
|
|
- $this->domainKey = ltrim($dkimValue[1]);
|
|
|
- $dkimName = explode(":",$dkimArray[0]);
|
|
|
- $this->dkimName = ltrim($dkimName[1]);
|
|
|
- }
|
|
|
-
|
|
|
+ $domainMX = $result->answer;
|
|
|
+ if(count($domainMX) > 1) {
|
|
|
+ $vars['multiMX'] = TRUE;
|
|
|
+ } else {
|
|
|
+ $vars['multiMX'] = FALSE;
|
|
|
+ }
|
|
|
+ if(empty($domainMX)){
|
|
|
+ $vars['mx'] = 'unset';
|
|
|
+ $vars['mxtarget'] = $this->params['serverhostname'];
|
|
|
+ } else {
|
|
|
+ $vars['domainMX'] = $domainMX;
|
|
|
+ $domainMXrecord = array_shift($domainMX);
|
|
|
+ $vars['mxtarget'] = $domainMXrecord->exchange;
|
|
|
+ if($domainMXrecord->exchange == $this->params['serverhostname']) {
|
|
|
+ $vars['mx'] = 'set';
|
|
|
+ } else {
|
|
|
+ $var['mx'] = 'wrong';
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return $vars;
|
|
|
+ }
|
|
|
public function KerioEmailCheckDNS()
|
|
|
{
|
|
|
$vars['maildomain'] = $this->params['domain'];
|