فهرست منبع

new settings section

andre 5 ماه پیش
والد
کامیت
d2b58cc631
1فایلهای تغییر یافته به همراه18 افزوده شده و 78 حذف شده
  1. 18 78
      core/Helper/DnsHelper.php

+ 18 - 78
core/Helper/DnsHelper.php

@@ -96,6 +96,10 @@ class DnsHelper
 
     public function getResolverRecords($domain)
     {
+        $vars['mx'] = array();
+        $vars['spf'] = array();
+        $vars['dmarc'] = array();
+        $vars['dkim'] = array();
         try {
             $responseMX = $this->resolver->query($domain, 'MX');
             $responseTXT = $this->resolver->query($domain, 'TXT');
@@ -106,95 +110,31 @@ class DnsHelper
         }
         $domainMX = $responseMX->answer;
         $domainTXT = $responseTXT->answer;
-        if(empty($domainMX)){
-            $vars['mx'] = [ 'status' => 'unset', 'target' => 'none'];
-        } else {
-
-            foreach($domainMX as $mxRecord) {
-                if($mxRecord->exchange == $this->params['serverhostname']) {
-                    array_push($vars['mx'], [ 'status' => 'set','target' => $mxRecord->exchange]);
+        foreach($domainMX as $mxRecord) {
+            array_push($vars['mx'], $mxRecord->exchange);
+        }
+        foreach($domainTXT as $txtRecord) {
+            foreach($txtRecord->text as $txtData) {
+                if(strstr($txtData,'v=spf')) {
+                    array_push($vars['spf'],$txtData);
+                }
+                if(strstr($txtData,'v=DMARC')) {
+                    array_push($vars['dmarc'],$txtData);
+                }
+                if(strstr($txtData,'v=DKIM')) {
+                    array_push($vars['dkim'],$txtData);
                 }
-            }
-            if(empty($vars['mx'])){
-                $vars['mx'] = [ 'status' => 'wrong', 'target' => $mxRecord->exchange];
             }
         }
 
             logModuleCall(
                 'kerioEmail',
                 __FUNCTION__,
-                $vars['mx'],
+                $vars,
                 'DEbug',
                 $domain
             );
 
-        $domainSPF = array();
-        $domainDMARC = array();
-        $domainDKIM = array();
-        if(empty($domainTXT)){
-            $vars['spf'] = 'unset';
-            $vars['dmarc'] = 'unset';
-            $vars['dkim'] = 'unset';
-        } else {
-            foreach($domainTXT as $txtRecord) {
-                foreach($txtRecord->text as $txtData) {
-                    if(strstr($txtData,'v=spf')) {
-                        array_push($domainSPF,$txtData);
-                    }
-                    if(strstr($txtData,'v=DKIM')) {
-                        array_push($domainDKIM,$txtData);
-                    }
-                    if(strstr($txtData,'v=DMARC')) {
-                        array_push($domainDMARC,$txtData);
-                    }
-                }
-            }
-            # SPF, multi verboten
-            if (count($domainSPF) > 1) {
-                $vars['multiSPF'] = TRUE;
-                $vars['spf'] = 'wrong';
-            } else {
-                $vars['multiSPF'] = FALSE;
-                if (empty($domainSPF)) {
-                    $vars['spf'] = 'unset';
-                } else {        
-                    if($domainSPF[0] === $spfConfig) {
-                        $vars['spf'] = 'set';
-                    } else {
-                        $vars['spf'] = 'wrong';
-                    }
-                }
-            }
-            # DKIM
-            if (count($domainDKIM) > 1) {
-                $vars['multiDKIM'] = TRUE;
-            } else {
-                $vars['multiDKIM'] = FALSE;
-            }
-            if (empty($domainDKIM)) {
-                $vars['dkim'] = 'unset';
-            } else {        
-                $vars['dkim'] = 'set';
-            }
-            $vars['domainDKIM'] = $domainDKIM;
-            # DMARC
-            if (count($domainDMARC) > 1) {
-                $vars['multiDMARC'] = TRUE;
-            } else {
-                $vars['multiDMARC'] = FALSE;
-            }
-            $vars['dmarc'] = 'wrong';
-            if (empty($domainDMARC)) {
-                $vars['dmarc'] = 'unset';
-            } else {        
-                foreach($domainDMARC as $dmarc) {
-                    if($dmarc === $dmarcConfig) {
-                        $vars['dmarc'] = 'set';
-                    }
-                }
-            }
-            $vars['domainDMARC'] = $domainDMARC;
-        }
         return $vars;
     }