git://git.exim.org
/
exim.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Fix logging of nomail
[exim.git]
/
doc
/
doc-txt
/
experimental-spec.txt
diff --git
a/doc/doc-txt/experimental-spec.txt
b/doc/doc-txt/experimental-spec.txt
index 2395267e813f15f7729dc5885ea1538609b2e3a8..265e1211b7d2bd10bda99610e73c972b91e950c3 100644
(file)
--- a/
doc/doc-txt/experimental-spec.txt
+++ b/
doc/doc-txt/experimental-spec.txt
@@
-460,9
+460,13
@@
which the spf condition should succeed. Valid strings are:
processing, including Exim's SPF processing.
You may defer messages when this occurs.
(Changed in 4.83)
processing, including Exim's SPF processing.
You may defer messages when this occurs.
(Changed in 4.83)
+ o err_temp Same as permerror, deprecated in 4.83, will be
+ removed in a future release.
+ o err_perm Same as temperror, deprecated in 4.83, will be
+ removed in a future release.
You can prefix each string with an exclamation mark to invert
You can prefix each string with an exclamation mark to invert
-is meaning, for example "!fail" will match all results but
+i
t
s meaning, for example "!fail" will match all results but
"fail". The string list is evaluated left-to-right, in a
short-circuit fashion. When a string matches the outcome of
the SPF check, the condition succeeds. If none of the listed
"fail". The string list is evaluated left-to-right, in a
short-circuit fashion. When a string matches the outcome of
the SPF check, the condition succeeds. If none of the listed
@@
-775,7
+779,7
@@
fails.
Of course, you can also use any other lookup method that Exim
supports, including LDAP, Postgres, MySQL, etc, as long as the
Of course, you can also use any other lookup method that Exim
supports, including LDAP, Postgres, MySQL, etc, as long as the
-result is a list of colon-separated strings
;
+result is a list of colon-separated strings
.
Several expansion variables are set before the DATA ACL is
processed, and you can use them in this ACL. The following
Several expansion variables are set before the DATA ACL is
processed, and you can use them in this ACL. The following
@@
-783,7
+787,10
@@
expansion variables are available:
o $dmarc_status
This is a one word status indicating what the DMARC library
o $dmarc_status
This is a one word status indicating what the DMARC library
- thinks of the email.
+ thinks of the email. It is a combination of the results of
+ DMARC record lookup and the SPF/DKIM/DMARC processing results
+ (if a DMARC record was found). The actual policy declared
+ in the DMARC record is in a separate expansion variable.
o $dmarc_status_text
This is a slightly longer, human readable status.
o $dmarc_status_text
This is a slightly longer, human readable status.
@@
-792,6
+799,11
@@
expansion variables are available:
This is the domain which DMARC used to look up the DMARC
policy record.
This is the domain which DMARC used to look up the DMARC
policy record.
+ o $dmarc_domain_policy
+ This is the policy declared in the DMARC record. Valid values
+ are "none", "reject" and "quarantine". It is blank when there
+ is any error, including no DMARC record.
+
o $dmarc_ar_header
This is the entire Authentication-Results header which you can
add using an add_header modifier.
o $dmarc_ar_header
This is the entire Authentication-Results header which you can
add using an add_header modifier.
@@
-827,6
+839,9
@@
b. Configure, somewhere before the DATA ACL, the control option to
warn !domains = +screwed_up_dmarc_records
control = dmarc_enable_forensic
warn !domains = +screwed_up_dmarc_records
control = dmarc_enable_forensic
+ warn condition = (lookup if destined to mailing list)
+ set acl_m_mailing_list = 1
+
(DATA ACL)
warn dmarc_status = accept : none : off
!authenticated = *
(DATA ACL)
warn dmarc_status = accept : none : off
!authenticated = *
@@
-842,6
+857,10
@@
b. Configure, somewhere before the DATA ACL, the control option to
set $acl_m_quarantine = 1
# Do something in a transport with this flag variable
set $acl_m_quarantine = 1
# Do something in a transport with this flag variable
+ deny condition = ${if eq{$dmarc_domain_policy}{reject}}
+ condition = ${if eq{$acl_m_mailing_list}{1}}
+ message = Messages from $dmarc_used_domain break mailing lists
+
deny dmarc_status = reject
!authenticated = *
message = Message from $domain_used_domain failed sender's DMARC policy, REJECT
deny dmarc_status = reject
!authenticated = *
message = Message from $domain_used_domain failed sender's DMARC policy, REJECT