Skip to content

Commit 21ae0cf

Browse files
author
Florian Schaal
committed
DMARC: allow multiple adresses for aggregate mail reports (rua) and forensic mail reports (ruf)
1 parent a549793 commit 21ae0cf

25 files changed

+179
-137
lines changed

interface/web/dns/dns_dmarc_edit.php

Lines changed: 40 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -104,9 +104,15 @@ function onShowEnd() {
104104
$temp = explode('; ', $old_data);
105105
foreach ($temp as $part) {
106106
if (preg_match("/^p=/", $part)) $dmarc_policy = str_replace('p=', '', $part);
107-
if (preg_match("/^rua=/", $part)) $dmarc_rua = str_replace('rua=mailto:', '', $part).' ';
108-
if (preg_match("/^ruf=/", $part)) $dmarc_ruf = str_replace('ruf=mailto:', '', $part).' ';
109-
if (preg_match("/^fo:/", $part)) $dmarc_fo = str_replace('fo:', '', $part);
107+
if (preg_match("/^rua=/", $part)) {
108+
$dmarc_rua = str_replace(array('rua=','mailto:'), '', $part).' ';
109+
$dmarc_rua = str_replace(',', ' ', $dmarc_rua);
110+
}
111+
if (preg_match("/^ruf=/", $part)) {
112+
$dmarc_ruf = str_replace(array('ruf=','mailto:'), '', $part).' ';
113+
$dmarc_ruf = str_replace(',', ' ', $dmarc_ruf);
114+
}
115+
if (preg_match("/^fo=/", $part)) $dmarc_fo = str_replace('fo=', '', $part);
110116
if (preg_match("/^adkim=/", $part)) $dmarc_adkim = str_replace('adkim=', '', $part);
111117
if (preg_match("/^aspf=/", $part)) $dmarc_aspf = str_replace('aspf=', '', $part);
112118
if (preg_match("/^rf=/", $part)) $dmarc_rf = str_replace('rf=', '', $part);
@@ -137,10 +143,10 @@ function onShowEnd() {
137143
if (!empty($dmarc_ruf)) $app->tpl->setVar("dmarc_ruf", $dmarc_ruf);
138144

139145
//set dmarc-fo-options
140-
$temp = explode(':', $dmarc_fo);
141-
if (is_array($temp))
146+
if (isset($dmarc_fo)) {
147+
$temp = explode(':', $dmarc_fo);
142148
foreach ($temp as $fo => $value) $app->tpl->setVar("dmarc_fo".$value, 'CHECKED');
143-
else
149+
} else
144150
$app->tpl->setVar("dmarc_fo0", 'CHECKED');
145151

146152
unset($temp);
@@ -277,63 +283,53 @@ function onSubmit() {
277283
//create dmarc-record
278284
$dmarc_record[] = 'p='.$this->dataRecord['dmarc_policy'];
279285

280-
/* TODO:
281-
draft-kucherawy-dmarc-base-07 allows multiple rua and ruf-entries
282-
*/
283-
$dmarc_rua = trim($this->dataRecord['dmarc_rua']);
284-
if (!empty($dmarc_rua)) {
285-
if (!filter_var($dmarc_rua, FILTER_VALIDATE_EMAIL)) {
286-
if (isset($app->tform->errorMessage )) $app->tform->errorMessage = '<br/>' . $app->tform->errorMessage;
287-
$app->tform->errorMessage .= $app->tform->wordbook['dmarc_invalid_email_txt'].$dmarc_rua;
288-
} else {
289-
/* TODO:
290-
allow an external report-address. this requieres changes in a remote zone.
291-
*/
292-
$mail_domain = explode('@', $dmarc_rua);
293-
if ($mail_domain[1] != $domain_name) {
286+
if (!empty($this->dataRecord['dmarc_rua'])) {
287+
$dmarc_rua = explode(' ', $this->dataRecord['dmarc_rua']);
288+
$dmarc_rua = array_filter($dmarc_rua);
289+
foreach ($dmarc_rua as $rec) {
290+
if (!filter_var($rec, FILTER_VALIDATE_EMAIL)) {
294291
if (isset($app->tform->errorMessage )) $app->tform->errorMessage = '<br/>' . $app->tform->errorMessage;
295-
$app->tform->errorMessage .= $app->tform->wordbook['dmarc_invalid_domain_txt'].$dmarc_ruf.' in '.$dmarc_ruf;
292+
$app->tform->errorMessage .= $app->tform->wordbook['dmarc_invalid_email_txt'].$dmarc_rua;
296293
} else {
297-
$dmarc_record[] = 'rua=mailto:'.$dmarc_rua;
294+
$temp .= 'mailto:'.$rec.',';
298295
}
299296
}
297+
$dmarc_record[] = 'rua='.rtrim($temp, ',');
298+
unset ($dmarc_rua);
299+
unset($temp);
300300
}
301-
unset ($dmarc_rua);
302-
unset ($mail_domain);
303-
304-
$dmarc_ruf = trim($this->dataRecord['dmarc_ruf']);
305-
if (!empty($dmarc_ruf)) {
306-
if (!filter_var($dmarc_ruf, FILTER_VALIDATE_EMAIL)) {
307-
if (isset($app->tform->errorMessage )) $app->tform->errorMessage = '<br/>' . $app->tform->errorMessage;
308-
$app->tform->errorMessage .= $app->tform->wordbook['dmarc_invalid_email_txt'].$dmarc_ruf;
309-
} else {
310-
/* TODO:
311-
allow an external report-address. this requieres changes in a remote zone.
312-
*/
313-
$mail_domain[1] = explode('@', $dmarc_ruf);
314-
if ($mail_domain != $domain_name) {
301+
302+
if (!empty($this->dataRecord['dmarc_ruf'])) {
303+
$dmarc_ruf = explode(' ', $this->dataRecord['dmarc_ruf']);
304+
$dmarc_ruf = array_filter($dmarc_ruf);
305+
foreach ($dmarc_ruf as $rec) {
306+
if (!filter_var($rec, FILTER_VALIDATE_EMAIL)) {
315307
if (isset($app->tform->errorMessage )) $app->tform->errorMessage = '<br/>' . $app->tform->errorMessage;
316-
$app->tform->errorMessage .= $app->tform->wordbook['dmarc_invalid_domain_txt'].$dmarc_ruf.' in '.$dmarc_ruf;
308+
$app->tform->errorMessage .= $app->tform->wordbook['dmarc_invalid_email_txt'].$dmarc_rua;
317309
} else {
318-
$dmarc_record[] = 'ruf=mailto:'.$dmarc_ruf;
310+
$temp .= 'mailto:'.$rec.',';
319311
}
320312
}
313+
$dmarc_record[] = 'ruf='.rtrim($temp, ',');
314+
unset ($dmarc_ruf);
315+
unset($temp);
321316
}
322-
unset ($dmarc_ruf);
323-
unset ($mail_domain);
324317

325318
$fo_rec = '';
326319
if (isset($this->dataRecord['dmarc_fo0'])) $fo_rec[] = '0';
327320
if (isset($this->dataRecord['dmarc_fo1'])) $fo_rec[] = '1';
328321
if (isset($this->dataRecord['dmarc_fod'])) $fo_rec[] = 'd';
329322
if (isset($this->dataRecord['dmarc_fos'])) $fo_rec[] = 's';
330-
if (is_array($fo_rec) && !empty($fo_rec))
331-
$dmarc_record[] = 'fo:'.implode(':', $fo_rec);
323+
if (is_array($fo_rec) && !empty($fo_rec)) {
324+
$rec = 'fo='.implode(':', $fo_rec);
325+
if ($rec != 'fo=0') $dmarc_record[] = 'fo='.implode(':', $fo_rec);
326+
unset($rec);
327+
}
332328

333-
if (!empty($this->dataRecord['dmarc_adkim']) && $this->dataRecord['dmarc_adkim'] != 'r' )
329+
if ($this->dataRecord['dmarc_adkim'] != 'r' )
334330
$dmarc_record[] = 'adkim='.$this->dataRecord['dmarc_adkim'];
335331

336-
if (!empty($this->dataRecord['dmarc_aspf']) && $this->dataRecord['dmarc_aspf'] != 'r' )
332+
if ($this->dataRecord['dmarc_aspf'] != 'r' )
337333
$dmarc_record[] = 'aspf='.$this->dataRecord['dmarc_aspf'];
338334

339335
if (isset($this->dataRecord['dmarc_rf_afrf']) && isset($this->dataRecord['dmarc_rf_iodef']))

interface/web/dns/lib/lang/ar_dns_dmarc.lng

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,14 @@
22
$wb['data_txt'] = 'DMARC Record';
33
$wb['domain_txt'] = 'Domain';
44
$wb['dmarc_policy_txt'] = 'Mail Receiver Policy';
5-
$wb['dmarc_policy_note_txt'] = 'How ISPs should handle messages that failed SPF and DKIM.';
5+
$wb['dmarc_policy_note_txt'] = 'How ISPs should handle messages that failed SPF or DKIM (DMARC).';
66
$wb['dmarc_policy_none_txt'] = 'none';
77
$wb['dmarc_policy_quarantine_txt'] = 'quarantine';
88
$wb['dmarc_policy_reject_txt'] = 'reject';
99
$wb['dmarc_rua_txt'] = 'Aggregate Data Reporting Address';
10-
$wb['dmarc_rua_note_txt'] = 'Email to receive reports from ISPs aboute messages which failed SPF and DKIM checks (DMARC) for the domain.';
10+
$wb['dmarc_rua_note_txt'] = 'Email to receive reports from ISPs aboute messages which failed DMARC checks for the domain (separated by whitespaces).';
1111
$wb['dmarc_ruf_txt'] = 'Forensic Data Reporting Address';
12-
$wb['dmarc_ruf_note_txt'] = 'Email to receive sample messages that are failing SPF and DKIM checks (DMARC) for the domain.';
12+
$wb['dmarc_ruf_note_txt'] = 'Email to receive sample messages that are failing DMARC checks for the domain (separated by whitespaces).';
1313
$wb['dmarc_fo_txt'] = 'Forensic reporting options';
1414
$wb['dmarc_fo0_txt'] = "Generate reports if all underlying authentication mechanisms fail to produce a DMARC 'pass' result.";
1515
$wb['dmarc_fo1_txt'] = 'Generate reports if any mechanisms fail.';
@@ -37,8 +37,10 @@ $wb['dmarc_sp_quarantine_txt'] = 'quarantine';
3737
$wb['dmarc_sp_reject_txt'] = 'reject';
3838
$wb['ttl_txt'] = 'TTL';
3939
$wb['active_txt'] = 'Active';
40+
$wb['dmarc_policy_error_txt'] = "Only policy 'none' is allowed without DKIM-signed emails.";
41+
$wb['dmarc_no_dkim_txt'] = 'No active DKIM Record.';
42+
$wb['dmarc_no_spf_txt'] = 'No active SPF Record.';
4043
$wb['dmarc_more_spf_txt'] = 'More than one active SPF Record';
41-
$wb['dmarc_no_dkim_spf_txt'] = 'No active DKIM or SPF Record.';
4244
$wb['dmarc_invalid_email_txt'] = 'Invalid Email';
4345
$wb['dmarc_empty_txt'] = 'DMARC Record empty - specify at least one option';
4446
$wb['record_exists_txt'] = 'DNS-Record already exists';

interface/web/dns/lib/lang/bg_dns_dmarc.lng

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,14 @@
22
$wb['data_txt'] = 'DMARC Record';
33
$wb['domain_txt'] = 'Domain';
44
$wb['dmarc_policy_txt'] = 'Mail Receiver Policy';
5-
$wb['dmarc_policy_note_txt'] = 'How ISPs should handle messages that failed SPF and DKIM.';
5+
$wb['dmarc_policy_note_txt'] = 'How ISPs should handle messages that failed SPF or DKIM (DMARC).';
66
$wb['dmarc_policy_none_txt'] = 'none';
77
$wb['dmarc_policy_quarantine_txt'] = 'quarantine';
88
$wb['dmarc_policy_reject_txt'] = 'reject';
99
$wb['dmarc_rua_txt'] = 'Aggregate Data Reporting Address';
10-
$wb['dmarc_rua_note_txt'] = 'Email to receive reports from ISPs aboute messages which failed SPF and DKIM checks (DMARC) for the domain.';
10+
$wb['dmarc_rua_note_txt'] = 'Email to receive reports from ISPs aboute messages which failed DMARC checks for the domain (separated by whitespaces).';
1111
$wb['dmarc_ruf_txt'] = 'Forensic Data Reporting Address';
12-
$wb['dmarc_ruf_note_txt'] = 'Email to receive sample messages that are failing SPF and DKIM checks (DMARC) for the domain.';
12+
$wb['dmarc_ruf_note_txt'] = 'Email to receive sample messages that are failing DMARC checks for the domain (separated by whitespaces).';
1313
$wb['dmarc_fo_txt'] = 'Forensic reporting options';
1414
$wb['dmarc_fo0_txt'] = "Generate reports if all underlying authentication mechanisms fail to produce a DMARC 'pass' result.";
1515
$wb['dmarc_fo1_txt'] = 'Generate reports if any mechanisms fail.';
@@ -37,8 +37,10 @@ $wb['dmarc_sp_quarantine_txt'] = 'quarantine';
3737
$wb['dmarc_sp_reject_txt'] = 'reject';
3838
$wb['ttl_txt'] = 'TTL';
3939
$wb['active_txt'] = 'Active';
40+
$wb['dmarc_policy_error_txt'] = "Only policy 'none' is allowed without DKIM-signed emails.";
41+
$wb['dmarc_no_dkim_txt'] = 'No active DKIM Record.';
42+
$wb['dmarc_no_spf_txt'] = 'No active SPF Record.';
4043
$wb['dmarc_more_spf_txt'] = 'More than one active SPF Record';
41-
$wb['dmarc_no_dkim_spf_txt'] = 'No active DKIM or SPF Record.';
4244
$wb['dmarc_invalid_email_txt'] = 'Invalid Email';
4345
$wb['dmarc_empty_txt'] = 'DMARC Record empty - specify at least one option';
4446
$wb['record_exists_txt'] = 'DNS-Record already exists';

interface/web/dns/lib/lang/br_dns_dmarc.lng

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,14 @@
22
$wb['data_txt'] = 'DMARC Record';
33
$wb['domain_txt'] = 'Domain';
44
$wb['dmarc_policy_txt'] = 'Mail Receiver Policy';
5-
$wb['dmarc_policy_note_txt'] = 'How ISPs should handle messages that failed SPF and DKIM.';
5+
$wb['dmarc_policy_note_txt'] = 'How ISPs should handle messages that failed SPF or DKIM (DMARC).';
66
$wb['dmarc_policy_none_txt'] = 'none';
77
$wb['dmarc_policy_quarantine_txt'] = 'quarantine';
88
$wb['dmarc_policy_reject_txt'] = 'reject';
99
$wb['dmarc_rua_txt'] = 'Aggregate Data Reporting Address';
10-
$wb['dmarc_rua_note_txt'] = 'Email to receive reports from ISPs aboute messages which failed SPF and DKIM checks (DMARC) for the domain.';
10+
$wb['dmarc_rua_note_txt'] = 'Email to receive reports from ISPs aboute messages which failed DMARC checks for the domain (separated by whitespaces).';
1111
$wb['dmarc_ruf_txt'] = 'Forensic Data Reporting Address';
12-
$wb['dmarc_ruf_note_txt'] = 'Email to receive sample messages that are failing SPF and DKIM checks (DMARC) for the domain.';
12+
$wb['dmarc_ruf_note_txt'] = 'Email to receive sample messages that are failing DMARC checks for the domain (separated by whitespaces).';
1313
$wb['dmarc_fo_txt'] = 'Forensic reporting options';
1414
$wb['dmarc_fo0_txt'] = "Generate reports if all underlying authentication mechanisms fail to produce a DMARC 'pass' result.";
1515
$wb['dmarc_fo1_txt'] = 'Generate reports if any mechanisms fail.';
@@ -37,8 +37,10 @@ $wb['dmarc_sp_quarantine_txt'] = 'quarantine';
3737
$wb['dmarc_sp_reject_txt'] = 'reject';
3838
$wb['ttl_txt'] = 'TTL';
3939
$wb['active_txt'] = 'Active';
40+
$wb['dmarc_policy_error_txt'] = "Only policy 'none' is allowed without DKIM-signed emails.";
41+
$wb['dmarc_no_dkim_txt'] = 'No active DKIM Record.';
42+
$wb['dmarc_no_spf_txt'] = 'No active SPF Record.';
4043
$wb['dmarc_more_spf_txt'] = 'More than one active SPF Record';
41-
$wb['dmarc_no_dkim_spf_txt'] = 'No active DKIM or SPF Record.';
4244
$wb['dmarc_invalid_email_txt'] = 'Invalid Email';
4345
$wb['dmarc_empty_txt'] = 'DMARC Record empty - specify at least one option';
4446
$wb['record_exists_txt'] = 'DNS-Record already exists';

interface/web/dns/lib/lang/cz_dns_dmarc.lng

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,14 @@
22
$wb['data_txt'] = 'DMARC Record';
33
$wb['domain_txt'] = 'Domain';
44
$wb['dmarc_policy_txt'] = 'Mail Receiver Policy';
5-
$wb['dmarc_policy_note_txt'] = 'How ISPs should handle messages that failed SPF and DKIM.';
5+
$wb['dmarc_policy_note_txt'] = 'How ISPs should handle messages that failed SPF or DKIM (DMARC).';
66
$wb['dmarc_policy_none_txt'] = 'none';
77
$wb['dmarc_policy_quarantine_txt'] = 'quarantine';
88
$wb['dmarc_policy_reject_txt'] = 'reject';
99
$wb['dmarc_rua_txt'] = 'Aggregate Data Reporting Address';
10-
$wb['dmarc_rua_note_txt'] = 'Email to receive reports from ISPs aboute messages which failed SPF and DKIM checks (DMARC) for the domain.';
10+
$wb['dmarc_rua_note_txt'] = 'Email to receive reports from ISPs aboute messages which failed DMARC checks for the domain (separated by whitespaces).';
1111
$wb['dmarc_ruf_txt'] = 'Forensic Data Reporting Address';
12-
$wb['dmarc_ruf_note_txt'] = 'Email to receive sample messages that are failing SPF and DKIM checks (DMARC) for the domain.';
12+
$wb['dmarc_ruf_note_txt'] = 'Email to receive sample messages that are failing DMARC checks for the domain (separated by whitespaces).';
1313
$wb['dmarc_fo_txt'] = 'Forensic reporting options';
1414
$wb['dmarc_fo0_txt'] = "Generate reports if all underlying authentication mechanisms fail to produce a DMARC 'pass' result.";
1515
$wb['dmarc_fo1_txt'] = 'Generate reports if any mechanisms fail.';
@@ -37,8 +37,10 @@ $wb['dmarc_sp_quarantine_txt'] = 'quarantine';
3737
$wb['dmarc_sp_reject_txt'] = 'reject';
3838
$wb['ttl_txt'] = 'TTL';
3939
$wb['active_txt'] = 'Active';
40+
$wb['dmarc_policy_error_txt'] = "Only policy 'none' is allowed without DKIM-signed emails.";
41+
$wb['dmarc_no_dkim_txt'] = 'No active DKIM Record.';
42+
$wb['dmarc_no_spf_txt'] = 'No active SPF Record.';
4043
$wb['dmarc_more_spf_txt'] = 'More than one active SPF Record';
41-
$wb['dmarc_no_dkim_spf_txt'] = 'No active DKIM or SPF Record.';
4244
$wb['dmarc_invalid_email_txt'] = 'Invalid Email';
4345
$wb['dmarc_empty_txt'] = 'DMARC Record empty - specify at least one option';
4446
$wb['record_exists_txt'] = 'DNS-Record already exists';

interface/web/dns/lib/lang/de_dns_dmarc.lng

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,14 @@
22
$wb['data_txt'] = 'DMARC Record';
33
$wb['domain_txt'] = 'Domain';
44
$wb['dmarc_policy_txt'] = 'Mail Receiver Policy';
5-
$wb['dmarc_policy_note_txt'] = 'How ISPs should handle messages that failed SPF and DKIM.';
5+
$wb['dmarc_policy_note_txt'] = 'How ISPs should handle messages that failed SPF or DKIM (DMARC).';
66
$wb['dmarc_policy_none_txt'] = 'none';
77
$wb['dmarc_policy_quarantine_txt'] = 'quarantine';
88
$wb['dmarc_policy_reject_txt'] = 'reject';
99
$wb['dmarc_rua_txt'] = 'Aggregate Data Reporting Address';
10-
$wb['dmarc_rua_note_txt'] = 'Email to receive reports from ISPs aboute messages which failed SPF and DKIM checks (DMARC) for the domain.';
10+
$wb['dmarc_rua_note_txt'] = 'Email to receive reports from ISPs aboute messages which failed DMARC checks for the domain (separated by whitespaces).';
1111
$wb['dmarc_ruf_txt'] = 'Forensic Data Reporting Address';
12-
$wb['dmarc_ruf_note_txt'] = 'Email to receive sample messages that are failing SPF and DKIM checks (DMARC) for the domain.';
12+
$wb['dmarc_ruf_note_txt'] = 'Email to receive sample messages that are failing DMARC checks for the domain (separated by whitespaces).';
1313
$wb['dmarc_fo_txt'] = 'Forensic reporting options';
1414
$wb['dmarc_fo0_txt'] = "Generate reports if all underlying authentication mechanisms fail to produce a DMARC 'pass' result.";
1515
$wb['dmarc_fo1_txt'] = 'Generate reports if any mechanisms fail.';
@@ -37,8 +37,10 @@ $wb['dmarc_sp_quarantine_txt'] = 'quarantine';
3737
$wb['dmarc_sp_reject_txt'] = 'reject';
3838
$wb['ttl_txt'] = 'TTL';
3939
$wb['active_txt'] = 'Active';
40+
$wb['dmarc_policy_error_txt'] = "Only policy 'none' is allowed without DKIM-signed emails.";
41+
$wb['dmarc_no_dkim_txt'] = 'No active DKIM Record.';
42+
$wb['dmarc_no_spf_txt'] = 'No active SPF Record.';
4043
$wb['dmarc_more_spf_txt'] = 'More than one active SPF Record';
41-
$wb['dmarc_no_dkim_spf_txt'] = 'No active DKIM or SPF Record.';
4244
$wb['dmarc_invalid_email_txt'] = 'Invalid Email';
4345
$wb['dmarc_empty_txt'] = 'DMARC Record empty - specify at least one option';
4446
$wb['record_exists_txt'] = 'DNS-Record already exists';

interface/web/dns/lib/lang/el_dns_dmarc.lng

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,14 @@
22
$wb['data_txt'] = 'DMARC Record';
33
$wb['domain_txt'] = 'Domain';
44
$wb['dmarc_policy_txt'] = 'Mail Receiver Policy';
5-
$wb['dmarc_policy_note_txt'] = 'How ISPs should handle messages that failed SPF and DKIM.';
5+
$wb['dmarc_policy_note_txt'] = 'How ISPs should handle messages that failed SPF or DKIM (DMARC).';
66
$wb['dmarc_policy_none_txt'] = 'none';
77
$wb['dmarc_policy_quarantine_txt'] = 'quarantine';
88
$wb['dmarc_policy_reject_txt'] = 'reject';
99
$wb['dmarc_rua_txt'] = 'Aggregate Data Reporting Address';
10-
$wb['dmarc_rua_note_txt'] = 'Email to receive reports from ISPs aboute messages which failed SPF and DKIM checks (DMARC) for the domain.';
10+
$wb['dmarc_rua_note_txt'] = 'Email to receive reports from ISPs aboute messages which failed DMARC checks for the domain (separated by whitespaces).';
1111
$wb['dmarc_ruf_txt'] = 'Forensic Data Reporting Address';
12-
$wb['dmarc_ruf_note_txt'] = 'Email to receive sample messages that are failing SPF and DKIM checks (DMARC) for the domain.';
12+
$wb['dmarc_ruf_note_txt'] = 'Email to receive sample messages that are failing DMARC checks for the domain (separated by whitespaces).';
1313
$wb['dmarc_fo_txt'] = 'Forensic reporting options';
1414
$wb['dmarc_fo0_txt'] = "Generate reports if all underlying authentication mechanisms fail to produce a DMARC 'pass' result.";
1515
$wb['dmarc_fo1_txt'] = 'Generate reports if any mechanisms fail.';
@@ -37,8 +37,10 @@ $wb['dmarc_sp_quarantine_txt'] = 'quarantine';
3737
$wb['dmarc_sp_reject_txt'] = 'reject';
3838
$wb['ttl_txt'] = 'TTL';
3939
$wb['active_txt'] = 'Active';
40+
$wb['dmarc_policy_error_txt'] = "Only policy 'none' is allowed without DKIM-signed emails.";
41+
$wb['dmarc_no_dkim_txt'] = 'No active DKIM Record.';
42+
$wb['dmarc_no_spf_txt'] = 'No active SPF Record.';
4043
$wb['dmarc_more_spf_txt'] = 'More than one active SPF Record';
41-
$wb['dmarc_no_dkim_spf_txt'] = 'No active DKIM or SPF Record.';
4244
$wb['dmarc_invalid_email_txt'] = 'Invalid Email';
4345
$wb['dmarc_empty_txt'] = 'DMARC Record empty - specify at least one option';
4446
$wb['record_exists_txt'] = 'DNS-Record already exists';

interface/web/dns/lib/lang/en_dns_dmarc.lng

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,14 @@
22
$wb['data_txt'] = 'DMARC Record';
33
$wb['domain_txt'] = 'Domain';
44
$wb['dmarc_policy_txt'] = 'Mail Receiver Policy';
5-
$wb['dmarc_policy_note_txt'] = 'How ISPs should handle messages that failed SPF and DKIM.';
5+
$wb['dmarc_policy_note_txt'] = 'How ISPs should handle messages that failed SPF or DKIM (DMARC).';
66
$wb['dmarc_policy_none_txt'] = 'none';
77
$wb['dmarc_policy_quarantine_txt'] = 'quarantine';
88
$wb['dmarc_policy_reject_txt'] = 'reject';
99
$wb['dmarc_rua_txt'] = 'Aggregate Data Reporting Address';
10-
$wb['dmarc_rua_note_txt'] = 'Email to receive reports from ISPs aboute messages which failed SPF and DKIM checks (DMARC) for the domain.';
10+
$wb['dmarc_rua_note_txt'] = 'Email to receive reports from ISPs aboute messages which failed DMARC checks for the domain (separated by whitespaces).';
1111
$wb['dmarc_ruf_txt'] = 'Forensic Data Reporting Address';
12-
$wb['dmarc_ruf_note_txt'] = 'Email to receive sample messages that are failing SPF and DKIM checks (DMARC) for the domain.';
12+
$wb['dmarc_ruf_note_txt'] = 'Email to receive sample messages that are failing DMARC checks for the domain (separated by whitespaces).';
1313
$wb['dmarc_fo_txt'] = 'Forensic reporting options';
1414
$wb['dmarc_fo0_txt'] = "Generate reports if all underlying authentication mechanisms fail to produce a DMARC 'pass' result.";
1515
$wb['dmarc_fo1_txt'] = 'Generate reports if any mechanisms fail.';
@@ -37,8 +37,10 @@ $wb['dmarc_sp_quarantine_txt'] = 'quarantine';
3737
$wb['dmarc_sp_reject_txt'] = 'reject';
3838
$wb['ttl_txt'] = 'TTL';
3939
$wb['active_txt'] = 'Active';
40+
$wb['dmarc_policy_error_txt'] = "Only policy 'none' is allowed without DKIM-signed emails.";
41+
$wb['dmarc_no_dkim_txt'] = 'No active DKIM Record.';
42+
$wb['dmarc_no_spf_txt'] = 'No active SPF Record.';
4043
$wb['dmarc_more_spf_txt'] = 'More than one active SPF Record';
41-
$wb['dmarc_no_dkim_spf_txt'] = 'No active DKIM or SPF Record.';
4244
$wb['dmarc_invalid_email_txt'] = 'Invalid Email';
4345
$wb['dmarc_empty_txt'] = 'DMARC Record empty - specify at least one option';
4446
$wb['record_exists_txt'] = 'DNS-Record already exists';

0 commit comments

Comments
 (0)