Browse Source

new settings section

andre 5 months ago
parent
commit
2a54b03980
1 changed files with 23 additions and 6 deletions
  1. 23 6
      core/Helper/DnsHelper.php

+ 23 - 6
core/Helper/DnsHelper.php

@@ -82,26 +82,43 @@ class DnsHelper
     }
 
     private function getLocalRecords($zoneID) {
+        $vars['mx'] = array();
+        $vars['spf'] = array();
+        $vars['dmarc'] = array();
+        $vars['dkim'] = array();
         $dnsZone = localAPI('dnsmanager', array( 'dnsaction' => 'getZone', 'zone_id' => $zoneID));
         if($dnsZone['result'] != 'success') {
             return 'Error: cloud not fetch zone for ID ' . $zoneID;
         }
         $zoneRecords = array();
-        foreach($dnsZone['data']->records as $record) {
-            if(in_array($record->type, ['MX', 'TXT'])){
-                array_push($zoneRecords, $record);
+        foreach($dnsZone['data']->records as $localRecord) {
+            if($localRecord->type == 'MX'){
+                array_push($vars['mx'], $localRecord->rdata->exchange);
+            }
+            if($localRecord->type == 'TXT'){
+                foreach($localRecord->rdata->txtdata 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);
+                    }
+                }
             }
         }
 
             logModuleCall(
                 'kerioEmail',
                 __FUNCTION__,
-                $zoneRecords,
+                $vars,
                 'DEbug',
-                $dnsZone
+                $domain
             );
 
-        return $zoneRecords;
+        return $vars;
     }
 
     function KerioEmailsetDNS()