|
|
@@ -115,55 +115,46 @@ class DnsHelper
|
|
|
return $vars;
|
|
|
}
|
|
|
|
|
|
- function KerioEmailsetDNS($maildomain,$dnsparams)
|
|
|
+ public function updateDNS($zoneID,$dnsParams)
|
|
|
{
|
|
|
- $zoneIDcollection = Capsule::table('dns_manager2_zone')
|
|
|
- ->select('id')
|
|
|
- ->where('name', '=', $maildomain)
|
|
|
- ->get();
|
|
|
- $zoneIDobj = $zoneIDcollection[0];
|
|
|
- $zoneID = $zoneIDobj->{'id'};
|
|
|
- if(!isset($zoneID)) {
|
|
|
- return 'Error: zone ID not found for domain ' . $maildomain;
|
|
|
- }
|
|
|
$dnsZone = localAPI('dnsmanager', array( 'dnsaction' => 'getZone', 'zone_id' => $zoneID));
|
|
|
if($dnsZone['result'] != 'success') {
|
|
|
return 'Error: cloud not fetch zone for ID ' . $zoneID;
|
|
|
}
|
|
|
$zoneRecords = array();
|
|
|
$mxRecord = array(
|
|
|
- 'line' => $maildomain.'.|MX|0',
|
|
|
+ 'line' => $dnsParams['maildomain'].'.|MX|0',
|
|
|
'name' => '@',
|
|
|
'type' => 'MX',
|
|
|
'class' => 'IN',
|
|
|
'data' => array(
|
|
|
'preference' => '10',
|
|
|
- 'exchange' => $dnsparams['mxthurdata'],
|
|
|
+ 'exchange' => $dnsParams['mxt'],
|
|
|
),
|
|
|
);
|
|
|
array_push($zoneRecords, $mxRecord);
|
|
|
$spfRecord = array(
|
|
|
- 'line' => $maildomain.'.|TXT|0',
|
|
|
+ 'line' => $dnsParams['maildomain'].'.|TXT|0',
|
|
|
'name' => '@',
|
|
|
'type' => 'TXT',
|
|
|
'class' => 'IN',
|
|
|
- 'data' => $dnsparams['spfthurdata']
|
|
|
+ 'data' => $dnsParams['spf']
|
|
|
);
|
|
|
array_push($zoneRecords, $spfRecord);
|
|
|
$dmarcRecord = array(
|
|
|
- 'line' => $maildomain.'.|TXT|0',
|
|
|
+ 'line' => $dnsParams['maildomain'].'.|TXT|0',
|
|
|
'name' => '@',
|
|
|
'type' => 'TXT',
|
|
|
'class' => 'IN',
|
|
|
- 'data' => $dnsparams['dmarcthurdata']
|
|
|
+ 'data' => $dnsParams['dmarc']
|
|
|
);
|
|
|
array_push($zoneRecords, $dmarcRecord);
|
|
|
$dkimRecord = array(
|
|
|
- 'line' => $maildomain.'.|TXT|0',
|
|
|
- 'name' => $dnsparams['dkimname'],
|
|
|
+ 'line' => $dnsParams['dkimname'].'.|TXT|0',
|
|
|
+ 'name' => $dnsParams['dkimname'],
|
|
|
'type' => 'TXT',
|
|
|
'class' => 'IN',
|
|
|
- 'data' => $dnsparams['dkimthurdata']
|
|
|
+ 'data' => $dnsParams['dkim']
|
|
|
);
|
|
|
array_push($zoneRecords, $dkimRecord);
|
|
|
foreach($dnsZone['data']->records as $record) {
|
|
|
@@ -174,7 +165,7 @@ class DnsHelper
|
|
|
// skip spf
|
|
|
if(preg_match('/^v=spf(.*)$/i', trim($record->rdata->txtdata,'"'))) continue;
|
|
|
// skip own dkim
|
|
|
- if(($dnsparams['dkimname'] == $record->name) && ($dnsparams['dkimthurdata'] == trim($record->rdata->txtdata,'"'))) continue;
|
|
|
+ if(($dnsParams['dkimname'] == $record->name) && ($dnsParams['dkim'] == trim($record->rdata->txtdata,'"'))) continue;
|
|
|
};
|
|
|
array_push($zoneRecords, $record);
|
|
|
}
|
|
|
@@ -183,7 +174,7 @@ class DnsHelper
|
|
|
logModuleCall(
|
|
|
'kerioEmail',
|
|
|
__FUNCTION__,
|
|
|
- $this->params,
|
|
|
+ $zoneID,
|
|
|
'DEbug',
|
|
|
$zoneRecords
|
|
|
);
|