public
nobgit
read
NobMail
Based on mailcow: dockerized
Languages
Repository composition by tracked source files.
PHP
49%
JavaScript
35%
HTML
9%
CSS
4%
Shell
2%
Python
1%
Lua
0%
Perl
0%
Ruby
0%
SCSS
0%
Create file
Wiki Documentation
Clone
https://nobgit.com/orgs/nobgit/nobmail.git
ssh://[email protected]:2222/orgs/nobgit/nobmail.git
Commit
DNS Diagnostics - Ehnaced SPF record check
Signed-off-by: Kristián Feldsam <[email protected]>
2a8bdc8d
data/web/inc/ajax/dns_diagnostics.php | 13 +++++++++----
data/web/lang/lang.en.php | 1 +
2 files changed, 10 insertions(+), 4 deletions(-)
Diff
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 = '<a href="http://www.openspf.org/SPF_Record_Syntax" target="_blank">SPF Record Syntax</a>';
+$spf_link = '<a href="http://www.openspf.org/SPF_Record_Syntax" target="_blank">SPF Record Syntax</a><br /><small>'.$lang['diagnostics']['allow'].' '.$ip.'<br />'.$lang['diagnostics']['allow'].' '.$ip6.'</small>';
$dmarc_link = '<a href="http://www.kitterman.com/dmarc/assistant.html" target="_blank">DMARC Assistant</a>';
$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 .= '<br />' . $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";