diff --git a/data/web/inc/ajax/dns_diagnostics.php b/data/web/inc/ajax/dns_diagnostics.php index fa3354d5..3735b17c 100644 --- a/data/web/inc/ajax/dns_diagnostics.php +++ b/data/web/inc/ajax/dns_diagnostics.php @@ -73,7 +73,7 @@ if (!isset($autodiscover_config['sieve'])) { } // Init records array -$spf_link = 'SPF Record Syntax'; +$spf_link = 'SPF Record Syntax
'.$lang['diagnostics']['allow'].' '.$ip.'
'.$lang['diagnostics']['allow'].' '.$ip6.'
'; $dmarc_link = 'DMARC Assistant'; $records = array(); @@ -348,9 +348,14 @@ foreach ($records as $record) { $state = $current[$data_field[$current['type']]] . state_optional; } elseif ($current['type'] == 'TXT' && - stripos($current['txt'], 'v=spf' && - $record[2] == $spf_link) === 0) { - $state = $current[$data_field[$current['type']]] . state_optional; + stripos($current['txt'], 'v=spf') === 0 && + $record[2] == $spf_link) { + $state = state_nomatch; + $rslt = get_spf_allowed_hosts($record[0]); + if(in_array($ip, $rslt) && in_array($ip6, $rslt)){ + $state = state_good; + } + $state .= '
' . $current[$data_field[$current['type']]].state_optional; } elseif ($current['type'] == 'TXT' && stripos($current['txt'], 'v=dkim') === 0 && diff --git a/data/web/lang/lang.en.php b/data/web/lang/lang.en.php index 7fce2a3b..b23ec4d6 100644 --- a/data/web/lang/lang.en.php +++ b/data/web/lang/lang.en.php @@ -556,6 +556,7 @@ $lang['diagnostics']['dns_records_data'] = 'Correct Data'; $lang['diagnostics']['dns_records_status'] = 'Current State'; $lang['diagnostics']['optional'] = 'This record is optional.'; $lang['diagnostics']['cname_from_a'] = 'Value derived from A/AAAA record. This is supported as long as the record points to the correct resource.'; +$lang['diagnostics']['allow'] = 'Allow'; $lang['admin']['relay_from'] = '"From:" address'; $lang['admin']['api_allow_from'] = "Allow API access from these IPs";