|
|
@@ -30,86 +30,6 @@ function KerioEmail_DNS($params)
|
|
|
);
|
|
|
}
|
|
|
|
|
|
-function KerioEmailCheckDNS($params)
|
|
|
-{
|
|
|
- unset($zoneID);
|
|
|
- unset($mxStatus);
|
|
|
- unset($dnsData);
|
|
|
- unset($vars);
|
|
|
- $vars['maildomain'] = $params['domain'];
|
|
|
- $clientDomains = localAPI('GetClientsDomains', array('clientid' => $params['userid']));
|
|
|
- $nameserver = array(
|
|
|
- NS1,
|
|
|
- NS2);
|
|
|
-
|
|
|
- $resolver = new Net_DNS2_Resolver(array('nameservers' => $nameserver));
|
|
|
- try {
|
|
|
- $result = $resolver->query($params['domain'], 'MX');
|
|
|
-
|
|
|
- } catch(Net_DNS2_Exception $e) {
|
|
|
-
|
|
|
- echo "::query() failed: ", $e->getMessage(), "\n";
|
|
|
- }
|
|
|
- $domainMX = $result->answer;
|
|
|
- try {
|
|
|
- $result = $resolver->query($params['domain'], 'TXT');
|
|
|
-
|
|
|
- } catch(Net_DNS2_Exception $e) {
|
|
|
-
|
|
|
- echo "::query() failed: ", $e->getMessage(), "\n";
|
|
|
- }
|
|
|
- $domainTXT = $result->answer;
|
|
|
- $domainSPF = array();
|
|
|
- foreach($domainTXT as $txtRecord) {
|
|
|
- foreach($txtRecord->text as $txtData) {
|
|
|
- if(strstr($txtData,'v=spf')) {
|
|
|
- array_push($domainSPF,$txtData);
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- if (count($domainSPF) > 1) {
|
|
|
- $vars['multiSPF'] = TRUE;
|
|
|
- } else {
|
|
|
- $vars['multiSPF'] = FALSE;
|
|
|
- }
|
|
|
- $vars['spf'] = 'wrong';
|
|
|
- if (empty($domainSPF)) {
|
|
|
- $vars['spf'] = 'unset';
|
|
|
- } else {
|
|
|
- foreach($domainSPF as $spf) {
|
|
|
- if($spf === SPF) {
|
|
|
- $vars['spf'] = 'set';
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- $vars['domainSPF'] = $domainSPF;
|
|
|
- if(count($domainMX) > 1) {
|
|
|
- $vars['multiMX'] = TRUE;
|
|
|
- } else {
|
|
|
- $vars['multiMX'] = FALSE;
|
|
|
- }
|
|
|
- $vars['selfDNS'] = FALSE;
|
|
|
- for($i=$clientDomains['startnumber'];$i<=$clientDomains['numreturned'];$i++) {
|
|
|
- if($params['domain'] == $clientDomains['domains']['domain'][$i]['domainname']) {
|
|
|
- $vars['selfDNS'] = TRUE;
|
|
|
- }
|
|
|
- }
|
|
|
- if(empty($domainMX)){
|
|
|
- $vars['mx'] = 'unset';
|
|
|
- $vars['mxtarget'] = MX;
|
|
|
- } else {
|
|
|
- $vars['domainMX'] = $domainMX;
|
|
|
- $domainMXrecord = array_shift($domainMX);
|
|
|
- $vars['mxtarget'] = $domainMXrecord->exchange;
|
|
|
- if($domainMXrecord->exchange == MX) {
|
|
|
- $vars['mx'] = 'set';
|
|
|
- } else {
|
|
|
- $var['mx'] = 'wrong';
|
|
|
- }
|
|
|
- }
|
|
|
- return $vars;
|
|
|
-}
|
|
|
-
|
|
|
function KerioEmail_setMX($params)
|
|
|
{
|
|
|
|
|
|
@@ -215,3 +135,83 @@ function KerioEmail_setSPF($params)
|
|
|
return 'success';
|
|
|
}
|
|
|
|
|
|
+function KerioEmailCheckDNS($params)
|
|
|
+{
|
|
|
+ unset($zoneID);
|
|
|
+ unset($mxStatus);
|
|
|
+ unset($dnsData);
|
|
|
+ unset($vars);
|
|
|
+ $vars['maildomain'] = $params['domain'];
|
|
|
+ $clientDomains = localAPI('GetClientsDomains', array('clientid' => $params['userid']));
|
|
|
+ $nameserver = array(
|
|
|
+ NS1,
|
|
|
+ NS2);
|
|
|
+
|
|
|
+ $resolver = new Net_DNS2_Resolver(array('nameservers' => $nameserver));
|
|
|
+ try {
|
|
|
+ $result = $resolver->query($params['domain'], 'MX');
|
|
|
+
|
|
|
+ } catch(Net_DNS2_Exception $e) {
|
|
|
+
|
|
|
+ echo "::query() failed: ", $e->getMessage(), "\n";
|
|
|
+ }
|
|
|
+ $domainMX = $result->answer;
|
|
|
+ try {
|
|
|
+ $result = $resolver->query($params['domain'], 'TXT');
|
|
|
+
|
|
|
+ } catch(Net_DNS2_Exception $e) {
|
|
|
+
|
|
|
+ echo "::query() failed: ", $e->getMessage(), "\n";
|
|
|
+ }
|
|
|
+ $domainTXT = $result->answer;
|
|
|
+ $domainSPF = array();
|
|
|
+ foreach($domainTXT as $txtRecord) {
|
|
|
+ foreach($txtRecord->text as $txtData) {
|
|
|
+ if(strstr($txtData,'v=spf')) {
|
|
|
+ array_push($domainSPF,$txtData);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (count($domainSPF) > 1) {
|
|
|
+ $vars['multiSPF'] = TRUE;
|
|
|
+ } else {
|
|
|
+ $vars['multiSPF'] = FALSE;
|
|
|
+ }
|
|
|
+ $vars['spf'] = 'wrong';
|
|
|
+ if (empty($domainSPF)) {
|
|
|
+ $vars['spf'] = 'unset';
|
|
|
+ } else {
|
|
|
+ foreach($domainSPF as $spf) {
|
|
|
+ if($spf === SPF) {
|
|
|
+ $vars['spf'] = 'set';
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ $vars['domainSPF'] = $domainSPF;
|
|
|
+ if(count($domainMX) > 1) {
|
|
|
+ $vars['multiMX'] = TRUE;
|
|
|
+ } else {
|
|
|
+ $vars['multiMX'] = FALSE;
|
|
|
+ }
|
|
|
+ $vars['selfDNS'] = FALSE;
|
|
|
+ for($i=$clientDomains['startnumber'];$i<=$clientDomains['numreturned'];$i++) {
|
|
|
+ if($params['domain'] == $clientDomains['domains']['domain'][$i]['domainname']) {
|
|
|
+ $vars['selfDNS'] = TRUE;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if(empty($domainMX)){
|
|
|
+ $vars['mx'] = 'unset';
|
|
|
+ $vars['mxtarget'] = MX;
|
|
|
+ } else {
|
|
|
+ $vars['domainMX'] = $domainMX;
|
|
|
+ $domainMXrecord = array_shift($domainMX);
|
|
|
+ $vars['mxtarget'] = $domainMXrecord->exchange;
|
|
|
+ if($domainMXrecord->exchange == MX) {
|
|
|
+ $vars['mx'] = 'set';
|
|
|
+ } else {
|
|
|
+ $var['mx'] = 'wrong';
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return $vars;
|
|
|
+}
|
|
|
+
|