diff --git a/data/web/inc/ajax/dns_diagnostics.php b/data/web/inc/ajax/dns_diagnostics.php
index 43d3ea5f..d6c989b3 100644
--- a/data/web/inc/ajax/dns_diagnostics.php
+++ b/data/web/inc/ajax/dns_diagnostics.php
@@ -73,6 +73,9 @@ if (!isset($autodiscover_config['sieve'])) {
}
// Init records array
+$spf_link = 'SPF Record Syntax';
+$dmarc_link = 'DMARC Assistant';
+
$records = array();
$records[] = array(
$mailcow_hostname,
@@ -164,13 +167,13 @@ $records[] = array(
$records[] = array(
$domain,
'TXT',
- 'SPF Record Syntax',
+ $spf_link,
state_optional
);
$records[] = array(
'_dmarc.' . $domain,
'TXT',
- 'DMARC Assistant',
+ $dmarc_link,
state_optional
);
@@ -337,16 +340,18 @@ foreach ($records as $record) {
foreach ($currents as &$current) {
if ($current['type'] == 'TXT' &&
stripos($current['txt'], 'v=dmarc') === 0 &&
- stripos($current['host'], '_dmarc') === 0) {
+ $record[2] == $dmarc_link) {
$current['txt'] = str_replace(' ', '', $current['txt']);
$state = $current[$data_field[$current['type']]] . state_optional;
}
elseif ($current['type'] == 'TXT' &&
- stripos($current['txt'], 'v=spf') === 0) {
+ stripos($current['txt'], 'v=spf' &&
+ $record[2] == $spf_link) === 0) {
$state = $current[$data_field[$current['type']]] . state_optional;
}
elseif ($current['type'] == 'TXT' &&
- stripos($current['txt'], 'v=dkim') === 0) {
+ stripos($current['txt'], 'v=dkim') === 0 &&
+ stripos($record[2], 'v=dkim') === 0) {
$current['txt'] = str_replace(' ', '', $current['txt']);
if ($current[$data_field[$current['type']]] == $record[2]) {
$state = state_good;