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