andre 5 месяцев назад
Родитель
Сommit
bcd4e10f2c
1 измененных файлов с 40 добавлено и 24 удалено
  1. 40 24
      core/Helper/DnsHelper.php

+ 40 - 24
core/Helper/DnsHelper.php

@@ -27,30 +27,46 @@ class DnsHelper
     }    
 
     public function getMX($domain){
-        try {
-                $result = $this->resolver->query($domain, 'MX');
-                
-        } catch(\Net_DNS2_Exception $e) {
-                
-                echo "::query() failed: ", $e->getMessage(), "\n";
-        }
-        $domainMX = $result->answer;
-        if(empty($domainMX)){
-            $vars['mx'] = 'unset';
-            $vars['mxtarget'] = $this->params['serverhostname'];
-        } else {
-            if(count($domainMX) > 1) {
-                $vars['multiMX'] = TRUE;
-            } else {
-                $vars['multiMX'] = FALSE;
+        $zoneID = selfDns($domain);
+        if($zoneID){
+            // use local API
+            $dnsZone = localAPI('dnsmanager', array( 'dnsaction' => 'getZone', 'zone_id' => $zoneID));
+        
+            logModuleCall(
+                'kerioEmail',
+                __FUNCTION__,
+                $domain,
+                'DEbug',
+                $dnsZone
+            );
+
+//        } else {
+            // use resolver
+            try {
+                    $result = $this->resolver->query($domain, 'MX');
+                    
+            } catch(\Net_DNS2_Exception $e) {
+                    
+                    echo "::query() failed: ", $e->getMessage(), "\n";
             }
-            $vars['domainMX'] = $domainMX;
-            $domainMXrecord = array_shift($domainMX);
-            $vars['mxtarget'] = $domainMXrecord->exchange;
-            if($domainMXrecord->exchange == $this->params['serverhostname']) {
-                $vars['mx'] = 'set';
+            $domainMX = $result->answer;
+            if(empty($domainMX)){
+                $vars['mx'] = 'unset';
+                $vars['mxtarget'] = $this->params['serverhostname'];
             } else {
-                $var['mx'] = 'wrong';
+                if(count($domainMX) > 1) {
+                    $vars['multiMX'] = TRUE;
+                } else {
+                    $vars['multiMX'] = FALSE;
+                }
+                $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;
@@ -166,7 +182,7 @@ class DnsHelper
         }
         return $vars;
     }
-
+    
     public function selfDns($domain){
         $zoneIDcollection = Capsule::table('dns_manager2_zone')
             ->select('id')
@@ -176,7 +192,7 @@ class DnsHelper
         if(!isset($zoneIDobj->{'id'})) {
             return false;
         }
-        return true;
+        return $zoneIDobj->{'id'};
     }
 
     function KerioEmailsetDNS()