|
@@ -114,15 +114,15 @@ class DnsHelper
|
|
|
}
|
|
}
|
|
|
$domainTXT = $result->answer;
|
|
$domainTXT = $result->answer;
|
|
|
|
|
|
|
|
- if(count($domainMX) > 1) {
|
|
|
|
|
- $vars['multiMX'] = TRUE;
|
|
|
|
|
- } else {
|
|
|
|
|
- $vars['multiMX'] = FALSE;
|
|
|
|
|
- }
|
|
|
|
|
- if(empty($domainMX)){
|
|
|
|
|
|
|
+ if(empty($domainMX['rdata'])){
|
|
|
$vars['mx'] = 'unset';
|
|
$vars['mx'] = 'unset';
|
|
|
$vars['mxtarget'] = $this->params['serverhostname'];
|
|
$vars['mxtarget'] = $this->params['serverhostname'];
|
|
|
} else {
|
|
} else {
|
|
|
|
|
+ if(count($domainMX) > 1) {
|
|
|
|
|
+ $vars['multiMX'] = TRUE;
|
|
|
|
|
+ } else {
|
|
|
|
|
+ $vars['multiMX'] = FALSE;
|
|
|
|
|
+ }
|
|
|
$vars['domainMX'] = $domainMX;
|
|
$vars['domainMX'] = $domainMX;
|
|
|
$domainMXrecord = array_shift($domainMX);
|
|
$domainMXrecord = array_shift($domainMX);
|
|
|
$vars['mxtarget'] = $domainMXrecord->exchange;
|
|
$vars['mxtarget'] = $domainMXrecord->exchange;
|
|
@@ -134,91 +134,71 @@ class DnsHelper
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
$domainSPF = array();
|
|
$domainSPF = array();
|
|
|
- $domainDKIM = array();
|
|
|
|
|
$domainDMARC = array();
|
|
$domainDMARC = array();
|
|
|
- foreach($domainTXT as $txtRecord) {
|
|
|
|
|
- foreach($txtRecord->text as $txtData) {
|
|
|
|
|
- if(strstr($txtData,'v=spf')) {
|
|
|
|
|
- array_push($domainSPF,$txtData);
|
|
|
|
|
- }
|
|
|
|
|
- if(strstr($txtData,'v=DKIM')) {
|
|
|
|
|
- array_push($domainDKIM,$txtData);
|
|
|
|
|
- }
|
|
|
|
|
- if(strstr($txtData,'v=DMARC')) {
|
|
|
|
|
- array_push($domainDMARC,$txtData);
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
- # SPF, multi verboten
|
|
|
|
|
- if (count($domainSPF) > 1) {
|
|
|
|
|
- $vars['multiSPF'] = TRUE;
|
|
|
|
|
- $vars['spf'] = 'wrong';
|
|
|
|
|
|
|
+ $domainDKIM = array();
|
|
|
|
|
+ if(empty($domainMX['rdata'])){
|
|
|
|
|
+ $vars['spf'] = 'unset';
|
|
|
|
|
+ $vars['dmarc'] = 'unset';
|
|
|
|
|
+ $vars['dkim'] = 'unset';
|
|
|
} else {
|
|
} else {
|
|
|
- $vars['multiSPF'] = FALSE;
|
|
|
|
|
- if (empty($domainSPF)) {
|
|
|
|
|
- $vars['spf'] = 'unset';
|
|
|
|
|
- } else {
|
|
|
|
|
- if($domainSPF[0] === $spfConfig) {
|
|
|
|
|
- $vars['spf'] = 'set';
|
|
|
|
|
- } else {
|
|
|
|
|
- $vars['spf'] = 'wrong';
|
|
|
|
|
|
|
+ foreach($domainTXT as $txtRecord) {
|
|
|
|
|
+ foreach($txtRecord->text as $txtData) {
|
|
|
|
|
+ if(strstr($txtData,'v=spf')) {
|
|
|
|
|
+ array_push($domainSPF,$txtData);
|
|
|
|
|
+ }
|
|
|
|
|
+ if(strstr($txtData,'v=DKIM')) {
|
|
|
|
|
+ array_push($domainDKIM,$txtData);
|
|
|
|
|
+ }
|
|
|
|
|
+ if(strstr($txtData,'v=DMARC')) {
|
|
|
|
|
+ array_push($domainDMARC,$txtData);
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
- }
|
|
|
|
|
- # DKIM
|
|
|
|
|
- if (count($domainDKIM) > 1) {
|
|
|
|
|
- $vars['multiDKIM'] = TRUE;
|
|
|
|
|
- } else {
|
|
|
|
|
- $vars['multiDKIM'] = FALSE;
|
|
|
|
|
- }
|
|
|
|
|
- if (empty($domainDKIM)) {
|
|
|
|
|
- $vars['dkim'] = 'unset';
|
|
|
|
|
- } else {
|
|
|
|
|
- $vars['dkim'] = 'set';
|
|
|
|
|
- }
|
|
|
|
|
- $vars['domainDKIM'] = $domainDKIM;
|
|
|
|
|
- # DMARC
|
|
|
|
|
- if (count($domainDMARC) > 1) {
|
|
|
|
|
- $vars['multiDMARC'] = TRUE;
|
|
|
|
|
- } else {
|
|
|
|
|
- $vars['multiDMARC'] = FALSE;
|
|
|
|
|
- }
|
|
|
|
|
- $vars['dmarc'] = 'wrong';
|
|
|
|
|
- if (empty($domainDMARC)) {
|
|
|
|
|
- $vars['dmarc'] = 'unset';
|
|
|
|
|
- } else {
|
|
|
|
|
- foreach($domainDMARC as $dmarc) {
|
|
|
|
|
- if($dmarc === $dmarcConfig) {
|
|
|
|
|
- $vars['dmarc'] = 'set';
|
|
|
|
|
|
|
+ # SPF, multi verboten
|
|
|
|
|
+ if (count($domainSPF) > 1) {
|
|
|
|
|
+ $vars['multiSPF'] = TRUE;
|
|
|
|
|
+ $vars['spf'] = 'wrong';
|
|
|
|
|
+ } else {
|
|
|
|
|
+ $vars['multiSPF'] = FALSE;
|
|
|
|
|
+ if (empty($domainSPF)) {
|
|
|
|
|
+ $vars['spf'] = 'unset';
|
|
|
|
|
+ } else {
|
|
|
|
|
+ if($domainSPF[0] === $spfConfig) {
|
|
|
|
|
+ $vars['spf'] = 'set';
|
|
|
|
|
+ } else {
|
|
|
|
|
+ $vars['spf'] = 'wrong';
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
- }
|
|
|
|
|
- $vars['domainDMARC'] = $domainDMARC;
|
|
|
|
|
- # MX
|
|
|
|
|
- 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';
|
|
|
|
|
|
|
+ # DKIM
|
|
|
|
|
+ if (count($domainDKIM) > 1) {
|
|
|
|
|
+ $vars['multiDKIM'] = TRUE;
|
|
|
} else {
|
|
} else {
|
|
|
- $var['mx'] = 'wrong';
|
|
|
|
|
|
|
+ $vars['multiDKIM'] = FALSE;
|
|
|
}
|
|
}
|
|
|
- }
|
|
|
|
|
- // summary
|
|
|
|
|
- if($vars['mx'] == 'set' && $vars['dmarc'] == 'set' && $vars['dkim'] == 'set' && $vars['spf'] == 'set') {
|
|
|
|
|
- $vars['dnscheck'] = TRUE;
|
|
|
|
|
- } else {
|
|
|
|
|
- $vars['dnscheck'] = FALSE;
|
|
|
|
|
- $vars['correctable'] = TRUE;
|
|
|
|
|
|
|
+ if (empty($domainDKIM)) {
|
|
|
|
|
+ $vars['dkim'] = 'unset';
|
|
|
|
|
+ } else {
|
|
|
|
|
+ $vars['dkim'] = 'set';
|
|
|
|
|
+ }
|
|
|
|
|
+ $vars['domainDKIM'] = $domainDKIM;
|
|
|
|
|
+ # DMARC
|
|
|
|
|
+ if (count($domainDMARC) > 1) {
|
|
|
|
|
+ $vars['multiDMARC'] = TRUE;
|
|
|
|
|
+ } else {
|
|
|
|
|
+ $vars['multiDMARC'] = FALSE;
|
|
|
|
|
+ }
|
|
|
|
|
+ $vars['dmarc'] = 'wrong';
|
|
|
|
|
+ if (empty($domainDMARC)) {
|
|
|
|
|
+ $vars['dmarc'] = 'unset';
|
|
|
|
|
+ } else {
|
|
|
|
|
+ foreach($domainDMARC as $dmarc) {
|
|
|
|
|
+ if($dmarc === $dmarcConfig) {
|
|
|
|
|
+ $vars['dmarc'] = 'set';
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ $vars['domainDMARC'] = $domainDMARC;
|
|
|
}
|
|
}
|
|
|
return $vars;
|
|
return $vars;
|
|
|
}
|
|
}
|