|
|
@@ -27,30 +27,46 @@ class DnsHelper
|
|
|
}
|
|
|
|
|
|
public function getMX($domain){
|
|
|
- try {
|
|
|
- $result = $this->resolver->query($domain, 'MX');
|
|
|
-
|
|
|
- } catch(\Net_DNS2_Exception $e) {
|
|
|
-
|
|
|
- echo "::query() failed: ", $e->getMessage(), "\n";
|
|
|
- }
|
|
|
- $domainMX = $result->answer;
|
|
|
- if(empty($domainMX)){
|
|
|
- $vars['mx'] = 'unset';
|
|
|
- $vars['mxtarget'] = $this->params['serverhostname'];
|
|
|
- } else {
|
|
|
- if(count($domainMX) > 1) {
|
|
|
- $vars['multiMX'] = TRUE;
|
|
|
- } else {
|
|
|
- $vars['multiMX'] = FALSE;
|
|
|
+ $zoneID = selfDns($domain);
|
|
|
+ if($zoneID){
|
|
|
+ // use local API
|
|
|
+ $dnsZone = localAPI('dnsmanager', array( 'dnsaction' => 'getZone', 'zone_id' => $zoneID));
|
|
|
+
|
|
|
+ logModuleCall(
|
|
|
+ 'kerioEmail',
|
|
|
+ __FUNCTION__,
|
|
|
+ $domain,
|
|
|
+ 'DEbug',
|
|
|
+ $dnsZone
|
|
|
+ );
|
|
|
+
|
|
|
+// } else {
|
|
|
+ // use resolver
|
|
|
+ try {
|
|
|
+ $result = $this->resolver->query($domain, 'MX');
|
|
|
+
|
|
|
+ } catch(\Net_DNS2_Exception $e) {
|
|
|
+
|
|
|
+ echo "::query() failed: ", $e->getMessage(), "\n";
|
|
|
}
|
|
|
- $vars['domainMX'] = $domainMX;
|
|
|
- $domainMXrecord = array_shift($domainMX);
|
|
|
- $vars['mxtarget'] = $domainMXrecord->exchange;
|
|
|
- if($domainMXrecord->exchange == $this->params['serverhostname']) {
|
|
|
- $vars['mx'] = 'set';
|
|
|
+ $domainMX = $result->answer;
|
|
|
+ if(empty($domainMX)){
|
|
|
+ $vars['mx'] = 'unset';
|
|
|
+ $vars['mxtarget'] = $this->params['serverhostname'];
|
|
|
} else {
|
|
|
- $var['mx'] = 'wrong';
|
|
|
+ if(count($domainMX) > 1) {
|
|
|
+ $vars['multiMX'] = TRUE;
|
|
|
+ } else {
|
|
|
+ $vars['multiMX'] = FALSE;
|
|
|
+ }
|
|
|
+ $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;
|
|
|
@@ -166,7 +182,7 @@ class DnsHelper
|
|
|
}
|
|
|
return $vars;
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
public function selfDns($domain){
|
|
|
$zoneIDcollection = Capsule::table('dns_manager2_zone')
|
|
|
->select('id')
|
|
|
@@ -176,7 +192,7 @@ class DnsHelper
|
|
|
if(!isset($zoneIDobj->{'id'})) {
|
|
|
return false;
|
|
|
}
|
|
|
- return true;
|
|
|
+ return $zoneIDobj->{'id'};
|
|
|
}
|
|
|
|
|
|
function KerioEmailsetDNS()
|