|
|
@@ -55,25 +55,41 @@ class DnsHelper
|
|
|
}
|
|
|
return $vars;
|
|
|
}
|
|
|
- public function KerioEmailCheckDNS()
|
|
|
- {
|
|
|
- $vars['maildomain'] = $this->params['domain'];
|
|
|
- $vars['dmarcconfig'] = $this->dmarcConfig;
|
|
|
- $vars['spfconfig'] = $this->spfConfig;
|
|
|
- $vars['domainkey'] = $this->domainKey;
|
|
|
- $vars['dkimname'] = $this->dkimName;
|
|
|
- if($this->clientDomains['totalresults'] == 0){
|
|
|
- $vars['selfdomain'] = FALSE;
|
|
|
- $vars['dmarcconfig'] = $this->dmarcConfig;
|
|
|
- $vars['spfconfig'] = $this->spfConfig;
|
|
|
- $vars['correctable'] = FALSE;
|
|
|
- return $vars;
|
|
|
+
|
|
|
+ public function getSPF($domain){
|
|
|
+ try {
|
|
|
+ $result = $this->resolver->query($domain, 'MX');
|
|
|
+
|
|
|
+ } catch(\Net_DNS2_Exception $e) {
|
|
|
+
|
|
|
+ echo "::query() failed: ", $e->getMessage(), "\n";
|
|
|
+ }
|
|
|
+ $domainMX = $result->answer;
|
|
|
+ if(count($domainMX) > 1) {
|
|
|
+ $vars['multiMX'] = TRUE;
|
|
|
} else {
|
|
|
- $vars['selfdomain'] = TRUE;
|
|
|
+ $vars['multiMX'] = FALSE;
|
|
|
}
|
|
|
- $resolver = new \Net_DNS2_Resolver(array('nameservers' => $this->nameserver));
|
|
|
+ if(empty($domainMX)){
|
|
|
+ $vars['mx'] = 'unset';
|
|
|
+ $vars['mxtarget'] = $this->params['serverhostname'];
|
|
|
+ } else {
|
|
|
+ $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;
|
|
|
+ }
|
|
|
+
|
|
|
+ public function getRecords($domain)
|
|
|
+ {
|
|
|
try {
|
|
|
- $result = $resolver->query($this->params['domain'], 'MX');
|
|
|
+ $result = $this->resolver->query($domain, 'MX');
|
|
|
|
|
|
} catch(\Net_DNS2_Exception $e) {
|
|
|
|
|
|
@@ -81,13 +97,33 @@ class DnsHelper
|
|
|
}
|
|
|
$domainMX = $result->answer;
|
|
|
try {
|
|
|
- $result = $resolver->query($this->params['domain'], 'TXT');
|
|
|
+ $result = $this->resolver->query($domain, 'TXT');
|
|
|
|
|
|
} catch(\Net_DNS2_Exception $e) {
|
|
|
|
|
|
echo "::query() failed: ", $e->getMessage(), "\n";
|
|
|
}
|
|
|
$domainTXT = $result->answer;
|
|
|
+
|
|
|
+ if(count($domainMX) > 1) {
|
|
|
+ $vars['multiMX'] = TRUE;
|
|
|
+ } else {
|
|
|
+ $vars['multiMX'] = FALSE;
|
|
|
+ }
|
|
|
+ if(empty($domainMX)){
|
|
|
+ $vars['mx'] = 'unset';
|
|
|
+ $vars['mxtarget'] = $this->params['serverhostname'];
|
|
|
+ } else {
|
|
|
+ $vars['domainMX'] = $domainMX;
|
|
|
+ $domainMXrecord = array_shift($domainMX);
|
|
|
+ $vars['mxtarget'] = $domainMXrecord->exchange;
|
|
|
+ if($domainMXrecord->exchange == $this->params['serverhostname']) {
|
|
|
+ $vars['mx'] = 'set';
|
|
|
+ } else {
|
|
|
+ $var['mx'] = 'wrong';
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
$domainSPF = array();
|
|
|
$domainDKIM = array();
|
|
|
$domainDMARC = array();
|
|
|
@@ -104,14 +140,6 @@ class DnsHelper
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
- # self hosted DNS
|
|
|
- $vars['selfDNS'] = FALSE;
|
|
|
- for($i=$this->clientDomains['startnumber'];$i<=$this->clientDomains['numreturned'];$i++) {
|
|
|
- if($this->params['domain'] == $this->clientDomains['domains']['domain'][$i]['domainname']) {
|
|
|
- $vars['selfDNS'] = TRUE;
|
|
|
- $vars['domainId'] = $this->clientDomains['domains']['domain'][$i]['id'];
|
|
|
- }
|
|
|
- }
|
|
|
# SPF, multi verboten
|
|
|
if (count($domainSPF) > 1) {
|
|
|
$vars['multiSPF'] = TRUE;
|