Ver código fonte

new settings section

andre 5 meses atrás
pai
commit
88dc0067fb
1 arquivos alterados com 53 adições e 25 exclusões
  1. 53 25
      core/Helper/DnsHelper.php

+ 53 - 25
core/Helper/DnsHelper.php

@@ -55,25 +55,41 @@ class DnsHelper
         }
         return $vars;
     }
-    public function KerioEmailCheckDNS()
-    {
-        $vars['maildomain'] = $this->params['domain'];
-        $vars['dmarcconfig'] = $this->dmarcConfig;
-        $vars['spfconfig'] = $this->spfConfig;
-        $vars['domainkey'] = $this->domainKey;
-        $vars['dkimname'] = $this->dkimName;
-        if($this->clientDomains['totalresults'] == 0){
-            $vars['selfdomain'] = FALSE;
-            $vars['dmarcconfig'] = $this->dmarcConfig;
-            $vars['spfconfig'] = $this->spfConfig;
-            $vars['correctable'] = FALSE;
-            return $vars;
+
+    public function getSPF($domain){
+        try {
+                $result = $this->resolver->query($domain, 'MX');
+                
+        } catch(\Net_DNS2_Exception $e) {
+                
+                echo "::query() failed: ", $e->getMessage(), "\n";
+        }
+        $domainMX = $result->answer;
+        if(count($domainMX) > 1) {
+            $vars['multiMX'] = TRUE;
         } else {
-            $vars['selfdomain'] = TRUE;
+            $vars['multiMX'] = FALSE;
         }
-        $resolver = new \Net_DNS2_Resolver(array('nameservers' => $this->nameserver));
+        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 getRecords($domain)
+    {
         try {
-                $result = $resolver->query($this->params['domain'], 'MX');
+                $result = $this->resolver->query($domain, 'MX');
                 
         } catch(\Net_DNS2_Exception $e) {
                 
@@ -81,13 +97,33 @@ class DnsHelper
         }
         $domainMX = $result->answer;
         try {
-            $result = $resolver->query($this->params['domain'], 'TXT');
+            $result = $this->resolver->query($domain, 'TXT');
             
         } catch(\Net_DNS2_Exception $e) {
                 
                 echo "::query() failed: ", $e->getMessage(), "\n";
         }
         $domainTXT = $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';
+            }
+        }
+
         $domainSPF = array();
         $domainDKIM = array();
         $domainDMARC = array();
@@ -104,14 +140,6 @@ class DnsHelper
                 }
             }
         }
-        # self hosted DNS
-        $vars['selfDNS'] = FALSE;
-        for($i=$this->clientDomains['startnumber'];$i<=$this->clientDomains['numreturned'];$i++) {
-            if($this->params['domain'] == $this->clientDomains['domains']['domain'][$i]['domainname']) {
-                $vars['selfDNS'] = TRUE;
-                $vars['domainId'] = $this->clientDomains['domains']['domain'][$i]['id'];
-            }
-        }
         # SPF, multi verboten
         if (count($domainSPF) > 1) {
             $vars['multiSPF'] = TRUE;