andre před 2 roky
rodič
revize
0dcabda9ff
1 změnil soubory, kde provedl 28 přidání a 2 odebrání
  1. 28 2
      kerioEmail_mx.php

+ 28 - 2
kerioEmail_mx.php

@@ -20,7 +20,7 @@ function KerioEmail_ClientAreaCustomButtonArray ($params)
 
 function KerioEmail_DNS($params)
 {
-    $mxStatus = KerioEmailCheckMX($params);
+    $status = KerioEmailCheckDNS($params);
     return array(
         'breadcrumb' => array(
             'clientarea.php?action=productdetails&id=' . $params['serviceid'] . '&modop=custom&a=infoMX' => 'MX Info',
@@ -34,10 +34,11 @@ function KerioEmail_DNS($params)
     );
 }
 
-function KerioEmailCheckMX($params)
+function KerioEmailCheckDNS($params)
 {
     unset($zoneID);
     unset($mxStatus);
+    unset($dnsData);
     $clientDomains = localAPI('GetClientsDomains', array('clientid' => $params['userid']));
     $nameserver = array(
         NS1,
@@ -52,6 +53,31 @@ function KerioEmailCheckMX($params)
             echo "::query() failed: ", $e->getMessage(), "\n";
     }
     $domainMX = $result->answer;
+    try {
+        $result = $resolver->query($params['domain'], 'TXT');
+        
+    } catch(Net_DNS2_Exception $e) {
+            
+            echo "::query() failed: ", $e->getMessage(), "\n";
+    }
+    $domainTXT = $result->answer;
+    $domainSPF = array();
+    foreach($domainTXT as $txtRecord) {
+        foreach($txtRecord['text'] as $txtData) {
+            if(strstr($txtData,'v=spf')) {
+                array_push($domainSPF,$txtData);
+            }
+        }
+    }
+    logModuleCall(
+        'kerioEmail',
+        __FUNCTION__,
+        $domainMX,
+        'Debug SPF',
+        $domainSPF
+    );
+
+
     if(count($domainMX) > 1) {
         for($i=$clientDomains['startnumber'];$i<=$clientDomains['numreturned'];$i++) {
             if($params['domain'] == $clientDomains['domains']['domain'][$i]['domainname']) {