| line |
stmt |
bran |
cond |
sub |
pod |
time |
code |
|
1
|
|
|
|
|
|
|
package Sisimai::Rhost::ExchangeOnline; |
|
2
|
7
|
|
|
7
|
|
1972
|
use feature ':5.10'; |
|
|
7
|
|
|
|
|
16
|
|
|
|
7
|
|
|
|
|
673
|
|
|
3
|
7
|
|
|
7
|
|
42
|
use strict; |
|
|
7
|
|
|
|
|
14
|
|
|
|
7
|
|
|
|
|
155
|
|
|
4
|
7
|
|
|
7
|
|
31
|
use warnings; |
|
|
7
|
|
|
|
|
18
|
|
|
|
7
|
|
|
|
|
8034
|
|
|
5
|
|
|
|
|
|
|
|
|
6
|
|
|
|
|
|
|
# https://technet.microsoft.com/en-us/library/bb232118 |
|
7
|
|
|
|
|
|
|
# https://learn.microsoft.com/en-us/Exchange/mail-flow-best-practices/non-delivery-reports-in-exchange-online/non-delivery-reports-in-exchange-online |
|
8
|
|
|
|
|
|
|
# https://learn.microsoft.com/en-us/Exchange/mail-flow/non-delivery-reports-and-bounce-messages/non-delivery-reports-and-bounce-messages |
|
9
|
|
|
|
|
|
|
sub get { |
|
10
|
|
|
|
|
|
|
# Detect bounce reason from Exchange 2019 or older and Exchange Online |
|
11
|
|
|
|
|
|
|
# @param [Sisimai::Data] argvs Parsed email object |
|
12
|
|
|
|
|
|
|
# @return [String] The bounce reason for Exchange Online |
|
13
|
|
|
|
|
|
|
# @see https://technet.microsoft.com/en-us/library/bb232118 |
|
14
|
30
|
|
|
30
|
0
|
1131
|
my $class = shift; |
|
15
|
30
|
|
100
|
|
|
118
|
my $argvs = shift // return undef; |
|
16
|
|
|
|
|
|
|
|
|
17
|
29
|
100
|
|
|
|
110
|
return $argvs->reason if $argvs->reason; |
|
18
|
24
|
50
|
|
|
|
222
|
return '' unless $argvs->diagnosticcode; |
|
19
|
24
|
50
|
|
|
|
192
|
return '' unless $argvs->deliverystatus; |
|
20
|
24
|
50
|
|
|
|
151
|
return '' unless $argvs->deliverystatus =~ /\A[245][.]\d[.]\d+\z/; |
|
21
|
|
|
|
|
|
|
|
|
22
|
24
|
|
|
|
|
751
|
state $messagesof = { |
|
23
|
|
|
|
|
|
|
'blocked' => [ |
|
24
|
|
|
|
|
|
|
# Exchange Server 2019 ---------------------------------------------------------------- |
|
25
|
|
|
|
|
|
|
# - Transient network issues or server problems that might eventually correct them- |
|
26
|
|
|
|
|
|
|
# selves. The sending server will retry delivery of the message, and will generate |
|
27
|
|
|
|
|
|
|
# further status reports. The message size limit for the connection has been reached, |
|
28
|
|
|
|
|
|
|
# or the message submission rate for the source IP address has exceeded the configur- |
|
29
|
|
|
|
|
|
|
# ed limit. For more information, see Message rate limits and throttling. Antispam, |
|
30
|
|
|
|
|
|
|
# SMTP proxy, or firewall configuration issues are blocking email from the Exchange |
|
31
|
|
|
|
|
|
|
# server. |
|
32
|
|
|
|
|
|
|
['4.4.2', 0, 0, 'connection dropped'], |
|
33
|
|
|
|
|
|
|
|
|
34
|
|
|
|
|
|
|
# Exchange Online --------------------------------------------------------------------- |
|
35
|
|
|
|
|
|
|
# - Suspicious activity has been detected on the IP in question, and it has been tempo- |
|
36
|
|
|
|
|
|
|
# rarily restricted while it's being further evaluated. |
|
37
|
|
|
|
|
|
|
# - If this activity is valid, this restriction will be lifted shortly. |
|
38
|
|
|
|
|
|
|
['4.7.', 850, 899, 'access denied, please try again later'], |
|
39
|
|
|
|
|
|
|
|
|
40
|
|
|
|
|
|
|
# - Access denied, the sending IPv6 address [2a01:111:f200:2004::240] must have a re- |
|
41
|
|
|
|
|
|
|
# verse DNS record |
|
42
|
|
|
|
|
|
|
# - The sending IPv6 address must have a reverse DNS record in order to send email over |
|
43
|
|
|
|
|
|
|
# IPv6. |
|
44
|
|
|
|
|
|
|
['5.7.25', 0, 0, 'must have a reverse dns record'], |
|
45
|
|
|
|
|
|
|
|
|
46
|
|
|
|
|
|
|
# - Your server is attempting to introduce itself (HELO according to RFC 821) as the |
|
47
|
|
|
|
|
|
|
# server it's trying to connect to, rather than its own fully qualified domain name. |
|
48
|
|
|
|
|
|
|
# - This isn't allowed, and it's characteristic of typical spambot behavior. |
|
49
|
|
|
|
|
|
|
['5.7.506', 0, 0, 'access denied, bad helo'], |
|
50
|
|
|
|
|
|
|
|
|
51
|
|
|
|
|
|
|
# - The IP that you're attempting to send from has been blocked by the recipient's or- |
|
52
|
|
|
|
|
|
|
# ganization. |
|
53
|
|
|
|
|
|
|
# - Contact the recipient in order to resolve this issue. |
|
54
|
|
|
|
|
|
|
['5.7.507', 0, 0, 'access denied, rejected by recipient'], |
|
55
|
|
|
|
|
|
|
|
|
56
|
|
|
|
|
|
|
# - Access denied, [contoso.com] does not accept email over IPv6 |
|
57
|
|
|
|
|
|
|
# - The sender is attempting to transmit a message to the recipient over IPv6, but the |
|
58
|
|
|
|
|
|
|
# recipient doesn't accept email messages over IPv6. |
|
59
|
|
|
|
|
|
|
['5.7.510', 0, 0, 'does not accept email over ipv6'], |
|
60
|
|
|
|
|
|
|
|
|
61
|
|
|
|
|
|
|
# - The IP that you're attempting to send from has been banned. |
|
62
|
|
|
|
|
|
|
# - To delist the address, email delist@messaging.microsoft.com and provide the full |
|
63
|
|
|
|
|
|
|
# NDR code and IP address to delist. For more information, see Use the delist portal |
|
64
|
|
|
|
|
|
|
# to remove yourself from the blocked senders list. |
|
65
|
|
|
|
|
|
|
['5.7.511', 0, 0, 'access denied, banned sender'], |
|
66
|
|
|
|
|
|
|
|
|
67
|
|
|
|
|
|
|
# - Service unavailable, Client host [$ConnectingIP] blocked by $recipientDomain using |
|
68
|
|
|
|
|
|
|
# Customer Block list (AS16012607) |
|
69
|
|
|
|
|
|
|
# - The recipient domain has added your sending IP address to its custom blocklist. |
|
70
|
|
|
|
|
|
|
# - The domain that received the email has blocked your sender's IP address. If you |
|
71
|
|
|
|
|
|
|
# think your IP address has been added to the recipient domain's custom blocklist in |
|
72
|
|
|
|
|
|
|
# error, you need to contact them directly and ask them to remove it from the block- |
|
73
|
|
|
|
|
|
|
# list. |
|
74
|
|
|
|
|
|
|
['5.7.513', 0, 0, 'using customer block list'], |
|
75
|
|
|
|
|
|
|
|
|
76
|
|
|
|
|
|
|
# - 5.7.606-649 Access denied, banned sending IP [IP1.IP2.IP3.IP4] |
|
77
|
|
|
|
|
|
|
# - The IP that you're attempting to send from has been banned. |
|
78
|
|
|
|
|
|
|
# - Verify that you're following the best practices for email deliverability, and en- |
|
79
|
|
|
|
|
|
|
# sure your IPs' reputations haven't been degraded as a result of compromise or mali- |
|
80
|
|
|
|
|
|
|
# cious traffic. If you believe you're receiving this message in error, you can use |
|
81
|
|
|
|
|
|
|
# the self-service portal to request to be removed from this list. |
|
82
|
|
|
|
|
|
|
# - For more information, see Use the delist portal to remove yourself from the blocked |
|
83
|
|
|
|
|
|
|
# senders list. |
|
84
|
|
|
|
|
|
|
['5.7.', 606, 649, 'access denied, banned sending ip '], |
|
85
|
|
|
|
|
|
|
|
|
86
|
|
|
|
|
|
|
# Previous versions of Exchange Server ------------------------------------------------ |
|
87
|
|
|
|
|
|
|
# - Suspicious activity has been detected and sending has been temporarily restricted |
|
88
|
|
|
|
|
|
|
# for further evaluation. |
|
89
|
|
|
|
|
|
|
# - If this activity is valid, this restriction will be lifted shortly. |
|
90
|
|
|
|
|
|
|
['4.7.', 500, 699, 'access denied, please try again later'], |
|
91
|
|
|
|
|
|
|
|
|
92
|
|
|
|
|
|
|
# Previous versions of Exchange Server ------------------------------------------------ |
|
93
|
|
|
|
|
|
|
['5.5.4', 0, 0, 'invalid domain name'], |
|
94
|
|
|
|
|
|
|
['5.7.51', 0, 0, 'restrictdomainstoipaddresses or restrictdomainstocertificate'], |
|
95
|
|
|
|
|
|
|
|
|
96
|
|
|
|
|
|
|
# Undocumented error messages --------------------------------------------------------- |
|
97
|
|
|
|
|
|
|
# - 550 5.7.1 Unfortunately, messages from [10.0.2.5] weren't sent. Please contact your |
|
98
|
|
|
|
|
|
|
# Internet service provider since part of their network is on our block list (S3150). |
|
99
|
|
|
|
|
|
|
['5.7.1', 0, 0, 'part of their network is on our block list (s3150)'], |
|
100
|
|
|
|
|
|
|
|
|
101
|
|
|
|
|
|
|
# - Access denied, a message sent over IPv6 [2a01:111:f200:2004::240] must pass either |
|
102
|
|
|
|
|
|
|
# SPF or DKIM validation, this message is not signed |
|
103
|
|
|
|
|
|
|
# - The sending message sent over IPv6 must pass either SPF or DKIM. |
|
104
|
|
|
|
|
|
|
['4.7.26', 0, 0, 'must pass either spf or dkim validation, this message is not signed'], |
|
105
|
|
|
|
|
|
|
|
|
106
|
|
|
|
|
|
|
# - Records are DNSSEC authentic, but one or multiple of these scenarios occurred: |
|
107
|
|
|
|
|
|
|
# - The destination mail server's certificate doesn't match with what is expected per |
|
108
|
|
|
|
|
|
|
# the authentic TLSA record. |
|
109
|
|
|
|
|
|
|
# - Authentic TLSA record is misconfigured. |
|
110
|
|
|
|
|
|
|
# - Destination domain is being attacked. |
|
111
|
|
|
|
|
|
|
# - Any other DANE failure. |
|
112
|
|
|
|
|
|
|
# - This message usually indicates an issue on the destination email server. Check the |
|
113
|
|
|
|
|
|
|
# validity of recipient address and determine if the destination server is configured |
|
114
|
|
|
|
|
|
|
# correctly to receive messages. |
|
115
|
|
|
|
|
|
|
# - For more information about DANE, see: https://datatracker.ietf.org/doc/html/rfc7671 |
|
116
|
|
|
|
|
|
|
['4.7.323', 0, 0, 'tlsa-invalid: The domain failed dane validation'], |
|
117
|
|
|
|
|
|
|
['5.7.323', 0, 0, 'tlsa-invalid: The domain failed dane validation'], |
|
118
|
|
|
|
|
|
|
|
|
119
|
|
|
|
|
|
|
# - The destination domain indicated it was DNSSEC-authentic, but Exchange Online was |
|
120
|
|
|
|
|
|
|
# not able to verify it as DNSSEC-authentic. |
|
121
|
|
|
|
|
|
|
['4.7.324', 0, 0, 'dnssec-invalid: destination domain returned invalid dnssec records'], |
|
122
|
|
|
|
|
|
|
['5.7.324', 0, 0, 'dnssec-invalid: destination domain returned invalid dnssec records'], |
|
123
|
|
|
|
|
|
|
|
|
124
|
|
|
|
|
|
|
# - This happens when the presented certificate identities (CN and SAN) of a destina- |
|
125
|
|
|
|
|
|
|
# tion SMTP target host don't match any of the domains or MX host. |
|
126
|
|
|
|
|
|
|
# - This message usually indicates an issue on the destination email server. Check the |
|
127
|
|
|
|
|
|
|
# validity of recipient address and determine if the destination server is configured |
|
128
|
|
|
|
|
|
|
# correctly to receive messages. For more information, see How SMTP DNS-based Authen- |
|
129
|
|
|
|
|
|
|
# tication of Named Entities (DANE) works to secure email communications. |
|
130
|
|
|
|
|
|
|
['4.7.325', 0, 0, 'certificate-host-mismatch: remote certificate must have a common name or subject alternative name matching the hostname (dane)'], |
|
131
|
|
|
|
|
|
|
['5.7.325', 0, 0, 'certificate-host-mismatch: remote certificate must have a common name or subject alternative name matching the hostname (dane)'], |
|
132
|
|
|
|
|
|
|
|
|
133
|
|
|
|
|
|
|
# - The destination email system uses SPF to validate inbound mail, and there's a prob- |
|
134
|
|
|
|
|
|
|
# lem with your SPF configuration. |
|
135
|
|
|
|
|
|
|
['5.7.23', 0, 0, 'the message was rejected because of sender policy framework violation'], |
|
136
|
|
|
|
|
|
|
|
|
137
|
|
|
|
|
|
|
# - DNSSEC checks have passed, yet upon establishing the connection the destination |
|
138
|
|
|
|
|
|
|
# mail server provides a certificate that is expired. |
|
139
|
|
|
|
|
|
|
# - A valid X.509 certificate that isn't expired must be presented. X.509 certificates |
|
140
|
|
|
|
|
|
|
# must be renewed after their expiration, commonly annually. |
|
141
|
|
|
|
|
|
|
['5.7.322', 0, 0, "certificate-expired: destination mail server's certificate is expired"], |
|
142
|
|
|
|
|
|
|
|
|
143
|
|
|
|
|
|
|
# - Access denied, sending domain [$SenderDomain] does not pass DMARC verification |
|
144
|
|
|
|
|
|
|
# - The sender's domain in the 5322.From address doesn't pass DMARC. |
|
145
|
|
|
|
|
|
|
['5.7.509', 0, 0, 'does not pass dmarc verification'], |
|
146
|
|
|
|
|
|
|
# Undocumented error messages --------------------------------------------------------- |
|
147
|
|
|
|
|
|
|
# - status=deferred (host outlook-com.olc.protection.outlook.com[192.0.2.255] said: |
|
148
|
|
|
|
|
|
|
# 451 4.7.650 The mail server [192.0.2.5] has been temporarily rate limited due to IP |
|
149
|
|
|
|
|
|
|
# reputation. For e-mail delivery information, see https://postmaster.live.com (S775) |
|
150
|
|
|
|
|
|
|
# [***.prod.protection.outlook.com] (in reply to MAIL FROM command)) |
|
151
|
|
|
|
|
|
|
['4.7.650', 0, 0, 'has been temporarily rate limited due to ip reputation'], |
|
152
|
|
|
|
|
|
|
], |
|
153
|
|
|
|
|
|
|
'contenterror' => [ |
|
154
|
|
|
|
|
|
|
# Exchange Server 2019 ---------------------------------------------------------------- |
|
155
|
|
|
|
|
|
|
# - The message was determined to be malformed, and was moved to the poison message |
|
156
|
|
|
|
|
|
|
# queue. For more information, see Types of queues. |
|
157
|
|
|
|
|
|
|
['5.3.0', 0, 0, 'too many related errors'], |
|
158
|
|
|
|
|
|
|
|
|
159
|
|
|
|
|
|
|
# Exchange Online --------------------------------------------------------------------- |
|
160
|
|
|
|
|
|
|
# - Your email program added invalid characters (bare line feed characters) into a mes- |
|
161
|
|
|
|
|
|
|
# sage you sent. |
|
162
|
|
|
|
|
|
|
['5.6.11', 0, 0, 'invalid characters'], |
|
163
|
|
|
|
|
|
|
|
|
164
|
|
|
|
|
|
|
# Previous versions of Exchange Server ------------------------------------------------ |
|
165
|
|
|
|
|
|
|
['5.4.11', 0, 0, 'agent generated message depth exceeded'], |
|
166
|
|
|
|
|
|
|
['5.5.6', 0, 0, 'invalid message content'], |
|
167
|
|
|
|
|
|
|
], |
|
168
|
|
|
|
|
|
|
'exceedlimit' => [ |
|
169
|
|
|
|
|
|
|
# Exchange Server 2019 ---------------------------------------------------------------- |
|
170
|
|
|
|
|
|
|
# - The message is too large. Send the message again without any attachments, or confi- |
|
171
|
|
|
|
|
|
|
# gure a larger message size limit for the recipient. For more information, see Re- |
|
172
|
|
|
|
|
|
|
# cipient limits. |
|
173
|
|
|
|
|
|
|
['5.2.3', 0, 0, 'resolver.rst.recipsizelimit; message too large for this recipient'], |
|
174
|
|
|
|
|
|
|
], |
|
175
|
|
|
|
|
|
|
'expired' => [ |
|
176
|
|
|
|
|
|
|
# Exchange Server 2019 ---------------------------------------------------------------- |
|
177
|
|
|
|
|
|
|
# - Transient network issues that might eventually correct themselves. The Exchange |
|
178
|
|
|
|
|
|
|
# server periodically tries to connect to the destination server to deliver the mes- |
|
179
|
|
|
|
|
|
|
# sage. After multiple failures, the message is returned to the sender in an NDR with |
|
180
|
|
|
|
|
|
|
# a permanent failure code. |
|
181
|
|
|
|
|
|
|
# For more information about configuring the queue retry and failure intervals, see |
|
182
|
|
|
|
|
|
|
# Configure message retry, resubmit, and expiration intervals. To manually retry a |
|
183
|
|
|
|
|
|
|
# queue, see Retry queues. Firewall or Internet service provider (ISP) restrictions |
|
184
|
|
|
|
|
|
|
# on TCP port 25. |
|
185
|
|
|
|
|
|
|
['4.4.1', 0, 0, 'connection timed out'], |
|
186
|
|
|
|
|
|
|
|
|
187
|
|
|
|
|
|
|
# - Send connector configuration issues. For example: |
|
188
|
|
|
|
|
|
|
# - The Send connector is configured to use DNS routing when it should be using smart |
|
189
|
|
|
|
|
|
|
# host routing, or vice-versa. Use nslookup to verify that the destination domain |
|
190
|
|
|
|
|
|
|
# is reachable from the Exchange server. |
|
191
|
|
|
|
|
|
|
# - The FQDN that the Send connector provides to HELO or EHLO requests doesn't match |
|
192
|
|
|
|
|
|
|
# the host name in your MX record (for example, mail.contoso.com). Some messaging |
|
193
|
|
|
|
|
|
|
# systems are configured to compare these values in an effort to reduce spam. The |
|
194
|
|
|
|
|
|
|
# default value on a Send connector is blank, which means the FQDN of the Exchange |
|
195
|
|
|
|
|
|
|
# server is used (for example, exchange01.contoso.com). |
|
196
|
|
|
|
|
|
|
# - The Mailbox Transport Delivery service isn't started on the destination server |
|
197
|
|
|
|
|
|
|
# (which prevents the delivery of the message to the mailbox). |
|
198
|
|
|
|
|
|
|
# - The destination messaging system has issues with Transport Neutral Encryption For- |
|
199
|
|
|
|
|
|
|
# mat (TNEF) messages (also known as rich text format or RTF in Outlook). For exam- |
|
200
|
|
|
|
|
|
|
# ple, meeting requests or messages with images embedded in the message body. |
|
201
|
|
|
|
|
|
|
# - If the destination domain uses the Sender Policy Framework (SPF) to check message |
|
202
|
|
|
|
|
|
|
# sources, there may be SPF issues with your domain (for example, your SPF record |
|
203
|
|
|
|
|
|
|
# doesn't include all email sources for your domain). |
|
204
|
|
|
|
|
|
|
['4.4.7', 0, 0, 'message delayed'], |
|
205
|
|
|
|
|
|
|
['4.4.7', 0, 0, 'queue expired; message expired'], |
|
206
|
|
|
|
|
|
|
|
|
207
|
|
|
|
|
|
|
# Exchange Online --------------------------------------------------------------------- |
|
208
|
|
|
|
|
|
|
# - The message in the queue has expired. The sending server tried to relay or deliver |
|
209
|
|
|
|
|
|
|
# the message, but the action wasn't completed before the message expiration time oc- |
|
210
|
|
|
|
|
|
|
# curred. This message can also indicate that a message header limit has been reached |
|
211
|
|
|
|
|
|
|
# on a remote server, or some other protocol time-out occurred while communicating |
|
212
|
|
|
|
|
|
|
# with the remote server. |
|
213
|
|
|
|
|
|
|
# - This message usually indicates an issue on the receiving server. Check the validity |
|
214
|
|
|
|
|
|
|
# of the recipient address, and determine if the receiving server is configured cor- |
|
215
|
|
|
|
|
|
|
# rectly to receive messages. You might have to reduce the number of recipients in |
|
216
|
|
|
|
|
|
|
# the message header for the host about which you're receiving this error. If you |
|
217
|
|
|
|
|
|
|
# send the message again, it's placed in the queue again. If the receiving server is |
|
218
|
|
|
|
|
|
|
# available, the message is delivered. |
|
219
|
|
|
|
|
|
|
['4.4.7', 0, 0, 'message expired'], |
|
220
|
|
|
|
|
|
|
|
|
221
|
|
|
|
|
|
|
# - The email took too long to be successfully delivered, either because the destina- |
|
222
|
|
|
|
|
|
|
# tion server never responded or the sent message generated an NDR error and that NDR |
|
223
|
|
|
|
|
|
|
# couldn't be delivered to the original sender. |
|
224
|
|
|
|
|
|
|
['5.4.300', 0, 0, 'message expired'], |
|
225
|
|
|
|
|
|
|
], |
|
226
|
|
|
|
|
|
|
'mailboxfull' => [ |
|
227
|
|
|
|
|
|
|
# Exchange Server 2019 ---------------------------------------------------------------- |
|
228
|
|
|
|
|
|
|
# - The recipient's mailbox has exceeded its storage quota and is no longer able to ac- |
|
229
|
|
|
|
|
|
|
# cept new messages. For more information about configuring mailbox quotas, see Con- |
|
230
|
|
|
|
|
|
|
# figure storage quotas for a mailbox. |
|
231
|
|
|
|
|
|
|
['5.2.2', 0, 0, 'mailbox full'], |
|
232
|
|
|
|
|
|
|
], |
|
233
|
|
|
|
|
|
|
'mesgtoobig' => [ |
|
234
|
|
|
|
|
|
|
# Exchange Server 2019 ---------------------------------------------------------------- |
|
235
|
|
|
|
|
|
|
# - The message is too large. This error can be generated by the source or destination |
|
236
|
|
|
|
|
|
|
# messaging system. Send the message again without any attachments, or configure a |
|
237
|
|
|
|
|
|
|
# larger message size limit. For more information, see Message size and recipient |
|
238
|
|
|
|
|
|
|
# limits in Exchange Server. |
|
239
|
|
|
|
|
|
|
['5.3.4', 0, 0, 'message size exceeds fixed maximum message size'], |
|
240
|
|
|
|
|
|
|
|
|
241
|
|
|
|
|
|
|
# Previous versions of Exchange Server ------------------------------------------------ |
|
242
|
|
|
|
|
|
|
['5.3.4', 0, 0, 'message too big for system'], |
|
243
|
|
|
|
|
|
|
], |
|
244
|
|
|
|
|
|
|
'networkerror' => [ |
|
245
|
|
|
|
|
|
|
# Exchange Server 2019 ---------------------------------------------------------------- |
|
246
|
|
|
|
|
|
|
# - There's a DNS or network adapter configuration issue on the Exchange server. Verify |
|
247
|
|
|
|
|
|
|
# the internal and external DNS lookup settings for the Exchange by running this com- |
|
248
|
|
|
|
|
|
|
# mand in the Exchange Management Shell: |
|
249
|
|
|
|
|
|
|
# - Get-TransportService | Format-List Name,ExternalDNS*,InternalDNS*; |
|
250
|
|
|
|
|
|
|
# - Get-FrontEndTransportService | Format-List Name,ExternalDNS*,InternalDNS*` |
|
251
|
|
|
|
|
|
|
# You can configure these settings by using the InternalDNS* and ExternalDNS* parame- |
|
252
|
|
|
|
|
|
|
# ters on the Set-TransportService and Set-FrontEndTransportService cmdlets. |
|
253
|
|
|
|
|
|
|
# By default, these settings are used by Send connectors (the default value of the |
|
254
|
|
|
|
|
|
|
# UseExternalDNSServersEnabled parameter value is $false). Check the priority (order) |
|
255
|
|
|
|
|
|
|
# of the network adapters in the operating system of the Exchange server. |
|
256
|
|
|
|
|
|
|
['5.4.4', 0, 0, 'smtpsend.dns.nonexistentdomain; nonexistent domain'], |
|
257
|
|
|
|
|
|
|
|
|
258
|
|
|
|
|
|
|
# - A configuration error has caused an email loop. By default, after 20 iterations of |
|
259
|
|
|
|
|
|
|
# an email loop, Exchange interrupts the loop and generates an NDR. Verify that Inbox |
|
260
|
|
|
|
|
|
|
# rules for the recipient and sender, or forwarding rules on the recipient's mailbox |
|
261
|
|
|
|
|
|
|
# aren't causing this (the message generates a message, which generates another mes- |
|
262
|
|
|
|
|
|
|
# sage, and the process continues indefinitely). |
|
263
|
|
|
|
|
|
|
# Verify the mailbox doesn't have a targetAddress property value in Active Directory |
|
264
|
|
|
|
|
|
|
# (this property corresponds to the ExternalEmailAddress parameter for mail users in |
|
265
|
|
|
|
|
|
|
# Exchange). If you remove Exchange servers, or modify settings related to mail rout- |
|
266
|
|
|
|
|
|
|
# ing an mail flow, be sure to restart the Microsoft Exchange Transport and Exchange |
|
267
|
|
|
|
|
|
|
# Frontend Transport services. |
|
268
|
|
|
|
|
|
|
['5.4.6', 0, 0, 'hop count exceeded - possible mail loop'], |
|
269
|
|
|
|
|
|
|
|
|
270
|
|
|
|
|
|
|
# Exchange Online --------------------------------------------------------------------- |
|
271
|
|
|
|
|
|
|
# - Microsoft 365 or Office 365 is trying to send a message to an email server outside |
|
272
|
|
|
|
|
|
|
# of Microsoft 365 or Office 365, but attempts to connect to it are failing due to a |
|
273
|
|
|
|
|
|
|
# network connection issue at the external server's location. |
|
274
|
|
|
|
|
|
|
# - This error almost always indicates an issue with the receiving server or network |
|
275
|
|
|
|
|
|
|
# outside of Microsoft 365 or Office 365. The error should also include the IP ad- |
|
276
|
|
|
|
|
|
|
# dress of the server or service that's generating the error, which you can use to |
|
277
|
|
|
|
|
|
|
# identify the party responsible for fixing this. |
|
278
|
|
|
|
|
|
|
['4.4.316', 0, 0, 'connection refused'], # [Message=Socket error code 10061] |
|
279
|
|
|
|
|
|
|
|
|
280
|
|
|
|
|
|
|
# - A configuration error has caused an email loop. 5.4.6 is generated by on-premises |
|
281
|
|
|
|
|
|
|
# Exchange server (you'll see this code in hybrid environments). 5.4.14 is generated |
|
282
|
|
|
|
|
|
|
# by Exchange Online. By default, after 20 iterations of an email loop, Exchange in- |
|
283
|
|
|
|
|
|
|
# terrupts the loop and generates an NDR to the sender of the message. |
|
284
|
|
|
|
|
|
|
# - This error occurs when the delivery of a message generates another message in re- |
|
285
|
|
|
|
|
|
|
# sponse. That message then generates a third message, and the process is repeated, |
|
286
|
|
|
|
|
|
|
# creating a loop. To help protect against exhausting system resources, Exchange in- |
|
287
|
|
|
|
|
|
|
# terrupts the mail loop after 20 iterations. Mail loops are typically created be- |
|
288
|
|
|
|
|
|
|
# cause of a configuration error on the sending mail server, the receiving mail serv- |
|
289
|
|
|
|
|
|
|
# er, or both. Check the sender's and the recipient's mailbox rules configuration to |
|
290
|
|
|
|
|
|
|
# determine whether automatic message forwarding is enabled. |
|
291
|
|
|
|
|
|
|
['5.4.4', 0, 0, 'invalid arguments'], |
|
292
|
|
|
|
|
|
|
['5.4.6', 0, 0, 'routing loop detected'], |
|
293
|
|
|
|
|
|
|
['5.4.14', 0, 0, 'routing loop detected'], |
|
294
|
|
|
|
|
|
|
], |
|
295
|
|
|
|
|
|
|
'norelaying' => [ |
|
296
|
|
|
|
|
|
|
# Exchange Server 2019 ---------------------------------------------------------------- |
|
297
|
|
|
|
|
|
|
# - You have an application server or device that's trying to relay messages through |
|
298
|
|
|
|
|
|
|
# Exchange. For more information, see Allow anonymous relay on Exchange servers. The |
|
299
|
|
|
|
|
|
|
# recipient is configured to only accept messages from authenticated (typically, in- |
|
300
|
|
|
|
|
|
|
# ternal) senders. For more information, see Configure message delivery restrictions |
|
301
|
|
|
|
|
|
|
# for a mailbox. |
|
302
|
|
|
|
|
|
|
['5.7.1', 0, 0, 'unable to relay'], |
|
303
|
|
|
|
|
|
|
['5.7.1', 0, 0, 'client was not authenticated'], |
|
304
|
|
|
|
|
|
|
|
|
305
|
|
|
|
|
|
|
# Exchange Online --------------------------------------------------------------------- |
|
306
|
|
|
|
|
|
|
# - The mail server that's generating the error doesn't accept mail for the recipient's |
|
307
|
|
|
|
|
|
|
# domain. This error is caused by mail server or DNS misconfiguration. |
|
308
|
|
|
|
|
|
|
['5.4.1', 0, 0, 'relay access denied'], |
|
309
|
|
|
|
|
|
|
|
|
310
|
|
|
|
|
|
|
# - The sending email system isn't allowed to send a message to an email system where |
|
311
|
|
|
|
|
|
|
# that email system isn't the final destination of the message. |
|
312
|
|
|
|
|
|
|
# - This error occurs when the sending email system tries to send an anonymous message |
|
313
|
|
|
|
|
|
|
# to a receiving email system, and the receiving email system doesn't accept messages |
|
314
|
|
|
|
|
|
|
# for the domain or domains specified in one or more of the recipients. The following |
|
315
|
|
|
|
|
|
|
# are the most common reasons for this error: |
|
316
|
|
|
|
|
|
|
# - A third party tries to use a receiving email system to send spam, and the receiv- |
|
317
|
|
|
|
|
|
|
# ing email system rejects the attempt. By the nature of spam, the sender's email |
|
318
|
|
|
|
|
|
|
# address might have been forged, and the resulting NDR could have been sent to the |
|
319
|
|
|
|
|
|
|
# unsuspecting sender's email address. It's difficult to avoid this situation. |
|
320
|
|
|
|
|
|
|
# - An MX record for a domain points to a receiving email system where that domain is |
|
321
|
|
|
|
|
|
|
# not accepted. The administrator responsible for the specific domain name must |
|
322
|
|
|
|
|
|
|
# correct the MX record or configure the receiving email system to accept messages |
|
323
|
|
|
|
|
|
|
# sent to that domain, or both. |
|
324
|
|
|
|
|
|
|
# - A sending email system or client that should use the receiving email system to |
|
325
|
|
|
|
|
|
|
# relay messages doesn't have the correct permissions to do this. |
|
326
|
|
|
|
|
|
|
['5.7.1', 0, 0, 'unable to relay'], |
|
327
|
|
|
|
|
|
|
|
|
328
|
|
|
|
|
|
|
# - You use an inbound connector to receive messages from your on-premises email envi- |
|
329
|
|
|
|
|
|
|
# ronment, and something has changed in your on-premises environment that makes the |
|
330
|
|
|
|
|
|
|
# inbound connector's configuration incorrect. |
|
331
|
|
|
|
|
|
|
['5.7.64', 0, 0, 'tenantattribution; relay access denied'], |
|
332
|
|
|
|
|
|
|
|
|
333
|
|
|
|
|
|
|
# Previous versions of Exchange Server ------------------------------------------------ |
|
334
|
|
|
|
|
|
|
['5.4.310', 0, 0, 'does not exist'], # DNS domain * does not exist |
|
335
|
|
|
|
|
|
|
], |
|
336
|
|
|
|
|
|
|
'notaccept' => [ |
|
337
|
|
|
|
|
|
|
['4.3.2', 0, 0, 'system not accepting network messages'], |
|
338
|
|
|
|
|
|
|
|
|
339
|
|
|
|
|
|
|
# Exchange Server 2019 ---------------------------------------------------------------- |
|
340
|
|
|
|
|
|
|
# - You're using the ABP Routing agent, and the recipient isn't a member of the global |
|
341
|
|
|
|
|
|
|
# address list that's specified in their address book policy (ABP). For more infor- |
|
342
|
|
|
|
|
|
|
# mation, see Use the Exchange Management Shell to install and configure the Address |
|
343
|
|
|
|
|
|
|
# Book Policy Routing Agent and Address book policies in Exchange Server. |
|
344
|
|
|
|
|
|
|
['5.3.2', 0, 0, 'storedrv.deliver: missing or bad storedriver mdb properties'], |
|
345
|
|
|
|
|
|
|
], |
|
346
|
|
|
|
|
|
|
'policyviolation' => [ |
|
347
|
|
|
|
|
|
|
# - 5.0.350 is a generic catch-all error code for a wide variety of non-specific errors |
|
348
|
|
|
|
|
|
|
# lfrom the recipient's email organization. The specific x-dg-ref header is too long |
|
349
|
|
|
|
|
|
|
# message is related to Rich Text formatted messages. The specific Requested action |
|
350
|
|
|
|
|
|
|
# not taken: policy violation detected (AS345) message is related to nested attach- |
|
351
|
|
|
|
|
|
|
# ments. |
|
352
|
|
|
|
|
|
|
['5.0.350', 0, 0, 'x-dg-ref header is too long'], |
|
353
|
|
|
|
|
|
|
['5.0.350', 0, 0, 'requested action not taken: policy violation detected (as345)'], |
|
354
|
|
|
|
|
|
|
|
|
355
|
|
|
|
|
|
|
# - The message was rejected by a mail flow rule (also known as a transport rule). This |
|
356
|
|
|
|
|
|
|
# enhanced status code range is available when the rule is configured to reject mes- |
|
357
|
|
|
|
|
|
|
# sages (otherwise, the default code that's used is 5.7.1). For more information, see |
|
358
|
|
|
|
|
|
|
# Mail flow rule actions in Exchange Server. |
|
359
|
|
|
|
|
|
|
['5.7.', 900, 999, 'delivery not authorized, message refused'], |
|
360
|
|
|
|
|
|
|
], |
|
361
|
|
|
|
|
|
|
'rejected' => [ |
|
362
|
|
|
|
|
|
|
# Exchange Server 2019 ---------------------------------------------------------------- |
|
363
|
|
|
|
|
|
|
# - There's a problem with the sender's email address. Verify the sender's email ad- |
|
364
|
|
|
|
|
|
|
# dress. |
|
365
|
|
|
|
|
|
|
['5.1.7', 0, 0, 'invalid address'], |
|
366
|
|
|
|
|
|
|
['5.1.7', 0, 0, 'unknown sender address'], |
|
367
|
|
|
|
|
|
|
|
|
368
|
|
|
|
|
|
|
# - A common cause of this NDR is when you use Microsoft Outlook to save an email mes- |
|
369
|
|
|
|
|
|
|
# sage as a file, and then someone opened the message offline and replied to it. The |
|
370
|
|
|
|
|
|
|
# message property only preserves the legacyExchangeDN attribute when Outlook deliv- |
|
371
|
|
|
|
|
|
|
# ers the message, and therefore the lookup could fail. |
|
372
|
|
|
|
|
|
|
# - Either the recipient address is incorrectly formatted, or the recipient couldn't be |
|
373
|
|
|
|
|
|
|
# correctly resolved. The first step in resolving this error is to check the recipi- |
|
374
|
|
|
|
|
|
|
# ent address, and send the message again. |
|
375
|
|
|
|
|
|
|
['5.1.0', 0, 0, 'sender denied'], |
|
376
|
|
|
|
|
|
|
|
|
377
|
|
|
|
|
|
|
# - The account has been blocked for sending too much spam. Typically, this problem oc- |
|
378
|
|
|
|
|
|
|
# curs because the account has been compromised (hacked) by phishing or malware. |
|
379
|
|
|
|
|
|
|
['5.1.8', 0, 0, 'access denied, bad outbound sender'], |
|
380
|
|
|
|
|
|
|
|
|
381
|
|
|
|
|
|
|
# Exchange Online --------------------------------------------------------------------- |
|
382
|
|
|
|
|
|
|
# - The sender of the message isn't allowed to send messages to the recipient. |
|
383
|
|
|
|
|
|
|
# - This error occurs when the sender tries to send a message to a recipient but the |
|
384
|
|
|
|
|
|
|
# sender isn't authorized to do this. This frequently occurs when a sender tries to |
|
385
|
|
|
|
|
|
|
# send messages to a distribution group that has been configured to accept messages |
|
386
|
|
|
|
|
|
|
# only from members of that distribution group or other authorized senders. The send- |
|
387
|
|
|
|
|
|
|
# er must request permission to send messages to the recipient. This error can also |
|
388
|
|
|
|
|
|
|
# occur if an Exchange transport rule rejects a message because the message matched |
|
389
|
|
|
|
|
|
|
# conditions that are configured on the transport rule. |
|
390
|
|
|
|
|
|
|
['5.7.1', 0, 0, 'delivery not authorized'], |
|
391
|
|
|
|
|
|
|
|
|
392
|
|
|
|
|
|
|
# - The sender's message is rejected because the recipient address is set up to reject |
|
393
|
|
|
|
|
|
|
# messages sent from outside of its organization. Only an email admin for the recipi- |
|
394
|
|
|
|
|
|
|
# ent's organization can change this. |
|
395
|
|
|
|
|
|
|
['5.7.12', 0, 0, 'sender was not authenticated by organization'], |
|
396
|
|
|
|
|
|
|
|
|
397
|
|
|
|
|
|
|
# - The sender doesn't have permission to send to the distribution group because the |
|
398
|
|
|
|
|
|
|
# sender isn't in the group's allowed-senders list. Depending how the group is set |
|
399
|
|
|
|
|
|
|
# up, even the group's owner might need to be added to the allowed sender list in or- |
|
400
|
|
|
|
|
|
|
# der to send messages to the group. |
|
401
|
|
|
|
|
|
|
['5.7.124', 0, 0, 'sender not in allowed-senders list'], |
|
402
|
|
|
|
|
|
|
|
|
403
|
|
|
|
|
|
|
# - The recipient address is a group distribution list that is set up to reject mes- |
|
404
|
|
|
|
|
|
|
# sages sent from outside of its organization. Only an email admin for the recipi- |
|
405
|
|
|
|
|
|
|
# ent's organization or the group owner can change this. |
|
406
|
|
|
|
|
|
|
['5.7.133', 0, 0, 'sender not authenticated for group'], |
|
407
|
|
|
|
|
|
|
|
|
408
|
|
|
|
|
|
|
# - The recipient address is a mailbox that is set up to reject messages sent from out- |
|
409
|
|
|
|
|
|
|
# side of its organization. Only an email admin for the recipient's organization can |
|
410
|
|
|
|
|
|
|
# change this. |
|
411
|
|
|
|
|
|
|
['5.7.134', 0, 0, 'sender was not authenticated for mailbox'], |
|
412
|
|
|
|
|
|
|
|
|
413
|
|
|
|
|
|
|
# - The recipient address is a public folder that is set up to reject messages sent |
|
414
|
|
|
|
|
|
|
# from outside of its organization. Only an email admin for the recipient's organiza- |
|
415
|
|
|
|
|
|
|
# tion can change this. |
|
416
|
|
|
|
|
|
|
['5.7.13', 0, 0, 'sender was not authenticated for public folder'], |
|
417
|
|
|
|
|
|
|
['5.7.135', 0, 0, 'sender was not authenticated for public folder'], |
|
418
|
|
|
|
|
|
|
|
|
419
|
|
|
|
|
|
|
# - The recipient address is a mail user that is set up to reject messages sent from |
|
420
|
|
|
|
|
|
|
# outside of its organization. Only an email admin for the recipient's organization |
|
421
|
|
|
|
|
|
|
# can change this. |
|
422
|
|
|
|
|
|
|
['5.7.136', 0, 0, 'sender was not authenticated'], |
|
423
|
|
|
|
|
|
|
|
|
424
|
|
|
|
|
|
|
# - The sending account has been banned due to detected spam activity. |
|
425
|
|
|
|
|
|
|
# - For details, see Fix email delivery issues for error code 451 5.7.500-699 (ASxxx) |
|
426
|
|
|
|
|
|
|
# in Exchange Online. |
|
427
|
|
|
|
|
|
|
# - Verify that any account issues have been resolved, and reset its credentials. To |
|
428
|
|
|
|
|
|
|
# restore this account's ability to send mail, contact support through your regular |
|
429
|
|
|
|
|
|
|
# channel. |
|
430
|
|
|
|
|
|
|
['5.7.', 501, 503, 'access denied, spam abuse detected'], |
|
431
|
|
|
|
|
|
|
|
|
432
|
|
|
|
|
|
|
# - Message was sent without a valid "From" email address. |
|
433
|
|
|
|
|
|
|
# - Office 365 only. Each message must contain a valid email address in the "From" |
|
434
|
|
|
|
|
|
|
# header field. Proper formatting of this address includes angle brackets around the |
|
435
|
|
|
|
|
|
|
# email address, for example, . Without this address Microsoft |
|
436
|
|
|
|
|
|
|
# 365 or Office 365 will reject the message. |
|
437
|
|
|
|
|
|
|
['5.7.512', 0, 0, 'access denied, message must be rfc 5322 section 3.6.2 compliant'], |
|
438
|
|
|
|
|
|
|
|
|
439
|
|
|
|
|
|
|
# - A suspicious number of messages from unprovisioned domains is coming from this ten- |
|
440
|
|
|
|
|
|
|
# ant. |
|
441
|
|
|
|
|
|
|
# - Add and validate any and all domains that you use to send email from Microsoft 365 |
|
442
|
|
|
|
|
|
|
# or Office 365. For more information, see Fix email delivery issues for error codes |
|
443
|
|
|
|
|
|
|
# 5.7.700 through 5.7.750 in Exchange Online. |
|
444
|
|
|
|
|
|
|
['5.7.750', 0, 0, 'service unavailable. client blocked from sending from unregistered domains'], |
|
445
|
|
|
|
|
|
|
|
|
446
|
|
|
|
|
|
|
# Previous versions of Exchange Server ------------------------------------------------ |
|
447
|
|
|
|
|
|
|
['5.7.', 501, 503, 'access denied, banned sender'], |
|
448
|
|
|
|
|
|
|
], |
|
449
|
|
|
|
|
|
|
'securityerror' => [ |
|
450
|
|
|
|
|
|
|
# Exchange Server 2019 ---------------------------------------------------------------- |
|
451
|
|
|
|
|
|
|
# - A firewall or other device is blocking the Extended SMTP command that's required |
|
452
|
|
|
|
|
|
|
# for Exchange Server authentication (X-EXPS). Internal email traffic is flowing |
|
453
|
|
|
|
|
|
|
# through connectors that aren't configured to use the Exchange Server authentication |
|
454
|
|
|
|
|
|
|
# method . Verify the remote IP address ranges on any custom Receive connectors. |
|
455
|
|
|
|
|
|
|
['5.7.3', 0, 0, 'cannot achieve exchange server authentication'], |
|
456
|
|
|
|
|
|
|
['5.7.3', 0, 0, 'not authorized'], |
|
457
|
|
|
|
|
|
|
|
|
458
|
|
|
|
|
|
|
# Exchange Online --------------------------------------------------------------------- |
|
459
|
|
|
|
|
|
|
# - DNSSEC checks have passed, yet upon connection, destination mail server doesn't re- |
|
460
|
|
|
|
|
|
|
# spond to the STARTTLS command. The destination server responds to the STARTTLS com- |
|
461
|
|
|
|
|
|
|
# mand, but the TLS handshake fails. |
|
462
|
|
|
|
|
|
|
# - This message usually indicates an issue on the destination email server. Check the |
|
463
|
|
|
|
|
|
|
# validity of the recipient address. Determine if the destination server is configur- |
|
464
|
|
|
|
|
|
|
# ed correctly to receive the messages. |
|
465
|
|
|
|
|
|
|
['4.7.321', 0, 0, 'starttls-not-supported: destination mail server must support tls to receive mail'], |
|
466
|
|
|
|
|
|
|
['5.7.321', 0, 0, 'starttls-not-supported: destination mail server must support tls to receive mail'], |
|
467
|
|
|
|
|
|
|
|
|
468
|
|
|
|
|
|
|
# - The sending email system didn't authenticate with the receiving email system. The |
|
469
|
|
|
|
|
|
|
# receiving email system requires authentication before message submission. |
|
470
|
|
|
|
|
|
|
# - This error occurs when the receiving server must be authenticated before message |
|
471
|
|
|
|
|
|
|
# submission, and the sending email system hasn't authenticated with the receiving e- |
|
472
|
|
|
|
|
|
|
# mail system. The sending email system administrator must configure the sending e- |
|
473
|
|
|
|
|
|
|
# mail system to authenticate with the receiving email system for delivery to be suc- |
|
474
|
|
|
|
|
|
|
# cessful. |
|
475
|
|
|
|
|
|
|
['5.7.1', 0, 0, 'client was not authenticated'], |
|
476
|
|
|
|
|
|
|
|
|
477
|
|
|
|
|
|
|
# - You configured an application or device to send (relay) email messages in Microsoft |
|
478
|
|
|
|
|
|
|
# 365 or Office 365 using the smtp.office365.com endpoint, and there's a problem with |
|
479
|
|
|
|
|
|
|
# the configuration of the application or device. |
|
480
|
|
|
|
|
|
|
['5.7.57', 0, 0, 'client was not authenticated to send anonymous mail during mail from'], |
|
481
|
|
|
|
|
|
|
], |
|
482
|
|
|
|
|
|
|
'spamdetected' => [ |
|
483
|
|
|
|
|
|
|
# Exchange Server 2019 ---------------------------------------------------------------- |
|
484
|
|
|
|
|
|
|
# - The message was quarantined by content filtering. To configure exceptions to con- |
|
485
|
|
|
|
|
|
|
# tent filtering, see Use the Exchange Management Shell to configure recipient and |
|
486
|
|
|
|
|
|
|
# sender exceptions for content filtering. |
|
487
|
|
|
|
|
|
|
['5.2.1', 0, 0, 'content filter agent quarantined this message'], |
|
488
|
|
|
|
|
|
|
], |
|
489
|
|
|
|
|
|
|
'suspend' => [ |
|
490
|
|
|
|
|
|
|
# Exchange Online --------------------------------------------------------------------- |
|
491
|
|
|
|
|
|
|
# - The recipient address that you're attempting to contact isn't valid. |
|
492
|
|
|
|
|
|
|
# - Verify the recipient's email address, and try again. |
|
493
|
|
|
|
|
|
|
# - If you feel this is in error, contact support. |
|
494
|
|
|
|
|
|
|
['5.7.504', 0, 0, 'recipient address rejected: access denied'], |
|
495
|
|
|
|
|
|
|
['5.7.505', 0, 0, 'access denied, banned recipient'], |
|
496
|
|
|
|
|
|
|
|
|
497
|
|
|
|
|
|
|
# Previous versions of Exchange Server ------------------------------------------------ |
|
498
|
|
|
|
|
|
|
['5.2.1', 0, 0, 'mailbox cannot be accessed'], |
|
499
|
|
|
|
|
|
|
], |
|
500
|
|
|
|
|
|
|
'syntaxerror' => [ |
|
501
|
|
|
|
|
|
|
# Exchange Server 2019 ---------------------------------------------------------------- |
|
502
|
|
|
|
|
|
|
# - Receive connectors that are used for internal mail flow are missing the required |
|
503
|
|
|
|
|
|
|
# Exchange Server authentication mechanism. For more information about authentication |
|
504
|
|
|
|
|
|
|
# on Receive connectors, see Receive connector authentication mechanisms. |
|
505
|
|
|
|
|
|
|
['5.3.3', 0, 0, 'unrecognized command'], |
|
506
|
|
|
|
|
|
|
|
|
507
|
|
|
|
|
|
|
# - SMTP commands are sent out of sequence (for example, a server sends an SMTP command |
|
508
|
|
|
|
|
|
|
# like AUTH or MAIL FROM before identifying itself with the EHLO command). After es- |
|
509
|
|
|
|
|
|
|
# tablishing a connection to a messaging server, the first SMTP command must always |
|
510
|
|
|
|
|
|
|
# be EHLO or HELO. |
|
511
|
|
|
|
|
|
|
['5.5.2', 0, 0, 'send hello first'], |
|
512
|
|
|
|
|
|
|
], |
|
513
|
|
|
|
|
|
|
'systemerror' => [ |
|
514
|
|
|
|
|
|
|
# Exchange Server 2019 ---------------------------------------------------------------- |
|
515
|
|
|
|
|
|
|
# - You've configured a custom Receive connector in the Transport (Hub) service on a |
|
516
|
|
|
|
|
|
|
# Mailbox server that listens on port 25. Typically, custom Receive connectors that |
|
517
|
|
|
|
|
|
|
# listen on port 25 belong in the Front End Transport service on the Mailbox server. |
|
518
|
|
|
|
|
|
|
# Important Exchange server components are inactive. You can confirm this by running |
|
519
|
|
|
|
|
|
|
# the following command in the Exchange Management Shell: |
|
520
|
|
|
|
|
|
|
# Get-ServerComponent -Identity . |
|
521
|
|
|
|
|
|
|
# To restart all inactive components, run the following command: |
|
522
|
|
|
|
|
|
|
# Set-ServerComponentState -Identity -Component ServerWideOffline |
|
523
|
|
|
|
|
|
|
# -State Active -Requester Maintenance. |
|
524
|
|
|
|
|
|
|
# Incompatible transport agents (in particular, after an Exchange update). After you |
|
525
|
|
|
|
|
|
|
# identify the transport agent, disable it or uninstall it. For more information, see |
|
526
|
|
|
|
|
|
|
# Troubleshoot transport agents. |
|
527
|
|
|
|
|
|
|
['4.3.2', 0, 0, 'service not available'], |
|
528
|
|
|
|
|
|
|
['4.3.2', 0, 0, 'service not active'], |
|
529
|
|
|
|
|
|
|
|
|
530
|
|
|
|
|
|
|
# - A mail loop was detected. Verify that the FQDN property on the Receive connector |
|
531
|
|
|
|
|
|
|
# doesn't match the FQDN of another server, service, or device that's used in mail |
|
532
|
|
|
|
|
|
|
# flow in your organization (by default, the Receive connector uses the FQDN of the |
|
533
|
|
|
|
|
|
|
# Exchange server). |
|
534
|
|
|
|
|
|
|
['5.3.5', 0, 0, 'system incorrectly configured'], |
|
535
|
|
|
|
|
|
|
|
|
536
|
|
|
|
|
|
|
# Exchange Online --------------------------------------------------------------------- |
|
537
|
|
|
|
|
|
|
# - Journaling on-premises messages to Microsoft 365 or Office 365 isn't supported for |
|
538
|
|
|
|
|
|
|
# this organization because they haven't turned on Journaling Archive in their set- |
|
539
|
|
|
|
|
|
|
# tings. |
|
540
|
|
|
|
|
|
|
# - A journaling rule is configured in the organization's on-premises environment to |
|
541
|
|
|
|
|
|
|
# journal on-premises messages to Microsoft 365 or Office 365, but Journaling Archive |
|
542
|
|
|
|
|
|
|
# is disabled. For this scenario to work, the organization's Office 365 administrator |
|
543
|
|
|
|
|
|
|
# should either enable Journaling Archive or change the journaling rule to journal |
|
544
|
|
|
|
|
|
|
# messages to a different location. |
|
545
|
|
|
|
|
|
|
['5.3.190', 0, 0, 'journaling on-premises messages to microsoft 365 or office 365 not supported when journaling archive is disabled'], |
|
546
|
|
|
|
|
|
|
|
|
547
|
|
|
|
|
|
|
# Previous versions of Exchange Server ------------------------------------------------ |
|
548
|
|
|
|
|
|
|
['5.0.0', 0, 0, 'helo / ehlo requires domain address'], |
|
549
|
|
|
|
|
|
|
['5.1.4', 0, 0, 'destination mailbox address ambiguous'], |
|
550
|
|
|
|
|
|
|
['5.2.4', 0, 0, 'mailing list expansion problem'], |
|
551
|
|
|
|
|
|
|
['5.2.14', 0, 0, 'misconfigured forwarding address'], |
|
552
|
|
|
|
|
|
|
|
|
553
|
|
|
|
|
|
|
# Undocumented error messages --------------------------------------------------------- |
|
554
|
|
|
|
|
|
|
['4.4.3', 0, 0, 'temporary server error. please try again later attr18'], |
|
555
|
|
|
|
|
|
|
['4.7.0', 0, 0, 'temporary server error. please try again later. prx4 nexthop:'], |
|
556
|
|
|
|
|
|
|
['4.4.24', 0, 0, 'message failed to be replicated: insufficient system resource:'], |
|
557
|
|
|
|
|
|
|
['4.4.25', 0, 0, 'message failed to be replicated: no healthy secondary server available to accept replica at this time.'], |
|
558
|
|
|
|
|
|
|
['4.4.28', 0, 0, 'message failed to be replicated: the operation was canceled'], |
|
559
|
|
|
|
|
|
|
|
|
560
|
|
|
|
|
|
|
# - status=deferred (host hotmail-com.olc.protection.outlook.com[192.0.2.1] said: |
|
561
|
|
|
|
|
|
|
# 451 4.7.500 Server busy. Please try again later from [192.0.2.2]. (AS761) (in reply |
|
562
|
|
|
|
|
|
|
# to RCPT TO command)) |
|
563
|
|
|
|
|
|
|
['4.7.500', 0, 0, 'server busy. please try again later from '], |
|
564
|
|
|
|
|
|
|
|
|
565
|
|
|
|
|
|
|
# - status=deferred (host apc.olc.protection.outlook.com[192.0.2.1] said: |
|
566
|
|
|
|
|
|
|
# 451 4.7.700 PFA agent busy, please try again. [***.***.prod.protection.outlook.com] |
|
567
|
|
|
|
|
|
|
# (in reply to MAIL FROM command)) |
|
568
|
|
|
|
|
|
|
['4.7.700', 0, 0, 'pfa agent busy, please try again.'], |
|
569
|
|
|
|
|
|
|
], |
|
570
|
|
|
|
|
|
|
'systemfull' => [ |
|
571
|
|
|
|
|
|
|
# Exchange Server 2019 ---------------------------------------------------------------- |
|
572
|
|
|
|
|
|
|
# - Free disk space is low (for example, the disk that holds the queue database doesn't |
|
573
|
|
|
|
|
|
|
# have the required amount of free space). For more information, see Understanding |
|
574
|
|
|
|
|
|
|
# back pressure. To move the queue database to a different disk, see Change the loca- |
|
575
|
|
|
|
|
|
|
# tion of the queue database. |
|
576
|
|
|
|
|
|
|
# - Available memory is low (for example, Exchange installed on a virtual machine that |
|
577
|
|
|
|
|
|
|
# is configured to use dynamic memory). Always use static memory on Exchange virtual |
|
578
|
|
|
|
|
|
|
# machines. |
|
579
|
|
|
|
|
|
|
['4.3.1', 0, 0, 'insufficient system resources'], |
|
580
|
|
|
|
|
|
|
], |
|
581
|
|
|
|
|
|
|
'toomanyconn' => [ |
|
582
|
|
|
|
|
|
|
# Exchange Server 2019 ---------------------------------------------------------------- |
|
583
|
|
|
|
|
|
|
# - The combined total of recipients on the To, Cc, and Bcc lines of the message ex- |
|
584
|
|
|
|
|
|
|
# ceeds the total number of recipients allowed in a single message for the organiza- |
|
585
|
|
|
|
|
|
|
# tion, Receive connector, or sender. For more information, see Message size and re- |
|
586
|
|
|
|
|
|
|
# cipient limits in Exchange Server. |
|
587
|
|
|
|
|
|
|
['5.5.3', 0, 0, 'too many recipients'], |
|
588
|
|
|
|
|
|
|
|
|
589
|
|
|
|
|
|
|
# Exchange Online --------------------------------------------------------------------- |
|
590
|
|
|
|
|
|
|
# - The message has more than 200 SMTP envelope recipients from the same domain. |
|
591
|
|
|
|
|
|
|
# - An envelope recipient is the original, unexpanded recipient that's used in the RCPT |
|
592
|
|
|
|
|
|
|
# TO command to transmit the message between SMTP servers. When this error is return- |
|
593
|
|
|
|
|
|
|
# ed by Microsoft 365 or Office 365, the sending server must break up the number of |
|
594
|
|
|
|
|
|
|
# envelope recipients into smaller chunks (chunking) and resend the message. |
|
595
|
|
|
|
|
|
|
['4.5.3', 0, 0, 'too many recipients'], |
|
596
|
|
|
|
|
|
|
|
|
597
|
|
|
|
|
|
|
# Previous versions of Exchange Server ------------------------------------------------ |
|
598
|
|
|
|
|
|
|
['5.2.122', 0, 0, 'the recipient has exceeded their limit for'], |
|
599
|
|
|
|
|
|
|
|
|
600
|
|
|
|
|
|
|
# Exchange Online --------------------------------------------------------------------- |
|
601
|
|
|
|
|
|
|
# - The recipient mailbox's ability to accept messages is being throttled because it's |
|
602
|
|
|
|
|
|
|
# receiving too many messages too quickly. This is done so a single recipient's mail |
|
603
|
|
|
|
|
|
|
# processing doesn't unfairly impact other recipients sharing the same mailbox data- |
|
604
|
|
|
|
|
|
|
# base. |
|
605
|
|
|
|
|
|
|
['4.3.2', 0, 0, 'storedrv.deliver; recipient thread limit exceeded'], |
|
606
|
|
|
|
|
|
|
|
|
607
|
|
|
|
|
|
|
# - The sender has exceeded the recipient rate limit as described in Sending limits. |
|
608
|
|
|
|
|
|
|
# - This could indicate the account has been compromised and is being used to send |
|
609
|
|
|
|
|
|
|
# spam. |
|
610
|
|
|
|
|
|
|
['5.1.90', 0, 0, "your message can't be sent because you've reached your daily limit for message recipients"], |
|
611
|
|
|
|
|
|
|
|
|
612
|
|
|
|
|
|
|
# - The sender has exceeded the recipient rate limit or the message rate limit as de- |
|
613
|
|
|
|
|
|
|
# scribed in Sending limits. |
|
614
|
|
|
|
|
|
|
# - This could indicate the account has been compromised and is being used to send |
|
615
|
|
|
|
|
|
|
# spam. |
|
616
|
|
|
|
|
|
|
['5.2.2', 0, 0, 'submission quota exceeded'], |
|
617
|
|
|
|
|
|
|
|
|
618
|
|
|
|
|
|
|
# - The sender has exceeded the maximum number of messages they're allowed to send per |
|
619
|
|
|
|
|
|
|
# hour to a specific recipient in Exchange Online. |
|
620
|
|
|
|
|
|
|
# - The automated mailer or sender should try again later, and reduce the number of |
|
621
|
|
|
|
|
|
|
# messages they send per hour to a specific recipient. This limit helps protect |
|
622
|
|
|
|
|
|
|
# Microsoft 365 or Office 365 users from rapidly filling their inboxes with a large |
|
623
|
|
|
|
|
|
|
# number of messages from errant automated notification systems or other single-send- |
|
624
|
|
|
|
|
|
|
# er mail storms. |
|
625
|
|
|
|
|
|
|
['5.2.121', 0, 0, "recipient's per hour message receive limit from specific sender exceeded"], |
|
626
|
|
|
|
|
|
|
|
|
627
|
|
|
|
|
|
|
# - The Microsoft 365 or Office 365 recipient has exceeded the number of messages they |
|
628
|
|
|
|
|
|
|
# can receive per hour from all senders. |
|
629
|
|
|
|
|
|
|
# - The automated mailer or sender should try again later, and reduce the number of |
|
630
|
|
|
|
|
|
|
# messages they send per hour to a specific recipient. This limit helps protect |
|
631
|
|
|
|
|
|
|
# Microsoft 365 and Office 365 users from rapidly filling their inboxes with a large |
|
632
|
|
|
|
|
|
|
# number of messages from errant automated notification systems or other mail storms. |
|
633
|
|
|
|
|
|
|
['5.2.122', 0, 0, "recipient's per hour message receive limit exceeded"], |
|
634
|
|
|
|
|
|
|
|
|
635
|
|
|
|
|
|
|
# - Access denied, [$SenderIPAddress] has exceeded permitted limits within $range range |
|
636
|
|
|
|
|
|
|
# - The sender's IPv6 range has attempted to send too many messages in too short a time |
|
637
|
|
|
|
|
|
|
# period. |
|
638
|
|
|
|
|
|
|
['5.7.508', 0, 0, 'has exceeded permitted limits within'], |
|
639
|
|
|
|
|
|
|
|
|
640
|
|
|
|
|
|
|
# - The majority of traffic from this tenant has been detected as suspicious and has |
|
641
|
|
|
|
|
|
|
# resulted in a ban on sending ability for the tenant. |
|
642
|
|
|
|
|
|
|
# - Ensure that any compromises or open relays have been resolved, and then contact |
|
643
|
|
|
|
|
|
|
# support through your regular channel. For more information, see Fix email delivery |
|
644
|
|
|
|
|
|
|
# issues for error codes 5.7.700 through 5.7.750 in Exchange Online. |
|
645
|
|
|
|
|
|
|
['5.7.', 700, 749, 'access denied, tenant has exceeded threshold'], |
|
646
|
|
|
|
|
|
|
['5.7.', 700, 749, 'access denied, traffic not accepted from this ip'], |
|
647
|
|
|
|
|
|
|
], |
|
648
|
|
|
|
|
|
|
'userunknown' => [ |
|
649
|
|
|
|
|
|
|
# Exchange Server 2019 ---------------------------------------------------------------- |
|
650
|
|
|
|
|
|
|
# - The recipient's email address is incorrect (the recipient doesn't exist in the des- |
|
651
|
|
|
|
|
|
|
# tination messaging system). Verify the recipient's email address. You recreated a |
|
652
|
|
|
|
|
|
|
# deleted mailbox, and internal users are addressing email messages in Outlook or |
|
653
|
|
|
|
|
|
|
# Outlook on the web using old entries in their autocomplete cache (the X.500 values |
|
654
|
|
|
|
|
|
|
# or LegacyExchangeDN values for the recipient are now different). Tell users to de- |
|
655
|
|
|
|
|
|
|
# lete the entry from their autocomplete cache and select the recipient again. |
|
656
|
|
|
|
|
|
|
['5.1.1', 0, 0, 'resolver.adr.exrecipnotfound; not found'], |
|
657
|
|
|
|
|
|
|
['5.1.1', 0, 0, 'user unknown'], |
|
658
|
|
|
|
|
|
|
|
|
659
|
|
|
|
|
|
|
# - The recipient's email address is incorrect (for example, it contains unsupported |
|
660
|
|
|
|
|
|
|
# characters or invalid formatting). |
|
661
|
|
|
|
|
|
|
['5.1.3', 0, 0, 'storedrv.submit; invalid recipient address'], |
|
662
|
|
|
|
|
|
|
|
|
663
|
|
|
|
|
|
|
# - Receive connectors reject SMTP connections that contain the top level domains de- |
|
664
|
|
|
|
|
|
|
# fined in RFC 2606 (.test, .example, .invalid, or .localhost), This behavior is con- |
|
665
|
|
|
|
|
|
|
# trolled by the RejectReservedTopLevelRecipientDomains parameter on the New-Receive- |
|
666
|
|
|
|
|
|
|
# Connector and Set-ReceiveConnector cmdlets. |
|
667
|
|
|
|
|
|
|
['5.1.', 4, 5, 'recipient address reserved by rfc 2606'], |
|
668
|
|
|
|
|
|
|
|
|
669
|
|
|
|
|
|
|
# - Receive connectors reject SMTP connections that contain single label domains (for |
|
670
|
|
|
|
|
|
|
# example, chris@contoso instead of chris@contoso.com) This behavior is controlled by |
|
671
|
|
|
|
|
|
|
# the RejectSingleLabelRecipientDomains parameter on the New-ReceiveConnector and |
|
672
|
|
|
|
|
|
|
# Set-ReceiveConnector cmdlets. |
|
673
|
|
|
|
|
|
|
['5.1.6', 0, 0, 'recipient addresses in single label domains not accepted'], |
|
674
|
|
|
|
|
|
|
|
|
675
|
|
|
|
|
|
|
# Exchange Online --------------------------------------------------------------------- |
|
676
|
|
|
|
|
|
|
# - This failure might be caused by the following conditions: |
|
677
|
|
|
|
|
|
|
# - The recipient's email address was entered incorrectly by the sender. |
|
678
|
|
|
|
|
|
|
# - No recipient's exists in the destination email system. |
|
679
|
|
|
|
|
|
|
# - The recipient's mailbox has been moved and the Outlook recipient cache on the |
|
680
|
|
|
|
|
|
|
# sender's computer hasn't updated. |
|
681
|
|
|
|
|
|
|
# - An invalid legacy domain name (DN) exists for the recipient's mailbox Active Di- |
|
682
|
|
|
|
|
|
|
# rectory Domain Service. |
|
683
|
|
|
|
|
|
|
# - This error typically occurs when the sender of the message incorrectly enters the |
|
684
|
|
|
|
|
|
|
# email address of the recipient. The sender should check the recipient's email ad- |
|
685
|
|
|
|
|
|
|
# dress and send again. This error can also occur if the recipient email address was |
|
686
|
|
|
|
|
|
|
# correct in the past but has changed or has been removed from the destination email |
|
687
|
|
|
|
|
|
|
# system. If the sender of the message is in the same organization as the recipient, |
|
688
|
|
|
|
|
|
|
# and the recipient's mailbox still exists, determine whether the recipient's mailbox |
|
689
|
|
|
|
|
|
|
# has been relocated to a new email server. If this is the case, Outlook might not |
|
690
|
|
|
|
|
|
|
# have updated the recipient cache correctly. Instruct the sender to remove the re- |
|
691
|
|
|
|
|
|
|
# cipient's address from sender's Outlook recipient cache and then create a new mes- |
|
692
|
|
|
|
|
|
|
# sage. Resending the original message will result in the same failure. |
|
693
|
|
|
|
|
|
|
['5.1.1', 0, 0, 'bad destination mailbox address'], |
|
694
|
|
|
|
|
|
|
|
|
695
|
|
|
|
|
|
|
# - The recipient's wasn't found by SMTP address lookup. |
|
696
|
|
|
|
|
|
|
['5.1.10', 0, 0, 'recipient not found'], |
|
697
|
|
|
|
|
|
|
|
|
698
|
|
|
|
|
|
|
# - The recipient's address doesn't exist. |
|
699
|
|
|
|
|
|
|
['5.4.1', 0, 0, 'recipient address rejected: access denied'], |
|
700
|
|
|
|
|
|
|
|
|
701
|
|
|
|
|
|
|
# - The recipient's domain is @hotmail.com or @outlook.com and it wasn't |
|
702
|
|
|
|
|
|
|
# found by SMTP address lookup. |
|
703
|
|
|
|
|
|
|
# - Similar to 550 5.1.10. |
|
704
|
|
|
|
|
|
|
['5.5.0', 0, 0, 'requested action not taken: mailbox unavailable'], |
|
705
|
|
|
|
|
|
|
|
|
706
|
|
|
|
|
|
|
# Previous versions of Exchange Server ------------------------------------------------ |
|
707
|
|
|
|
|
|
|
['5.1.2', 0, 0, 'invalid x.400 address'], |
|
708
|
|
|
|
|
|
|
], |
|
709
|
|
|
|
|
|
|
}; |
|
710
|
|
|
|
|
|
|
|
|
711
|
24
|
|
|
|
|
118
|
my $statuscode = $argvs->deliverystatus; |
|
712
|
24
|
|
|
|
|
216
|
my $thirddigit = int [split /[.]/, $statuscode]->[-1]; |
|
713
|
24
|
|
|
|
|
103
|
my $esmtperror = lc $argvs->diagnosticcode; |
|
714
|
24
|
|
|
|
|
151
|
my $reasontext = ''; |
|
715
|
|
|
|
|
|
|
|
|
716
|
24
|
|
|
|
|
199
|
REASON: for my $e ( keys %$messagesof ) { |
|
717
|
|
|
|
|
|
|
# The key is a reason name |
|
718
|
370
|
|
|
|
|
395
|
for my $f ( @{ $messagesof->{ $e } } ) { |
|
|
370
|
|
|
|
|
633
|
|
|
719
|
|
|
|
|
|
|
# ["status-code", min, max, "error message"] |
|
720
|
2198
|
100
|
|
|
|
3444
|
if( $f->[1] == $f->[2] ) { |
|
721
|
|
|
|
|
|
|
# This error code have no range |
|
722
|
2032
|
100
|
|
|
|
3415
|
next unless $statuscode eq $f->[0]; |
|
723
|
|
|
|
|
|
|
|
|
724
|
|
|
|
|
|
|
} else { |
|
725
|
|
|
|
|
|
|
# This error code has a range |
|
726
|
166
|
100
|
|
|
|
383
|
next if index($statuscode, $f->[0]) < 0; |
|
727
|
28
|
100
|
|
|
|
94
|
next if $thirddigit < $f->[1]; |
|
728
|
19
|
100
|
|
|
|
65
|
next if $thirddigit > $f->[2]; |
|
729
|
|
|
|
|
|
|
} |
|
730
|
|
|
|
|
|
|
|
|
731
|
34
|
100
|
|
|
|
144
|
next unless index($esmtperror, $f->[3]) > -1; |
|
732
|
24
|
|
|
|
|
41
|
$reasontext = $e; |
|
733
|
24
|
|
|
|
|
97
|
last REASON; |
|
734
|
|
|
|
|
|
|
} |
|
735
|
|
|
|
|
|
|
} |
|
736
|
|
|
|
|
|
|
|
|
737
|
24
|
|
|
|
|
115
|
return $reasontext; |
|
738
|
|
|
|
|
|
|
} |
|
739
|
|
|
|
|
|
|
|
|
740
|
|
|
|
|
|
|
1; |
|
741
|
|
|
|
|
|
|
__END__ |