|
|
@@ -82,26 +82,43 @@ class DnsHelper
|
|
|
}
|
|
|
|
|
|
private function getLocalRecords($zoneID) {
|
|
|
+ $vars['mx'] = array();
|
|
|
+ $vars['spf'] = array();
|
|
|
+ $vars['dmarc'] = array();
|
|
|
+ $vars['dkim'] = array();
|
|
|
$dnsZone = localAPI('dnsmanager', array( 'dnsaction' => 'getZone', 'zone_id' => $zoneID));
|
|
|
if($dnsZone['result'] != 'success') {
|
|
|
return 'Error: cloud not fetch zone for ID ' . $zoneID;
|
|
|
}
|
|
|
$zoneRecords = array();
|
|
|
- foreach($dnsZone['data']->records as $record) {
|
|
|
- if(in_array($record->type, ['MX', 'TXT'])){
|
|
|
- array_push($zoneRecords, $record);
|
|
|
+ foreach($dnsZone['data']->records as $localRecord) {
|
|
|
+ if($localRecord->type == 'MX'){
|
|
|
+ array_push($vars['mx'], $localRecord->rdata->exchange);
|
|
|
+ }
|
|
|
+ if($localRecord->type == 'TXT'){
|
|
|
+ foreach($localRecord->rdata->txtdata as $txtData) {
|
|
|
+ if(strstr($txtData,'v=spf')) {
|
|
|
+ array_push($vars['spf'],$txtData);
|
|
|
+ }
|
|
|
+ if(strstr($txtData,'v=DMARC')) {
|
|
|
+ array_push($vars['dmarc'],$txtData);
|
|
|
+ }
|
|
|
+ if(strstr($txtData,'v=DKIM')) {
|
|
|
+ array_push($vars['dkim'],$txtData);
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
|
|
|
logModuleCall(
|
|
|
'kerioEmail',
|
|
|
__FUNCTION__,
|
|
|
- $zoneRecords,
|
|
|
+ $vars,
|
|
|
'DEbug',
|
|
|
- $dnsZone
|
|
|
+ $domain
|
|
|
);
|
|
|
|
|
|
- return $zoneRecords;
|
|
|
+ return $vars;
|
|
|
}
|
|
|
|
|
|
function KerioEmailsetDNS()
|