This appendix includes the error codes for each sender authentication protocols.
Sender Policy Framework (SPF) Error Codes
|
Error Type |
Error Codes |
|---|---|
|
Invalid SPF record |
3~25, 27~32 |
|
No SPF record |
2 |
|
Internal error |
-99, 1, 26 |
|
Error Code |
Message |
|---|---|
|
-99 |
Internal error |
|
1 |
Insufficient memory |
|
2 |
No SPF record |
|
3 |
Syntax error |
|
4 |
Modifiers contain prefixes |
|
5 |
Invalid characters found |
|
6 |
Unknown mechanisms found |
|
7 |
Invalid option found |
|
8 |
Invalid CIDR length |
|
9 |
Required option is missing |
|
10 |
Internal error |
|
11 |
Invalid %-escape character |
|
12 |
Invalid macro variable |
|
13 |
Subdomain truncation depth too large |
|
14 |
Invalid delimiter character |
|
15 |
Option string too long |
|
16 |
Excessive mechanisms |
|
17 |
Excessive modifiers |
|
18 |
Excessive DNS lookups used in mechanisms |
|
19 |
Invalid IPv4 address |
|
20 |
Invalid IPv6 address |
|
21 |
Invalid mechanism prefix |
|
22 |
SPF result is unknown |
|
23 |
Uninitialized variable |
|
24 |
Modifier not found |
|
25 |
Required setting not configured |
|
26 |
DNS lookup unsuccessful |
|
27 |
Invalid hostname or format |
|
28 |
Invalid or missing TLD in hostname |
|
29 |
Ignore mechanisms after "all:" |
|
30 |
SPF result is permerror when an include recursive query returns none |
|
31 |
Recursive include |
|
32 |
Multiple SPF or TXT records found |
|
51 |
IP address is 0.0.0.0 |
|
52 |
from and ehlo parameters are null |
|
53 |
none rule matched |
|
54 |
neutral rule matched |
|
55 |
softfail rule matched |
|
56 |
fail rule matched |
|
57 |
temperror rule matched |
|
58 |
permerror rule matched |
DomainKeys Identified Mail (DKIM) Error Codes
|
Error Type |
Error Codes |
|---|---|
|
Invalid DKIM record |
1, 23~24, 116, 34, 36, 38, 40, 41, 42, 43, 46, 108, 111 |
|
No DKIM record |
22, 103, 104 |
|
Invalid DKIM signature |
2~5, 7~21, 25~27, 31~33, 44~45, 102, 105 |
|
DKIM signature mismatch |
28, 37, 101 |
|
Internal error |
-1, 6, 39, 107, 112~115 and all others |
|
Error Code |
Message |
Result |
|---|---|---|
|
-1 |
Internal error |
PermError |
|
0 |
Successful |
Pass |
|
1 |
Unsupported version |
Fail |
|
2 |
Invalid domain (d=/i=) |
PermError |
|
3 |
Signature expired |
Fail |
|
4 |
Signature in the future |
Fail |
|
5 |
x= < t= |
Fail |
|
6 |
Obsolete |
Fail |
|
7 |
Invalid c= value in header |
Neutral |
|
8 |
Invalid c= value in body |
Neutral |
|
9 |
Missing a= value |
PermError |
|
10 |
Invalid a= value |
Neutral |
|
11 |
Missing h= value |
PermError |
|
12 |
Invalid l= value |
Neutral |
|
13 |
Invalid q= value |
Neutral |
|
14 |
Invalid q= option |
Neutral |
|
15 |
Missing d=value |
PermError |
|
16 |
d= value is empty |
Neutral |
|
17 |
Missing s= value |
PermError |
|
18 |
s= value is empty |
Neutral |
|
19 |
Missing b= value |
PermError |
|
20 |
b= value is empty |
Neutral |
|
21 |
b= value is corrupt |
PermError |
|
22 |
No key found in DNS |
None |
|
23 |
Bad DNS reply |
Neutral |
|
24 |
Unsuccessful DNS reply |
TempError |
|
25 |
Missing bh= value |
PermError |
|
26 |
bh= value is empty |
Neutral |
|
27 |
Bad bh= value |
PermError |
|
28 |
Signature mismatch |
Fail |
|
29 |
Unauthorized subdomain |
TempError |
|
30 |
Multiple records returned |
TempError |
|
31 |
h= value is empty |
Neutral |
|
32 |
Missing required entries in h= value |
Neutral |
|
33 |
l= value exceeds body size |
Neutral |
|
34 |
Signing required not met |
Neutral |
|
35 |
Unknown key version |
Neutral |
|
36 |
Unknown key hash |
Neutral |
|
37 |
Signature-key hash mismatch |
PermError |
|
38 |
Not an email key |
Neutral |
|
39 |
Obsolete |
Fail |
|
40 |
Missing key type |
Neutral |
|
41 |
Unknown key type |
Neutral |
|
42 |
Key revoked |
PermError |
|
43 |
Undecodable key |
PermError |
|
44 |
Missing v= tag |
PermError |
|
45 |
v= tag is empty |
Fail |
|
46 |
Insufficient key bits |
PermError |
|
101 |
Bad signature |
Fail |
|
102 |
No signature available |
Fail |
|
103 |
Public key not found |
None |
|
104 |
No domain key to verify |
None |
|
105 |
Syntax error |
Fail |
|
106 |
Resource unavailable |
Fail |
|
107 |
Internal error |
Fail |
|
108 |
Key revoked |
Fail |
|
109 |
Invalid function parameter |
Fail |
|
110 |
Function not implemented |
Fail |
|
111 |
Unable to retrieve key |
Fail |
|
112 |
Callback request rejected |
Fail |
|
113 |
Invalid callback result |
Fail |
|
114 |
Callback timeout |
Fail |
|
115 |
Callback timeout |
Fail |
|
116 |
Multiple DNS replies |
Fail |
Domain-based Message Authentication, Reporting & Conformance (DMARC) Error Codes
|
Error Type |
Error Codes |
|---|---|
|
Invalid DMARC record |
2~5, 11 |
|
No DMARC record |
1, 6, 9, 10, 12 |
|
Authentication unsuccessful |
13 |
|
Alignment check unsuccessful |
21 |
|
Internal error |
7, 8 |
|
Error Code |
Message |
|---|---|
|
0 |
Successful |
|
1 |
No data |
|
2 |
NULL context received |
|
3 |
Invalid v= value |
|
4 |
Invalid p= value |
|
5 |
Missing p= value |
|
6 |
No domain found |
|
7 |
Unable to allocate memory |
|
8 |
Not a macro |
|
9 |
No DMARC record |
|
10 |
Domain does not exist |
|
11 |
Recoverable DNS error |
|
12 |
Undefined TLD type |
|
13 |
From: domain not available |
|
14 |
No DMARC record found for custom policy |
|
15 |
Accept message based on policy settings |
|
16 |
Reject message based on policy settings |
|
17 |
Quarantine message based on policy settings |
|
18 |
Monitor message and generate report based on policy settings |
|
19 |
Apply domain policy ('p') |
|
20 |
Apply sub-domain policy ('sp') |
|
21 |
Alignment check unsuccessful |
