andre 5 mesiacov pred
rodič
commit
b21f0cba5c
1 zmenil súbory, kde vykonal 15 pridanie a 22 odobranie
  1. 15 22
      core/Helper/DnsHelper.php

+ 15 - 22
core/Helper/DnsHelper.php

@@ -122,26 +122,6 @@ class DnsHelper
             return 'Error: cloud not fetch zone for ID ' . $zoneID;
         }
         $zoneRecords = array();
-        // restore all except owns
-        $txtLines = 0;
-        foreach($dnsZone['data']->records as $record) {
-            if($record->type == 'MX') continue;
-            if($record->type === 'TXT') {
-                // skip dmarc
-                if(preg_match('/^v=DMARC1(.*)$/i', trim($record->rdata->txtdata,'"'))){
-                    $txtLines++;
-                    continue;
-                }
-                // skip spf
-                if(preg_match('/^v=spf(.*)$/i', trim($record->rdata->txtdata,'"'))){
-                    $txtLines++;
-                    continue;
-                }; 
-                // skip own dkim
-                if(($dnsParams['dkimname'] == $record->name) && ($dnsParams['dkim'] == trim($record->rdata->txtdata,'"'))) continue; 
-            };
-            array_push($zoneRecords, $record);
-        }
         $mxRecord = array(
             'line' => $dnsParams['maildomain'].'.|MX|0',
             'name' => '@',
@@ -154,7 +134,7 @@ class DnsHelper
         );
         array_push($zoneRecords, $mxRecord);
         $spfRecord = array(
-            'line' => $dnsParams['maildomain'].'.|TXT|'.$txtLines,
+            'line' => $dnsParams['maildomain'].'.|TXT|0',
             'name' => '@',
             'type' => 'TXT',
             'class' => 'IN',
@@ -162,7 +142,7 @@ class DnsHelper
         );
         array_push($zoneRecords, $spfRecord);
         $dmarcRecord = array(
-            'line' => $dnsParams['maildomain'].'.|TXT|'.$txtLines+1,
+            'line' => $dnsParams['maildomain'].'.|TXT|1',
             'name' => '@',
             'type' => 'TXT',
             'class' => 'IN',
@@ -177,6 +157,19 @@ class DnsHelper
             'data' => $dnsParams['dkim']
         );
         array_push($zoneRecords, $dkimRecord);
+        foreach($dnsZone['data']->records as $record) {
+            if($record->type == 'MX') continue;
+            if(!$record->type === 'TXT') {
+                // skip dmarc
+                if(preg_match('/^v=DMARC1(.*)$/i', trim($record->rdata->txtdata,'"'))) continue; 
+                // skip spf
+                if(preg_match('/^v=spf(.*)$/i', trim($record->rdata->txtdata,'"'))) continue; 
+                // skip own dkim
+                if(($dnsParams['dkimname'] == $record->name) && ($dnsParams['dkim'] == trim($record->rdata->txtdata,'"'))) continue; 
+            };
+            array_push($zoneRecords, $record);
+        }
+
 
         logModuleCall(
             'kerioEmail',