Explorar o código

use net/dns2 for mx lookups

andre %!s(int64=4) %!d(string=hai) anos
pai
achega
89bcce68b8
Modificáronse 2 ficheiros con 19 adicións e 6 borrados
  1. 2 2
      zimbraEmail_help_mx.tpl
  2. 17 4
      zimbraEmail_mx.php

+ 2 - 2
zimbraEmail_help_mx.tpl

@@ -36,7 +36,7 @@
 	            Der MX Eintrag fehlt. Ihr Mailserver empfängt keine E-Mails für <b>{$maildomain}</b> !
 	        </div>
 	        <div class="alert alert-info">
-	            Klicken Sie auf <b>MX ändern</b> um den Mailempfang für <b>{$maildomain}</b auf Ihr Thurmail Produkt zu aktivieren.
+	            Klicken Sie auf <b>MX konfigurieren</b> um den Mailempfang für <b>{$maildomain}</b auf Ihr Thurmail Produkt zu aktivieren.
 	        </div>
 	    {elseif $action === 'change'}
 	        <div class="alert alert-warning" style="width:90%">
@@ -44,7 +44,7 @@
 	            Mail für <b>{$maildomain}</b werden an den Server <b>{$mxtarget}</b> verschickt.
 	        </div>
 	        <div class="alert alert-info" style="width:90%">
-	            Klicken Sie auf <b>MX ändern</b> um den Mailempfang für <b>{$maildomain}</b auf Ihr Thurmail Produkt zu aktivieren.
+	            Klicken Sie auf <b>MX konfigurieren</b> um den Mailempfang für <b>{$maildomain}</b auf Ihr Thurmail Produkt zu aktivieren.
 	        </div>
 	    {elseif $action === 'noMX'}
 	        <div class="alert alert-warning" style="width:90%">

+ 17 - 4
zimbraEmail_mx.php

@@ -1,5 +1,6 @@
 <?php
 use WHMCS\Database\Capsule;
+require "Net/DNS2.php";
 // opcache_reset();
 
 function ZimbraEmail_ClientAreaCustomButtonArray ($params)
@@ -44,7 +45,19 @@ function ZimbraEmailCheckMX($params)
     unset($zoneID);
     unset($mxStatus);
     $clientDomains = localAPI('GetClientsDomains', array('clientid' => $params['userid']));
-    $domainMX = dns_get_record($params['domain'] , DNS_MX);
+    $nameserver = array(
+        '185.163.51.142',
+        '185.178.193.125');
+    
+    $resolver = new Net_DNS2_Resolver(array('nameservers' => $nameserver));
+    try {
+            $result = $resolver->query('thurdesk.ch', 'MX');
+            
+    } catch(Net_DNS2_Exception $e) {
+            
+            echo "::query() failed: ", $e->getMessage(), "\n";
+    }
+    $domainMX = $result->answer;
     if(count($domainMX) > 1) {
         for($i=$clientDomains['startnumber'];$i<=$clientDomains['numreturned'];$i++) {
             if($params['domain'] == $clientDomains['domains']['domain'][$i]['domainname']) {
@@ -63,15 +76,15 @@ function ZimbraEmailCheckMX($params)
     } else {
         $domainMXrecord = array_shift($domainMX);
 //        if($domainMXrecord['target'] == $params['serverhostname']) {
-        if($domainMXrecord['target'] == 'mail1.thurdata.ch') {
+        if($domainMXrecord['exchange'] == 'mail1.thurdata.ch') {
             return array('action' => 'show', 'mxtarget' => $domainMXrecord['target']);
         }
         for($i=$clientDomains['startnumber'];$i<=$clientDomains['numreturned'];$i++) {
             if($params['domain'] == $clientDomains['domains']['domain'][$i]['domainname']) {
-                return array('action' => 'change', 'mxtarget' => $domainMXrecord['target']);
+                return array('action' => 'change', 'mxtarget' => $domainMXrecord['exchange']);
             }
         }
-        return array('action' => 'wrongMX', 'mxtarget' => $domainMXrecord['target']);
+        return array('action' => 'wrongMX', 'mxtarget' => $domainMXrecord['exchange']);
     }
 }