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
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9d89dd2f4e8e0109134dcac00b7717d814fb0414
|
4
|
+
data.tar.gz: 93dabd9d8f6be60c32345b4d8d77128dc713de5e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d5f93246b27ad5ca2087b2c01bc46efb5d1181b1edc758ab42d4cbef42b1ecee0a891855216281eb1f0c1887d4e652c5ea4660c1b1053b6ced70e6d268c6df28
|
7
|
+
data.tar.gz: 372715bcccd25217142df9b03822304b6bc88a1d2dd0d513481e124cde30aafc9ae9feab56ea82057209e90cdbed53673c2ff4d914ad1ee5e8802d431d6f1361
|
data/ChangeLog.md
CHANGED
@@ -3,6 +3,52 @@ RELEASE NOTES for Ruby version of Sisimai
|
|
3
3
|
- releases: "https://github.com/sisimai/rb-sisimai/releases"
|
4
4
|
- download: "https://rubygems.org/gems/sisimai"
|
5
5
|
|
6
|
+
v4.25.15
|
7
|
+
--------------------------------------------------------------------------------
|
8
|
+
- release: "Thu, 22 Dec 2022 13:13:13 +0900 (JST)"
|
9
|
+
- version: "4.25.15"
|
10
|
+
- changes:
|
11
|
+
- Prevent ReDOS: Regex Denial of Service in `Sisimai::String.to_plain` #244.
|
12
|
+
Thanks to @gmcabrita
|
13
|
+
- Fix an error reason "5.2.1 exceedlimit" of an error message: "450-4.2.1 The
|
14
|
+
user you are trying to contact is receiving mail at a rate that prevents ad-
|
15
|
+
ditional messages from being delivered" to "toomanyconn" at Rhost::GoogleApp
|
16
|
+
class, imported from sisimai/p5-sisimai#465.
|
17
|
+
- Bug fix: getting a "name" part of an email address at Sisimai::Address.find
|
18
|
+
- Add many error message patterns at the following classes in `Sisimai/Reason`
|
19
|
+
- `Blocked`
|
20
|
+
- `ContentError`
|
21
|
+
- `Filtered`
|
22
|
+
- `NetworkError`
|
23
|
+
- `NotAccept`
|
24
|
+
- `PolicyViolation`
|
25
|
+
- `Rejected`
|
26
|
+
- `SpamDetected`
|
27
|
+
- `TooManyConn`
|
28
|
+
- `UserUnknown`
|
29
|
+
- When the value of `diagnosticcode` has enough error message for detecting a
|
30
|
+
bounce reason, `expired` will change to `networkerror`
|
31
|
+
- Update code in `Sisimai::Lhost::GoogleGroups` module to parse well a bounce
|
32
|
+
mail even if an email address of `X-Failed-Recipients:` header does not in-
|
33
|
+
clude a domain `@googlegroups.com` #234
|
34
|
+
- Import #235 from Sisimai v5, Implement `Sisimai::Rhost::NTTDOCOMO` to parse
|
35
|
+
more strictly a bounce mail returned from `mfsmax.docomo.ne.jp`
|
36
|
+
- Import #241 from Sisimai v5, Implement `Sisimai::Rhost::Mimecast`
|
37
|
+
- Add the following error messages at `Sisimai::Rhost::ExchangeOnline:
|
38
|
+
- 451 4.7.650 The mail server [...] has been temporarily rate limited due to
|
39
|
+
IP reputation ... (S775)
|
40
|
+
- 550 5.7.1 ... Please contact your Internet service provider since part of
|
41
|
+
their network is on our block list (S3150)
|
42
|
+
- Error messages of Exchange Server 2019 #242
|
43
|
+
- Add many error messages at `Sisimai::Rhost::GoogleApps`, Import #243
|
44
|
+
|
45
|
+
v4.25.14
|
46
|
+
--------------------------------------------------------------------------------
|
47
|
+
- release: "Mon, 15 Aug 2022 14:22:22 +0900 (JST)"
|
48
|
+
- version: "4.25.14"
|
49
|
+
- changes:
|
50
|
+
- Nothing changed, follow the Perl version of Sisimai 4.25.14.
|
51
|
+
|
6
52
|
v4.25.13
|
7
53
|
--------------------------------------------------------------------------------
|
8
54
|
- release: "Mon, 1 Aug 2022 16:05:55 +0900 (JST)"
|
data/README-JA.md
CHANGED
@@ -220,7 +220,7 @@ Differences between Ruby version and Perl version
|
|
220
220
|
| メール解析速度(1000通のメール) | 2.22秒[2] | 1.35秒 |
|
221
221
|
| インストール方法 | gem install | cpanm, cpm |
|
222
222
|
| 依存モジュール数(コアモジュールを除く) | 1モジュール | 2モジュール |
|
223
|
-
| LOC:ソースコードの行数 |
|
223
|
+
| LOC:ソースコードの行数 | 10600行 | 10800行 |
|
224
224
|
| テスト件数(spec/,t/,xt/ディレクトリ) | 241000件 | 270000件 |
|
225
225
|
| ライセンス | 二条項BSD | 二条項BSD |
|
226
226
|
| 開発会社によるサポート契約 | 提供中 | 提供中 |
|
@@ -276,7 +276,7 @@ Author
|
|
276
276
|
|
277
277
|
Copyright
|
278
278
|
===============================================================================
|
279
|
-
Copyright (C) 2015-
|
279
|
+
Copyright (C) 2015-2022 azumakuniyuki, All Rights Reserved.
|
280
280
|
|
281
281
|
License
|
282
282
|
===============================================================================
|
data/README.md
CHANGED
@@ -225,7 +225,7 @@ and bounceHammer are available at
|
|
225
225
|
| The speed of parsing email(1000 emails) | 2.22s[2] | 1.35s |
|
226
226
|
| How to install | gem install | cpanm, cpm |
|
227
227
|
| Dependencies (Except core modules) | 1 module | 2 modules |
|
228
|
-
| LOC:Source lines of code |
|
228
|
+
| LOC:Source lines of code | 10600 lines | 10800 lines |
|
229
229
|
| The number of tests(spec/,t/,xt/) directory | 241000 tests | 270000 tests |
|
230
230
|
| License | BSD 2-Clause | BSD 2-Clause |
|
231
231
|
| Support Contract provided by Developer | Available | Available |
|
@@ -283,7 +283,7 @@ Author
|
|
283
283
|
|
284
284
|
Copyright
|
285
285
|
===============================================================================
|
286
|
-
Copyright (C) 2015-
|
286
|
+
Copyright (C) 2015-2022 azumakuniyuki, All Rights Reserved.
|
287
287
|
|
288
288
|
License
|
289
289
|
===============================================================================
|
data/lib/sisimai/address.rb
CHANGED
data/lib/sisimai/data.rb
CHANGED
@@ -256,13 +256,17 @@ module Sisimai
|
|
256
256
|
if vm > 2
|
257
257
|
# Build regular expression for removing string like '550-5.1.1'
|
258
258
|
# from the value of "diagnosticcode"
|
259
|
-
|
259
|
+
re0 = %r/;?[ ]#{vr}[- ](?:#{vs})?/
|
260
|
+
re1 = %r/;?[ ][45]\d\d[- ](?:#{vs})?/
|
261
|
+
re2 = %r/;?[ ]#{vr}[- ](?:[45][.]\d[.]\d+)?/
|
260
262
|
|
261
263
|
# 550-5.7.1 [192.0.2.222] Our system has detected that this message is
|
262
264
|
# 550-5.7.1 likely unsolicited mail. To reduce the amount of spam sent to Gmail,
|
263
265
|
# 550-5.7.1 this message has been blocked. Please visit
|
264
266
|
# 550 5.7.1 https://support.google.com/mail/answer/188131 for more information.
|
265
|
-
p['diagnosticcode'] = p['diagnosticcode'].gsub(
|
267
|
+
p['diagnosticcode'] = p['diagnosticcode'].gsub(re0, ' ')
|
268
|
+
p['diagnosticcode'] = p['diagnosticcode'].gsub(re1, ' ')
|
269
|
+
p['diagnosticcode'] = p['diagnosticcode'].gsub(re2, ' ')
|
266
270
|
p['diagnosticcode'] = Sisimai::String.sweep(p['diagnosticcode'].sub(%r|<html>.+</html>|i, ''))
|
267
271
|
end
|
268
272
|
end
|
@@ -22,20 +22,21 @@ module Sisimai::Lhost
|
|
22
22
|
'RCP-P2', # The attempted recipient's preferences prevent messages from being delivered.
|
23
23
|
'RCP-P3', # The attempted recipient's privacy settings blocked the delivery.
|
24
24
|
],
|
25
|
+
'blocked' => [
|
26
|
+
'POL-P1', # Your mail server's IP Address is listed on the Spamhaus PBL.
|
27
|
+
'POL-P2', # Facebook will no longer accept mail from your mail server's IP Address.
|
28
|
+
],
|
25
29
|
'mesgtoobig' => [
|
26
30
|
'MSG-P1', # The message exceeds Facebook's maximum allowed size.
|
27
31
|
'INT-P2', # The message exceeds Facebook's maximum allowed size.
|
28
32
|
],
|
29
33
|
'contenterror' => [
|
30
34
|
'MSG-P2', # The message contains an attachment type that Facebook does not accept.
|
31
|
-
'MSG-P3', # The message contains multiple instances of a header field that can only be present once.
|
35
|
+
'MSG-P3', # The message contains multiple instances of a header field that can only be present once.
|
32
36
|
'POL-P6', # The message contains a url that has been blocked by Facebook.
|
33
37
|
'POL-P7', # The message does not comply with Facebook's abuse policies and will not be accepted.
|
34
38
|
],
|
35
39
|
'securityerror' => [
|
36
|
-
'POL-P1', # Your mail server's IP Address is listed on the Spamhaus PBL.
|
37
|
-
'POL-P2', # Facebook will no longer accept mail from your mail server's IP Address.
|
38
|
-
'POL-P5', # The message contains a virus.
|
39
40
|
'POL-P7', # The message does not comply with Facebook's Domain Authentication requirements.
|
40
41
|
],
|
41
42
|
'notaccept' => [
|
@@ -54,17 +55,20 @@ module Sisimai::Lhost
|
|
54
55
|
],
|
55
56
|
'systemerror' => [
|
56
57
|
'CON-T1', # Facebook's mail server currently has too many connections open to allow another one.
|
58
|
+
'RCP-T1', # The attempted recipient address is not currently available due to an internal system issue. This is a temporary condition.
|
59
|
+
],
|
60
|
+
'virusdetected' => [
|
61
|
+
'POL-P5', # The message contains a virus.
|
57
62
|
],
|
58
63
|
'toomanyconn' => [
|
64
|
+
'CON-T2', # Your mail server currently has too many connections open to Facebook's mail servers.
|
59
65
|
'CON-T3', # Your mail server has opened too many new connections to Facebook's mail servers in a short period of time.
|
60
66
|
],
|
61
67
|
'suspend' => [
|
62
68
|
'RCP-T4', # The attempted recipient address is currently deactivated. The user may or may not reactivate it.
|
63
69
|
],
|
64
70
|
'undefined' => [
|
65
|
-
'RCP-T1', # The attempted recipient address is not currently available due to an internal system issue. This is a temporary condition.
|
66
71
|
'MSG-T1', # The number of recipients on the message exceeds Facebook's allowed maximum.
|
67
|
-
'CON-T2', # Your mail server currently has too many connections open to Facebook's mail servers.
|
68
72
|
'CON-T4', # Your mail server has exceeded the maximum number of recipients for its current connection.
|
69
73
|
],
|
70
74
|
}.freeze
|
@@ -19,7 +19,7 @@ module Sisimai::Lhost
|
|
19
19
|
return nil unless mhead['from'].end_with?('<mailer-daemon@googlemail.com>')
|
20
20
|
return nil unless mhead['subject'].start_with?('Delivery Status Notification')
|
21
21
|
return nil unless mhead['x-failed-recipients']
|
22
|
-
return nil unless mhead['x-
|
22
|
+
return nil unless mhead['x-google-smtp-source']
|
23
23
|
|
24
24
|
# Hello kijitora@libsisimai.org,
|
25
25
|
#
|
@@ -55,7 +55,6 @@ module Sisimai::Lhost
|
|
55
55
|
|
56
56
|
mhead['x-failed-recipients'].split(',').each do |e|
|
57
57
|
# X-Failed-Recipients: neko@example.jp, nyaan@example.org, ...
|
58
|
-
next unless e.end_with?('@googlegroups.com')
|
59
58
|
next unless Sisimai::RFC5322.is_emailaddress(e)
|
60
59
|
|
61
60
|
if v['recipient']
|
@@ -21,7 +21,7 @@ module Sisimai::Lhost
|
|
21
21
|
'hostunknown' => %r/Unknown host/,
|
22
22
|
'userunknown' => %r/\A(?:Unknown user|Invalid final delivery userid)/,
|
23
23
|
'mailboxfull' => %r/\AUser mailbox exceeds allowed size/,
|
24
|
-
'
|
24
|
+
'virusdetected' => %r/\ARequested action not taken: virus detected/,
|
25
25
|
'undefined' => %r/\Aundeliverable to /,
|
26
26
|
'expired' => %r/\ADelivery failed \d+ attempts/,
|
27
27
|
}.freeze
|
data/lib/sisimai/message.rb
CHANGED
@@ -245,7 +245,7 @@ module Sisimai
|
|
245
245
|
# Decode BASE64 Encoded message body, rewrite.
|
246
246
|
mesgformat = (mailheader['content-type'] || '').downcase
|
247
247
|
ctencoding = (mailheader['content-transfer-encoding'] || '').downcase
|
248
|
-
if mesgformat.start_with?('text/
|
248
|
+
if mesgformat.start_with?('text/')
|
249
249
|
# Content-Type: text/plain; charset=UTF-8
|
250
250
|
if ctencoding == 'base64'
|
251
251
|
# Content-Transfer-Encoding: base64
|
@@ -51,11 +51,12 @@ module Sisimai
|
|
51
51
|
|does[ ]not[ ]exist:
|
52
52
|
)
|
53
53
|
|dns[ ]lookup[ ]failure:[ ][^ ]+[ ]try[ ]again[ ]later
|
54
|
-
|dnsbl:attrbl
|
54
|
+
|dnsbl:(?:attrbl|rbl[ ]\d+[<][ ].+[ ][>]_is_blocked)
|
55
55
|
|dynamic/zombied/spam[ ]ips[ ]blocked
|
56
56
|
|email[ ]blocked[ ]by[ ](?:[^ ]+[.]barracudacentral[.]org|spamhaus)
|
57
57
|
|error:[ ]no[ ]valid[ ]recipients[ ]from[ ]
|
58
58
|
|esmtp[ ]not[ ]accepting[ ]connections # icloud.com
|
59
|
+
|extreme[ ]bad[ ]ip[ ]profile
|
59
60
|
|fix[ ]reverse[ ]dns[ ]for[ ][^ ]+
|
60
61
|
|go[ ]away
|
61
62
|
|helo[ ]command[ ]rejected:
|
@@ -11,6 +11,7 @@ module Sisimai
|
|
11
11
|
# Imported from p5-Sisimail/lib/Sisimai/Reason/ContentError.pm
|
12
12
|
class << self
|
13
13
|
Index = [
|
14
|
+
'header size exceeds maximum permitted',
|
14
15
|
'improper use of 8-bit data in message header',
|
15
16
|
'message header size, or recipient list, exceeds policy limit',
|
16
17
|
'message mime complexity exceeds the policy maximum',
|
@@ -19,6 +19,7 @@ module Sisimai
|
|
19
19
|
'has restricted sms e-mail', # AT&T
|
20
20
|
'is not accepting any mail',
|
21
21
|
'message rejected due to user rules',
|
22
|
+
'not found recipient account',
|
22
23
|
'refused due to recipient preferences', # Facebook
|
23
24
|
'resolver.rst.notauthorized', # Microsoft Exchange
|
24
25
|
'this account is protected by',
|
@@ -18,6 +18,7 @@ module Sisimai
|
|
18
18
|
'dns records for the destination computer could not be found',
|
19
19
|
'hop count exceeded - possible mail loop',
|
20
20
|
'host is unreachable',
|
21
|
+
'host name lookup failure',
|
21
22
|
'host not found, try again',
|
22
23
|
'mail forwarding loop for ',
|
23
24
|
'malformed name server reply',
|
@@ -13,6 +13,7 @@ module Sisimai
|
|
13
13
|
class << self
|
14
14
|
# Destination mail server does not accept any message
|
15
15
|
Index = [
|
16
|
+
'does not accept mail (nullmx)',
|
16
17
|
'host/domain does not accept mail', # iCloud
|
17
18
|
'host does not accept mail', # Sendmail
|
18
19
|
'name server: .: host not found', # Sendmail
|
@@ -32,10 +32,12 @@ module Sisimai
|
|
32
32
|
'message bounced due to organizational settings',
|
33
33
|
'message given low priority',
|
34
34
|
'message not accepted for policy reasons',
|
35
|
+
'message rejected due to local policy',
|
35
36
|
'messages with multiple addresses',
|
36
37
|
'rejected for policy reasons',
|
37
38
|
'protocol violation',
|
38
39
|
'the email address used to send your message is not subscribed to this group',
|
40
|
+
'the message was rejected by organization policy',
|
39
41
|
'this message was blocked because its content presents a potential',
|
40
42
|
'we do not accept messages containing images or other attachments',
|
41
43
|
'you have exceeded the allowable number of posts without solving a captcha',
|
@@ -28,6 +28,7 @@ module Sisimai
|
|
28
28
|
'batv failed to verify', # SoniWall
|
29
29
|
'batv validation failure', # SoniWall
|
30
30
|
'backscatter protection detected an invalid or expired email address', # MDaemon
|
31
|
+
"because the sender isn't on the recipient's list of senders to accept mail from",
|
31
32
|
'bogus mail from', # IMail - block empty sender
|
32
33
|
'connections not accepted from servers without a valid sender domain',
|
33
34
|
'denied [bouncedeny]', # McAfee
|
@@ -35,6 +36,7 @@ module Sisimai
|
|
35
36
|
'delivery not authorized, message refused',
|
36
37
|
'does not exist e2110',
|
37
38
|
'domain of sender address ',
|
39
|
+
'email address is on senderfilterconfig list',
|
38
40
|
'emetteur invalide',
|
39
41
|
'empty envelope senders not allowed',
|
40
42
|
'envelope blocked – ',
|
@@ -55,6 +57,7 @@ module Sisimai
|
|
55
57
|
'rule imposed mailbox access for', # MailMarshal
|
56
58
|
'sender address has been blacklisted',
|
57
59
|
'sender email address rejected',
|
60
|
+
'sender is in my black list',
|
58
61
|
'sender is spammer',
|
59
62
|
'sender not pre-approved',
|
60
63
|
'sender rejected',
|
@@ -65,7 +68,9 @@ module Sisimai
|
|
65
68
|
'this server does not accept mail from',
|
66
69
|
'transaction failed unsigned dsn for',
|
67
70
|
'unroutable sender address',
|
71
|
+
'you are not allowed to post to this mailing list',
|
68
72
|
'you are sending to/from an address that has been blacklisted',
|
73
|
+
'your access to submit messages to this e-mail system has been rejected'
|
69
74
|
]
|
70
75
|
|
71
76
|
def text; return 'rejected'; end
|
@@ -46,12 +46,15 @@ module Sisimai
|
|
46
46
|
|may[ ]consider[ ]spam
|
47
47
|
|message[ ](?:
|
48
48
|
considered[ ]as[ ]spam[ ]or[ ]virus
|
49
|
+
|contains[ ]spam[ ]or[ ]virus
|
49
50
|
|content[ ]rejected
|
51
|
+
|detected[ ]as[ ]spam
|
50
52
|
|filtered
|
51
53
|
|filtered[.][ ](?:
|
52
54
|
please[ ]see[ ]the[ ]faqs[ ]section[ ]on[ ]spam
|
53
55
|
|refer[ ]to[ ]the[ ]troubleshooting[ ]page[ ]at[ ]
|
54
56
|
)
|
57
|
+
|is[ ]being[ ]rejected[ ]as[ ]it[ ]seems[ ]to[ ]be[ ]a[ ]spam
|
55
58
|
|looks[ ]like[ ]spam
|
56
59
|
|refused[ ]by[ ](?:
|
57
60
|
mailmarshal[ ]spamprofiler
|
@@ -99,6 +102,7 @@ module Sisimai
|
|
99
102
|
|spambouncer[ ]identified[ ]spam # SpamBouncer identified SPAM
|
100
103
|
|spamming[ ]not[ ]allowed
|
101
104
|
|too[ ]much[ ]spam[.] # Earthlink
|
105
|
+
|the[ ]email[ ]message[ ]was[ ]detected[ ]as[ ]spam
|
102
106
|
|the[ ]message[ ](?:
|
103
107
|
has[ ]been[ ]rejected[ ]by[ ]spam[ ]filtering[ ]engine
|
104
108
|
|was[ ]rejected[ ]due[ ]to[ ]classification[ ]as[ ]bulk[ ]mail
|
@@ -16,13 +16,14 @@ module Sisimai
|
|
16
16
|
module UserUnknown
|
17
17
|
# Imported from p5-Sisimail/lib/Sisimai/Reason/UserUnknown.pm
|
18
18
|
class << self
|
19
|
-
PreMatches = %w[NoRelaying Blocked MailboxFull HasMoved Rejected]
|
19
|
+
PreMatches = %w[NoRelaying Blocked MailboxFull HasMoved Rejected NotAccept]
|
20
20
|
ModulePath = {
|
21
21
|
'Sisimai::Reason::NoRelaying' => 'sisimai/reason/norelaying',
|
22
22
|
'Sisimai::Reason::Blocked' => 'sisimai/reason/blocked',
|
23
23
|
'Sisimai::Reason::MailboxFull' => 'sisimai/reason/mailboxfull',
|
24
24
|
'Sisimai::Reason::HasMoved' => 'sisimai/reason/hasmoved',
|
25
25
|
'Sisimai::Reason::Rejected' => 'sisimai/reason/rejected',
|
26
|
+
'Sisimai::Reason::NotAccept' => 'sisimai/reason/notaccept',
|
26
27
|
}
|
27
28
|
Regex = %r{(?>
|
28
29
|
[#]5[.]1[.]1[ ]bad[ ]address
|
@@ -98,6 +99,7 @@ module Sisimai
|
|
98
99
|
|address[ ]rejected:[ ](?:
|
99
100
|
access[ ]denied
|
100
101
|
|invalid[ ]user
|
102
|
+
|invalid-recipient
|
101
103
|
|user[ ][^ ]+[ ]does[ ]not[ ]exist
|
102
104
|
|user[ ]unknown[ ]in[ ][^ ]+[ ]table
|
103
105
|
|unknown[ ]user
|
@@ -105,6 +107,7 @@ module Sisimai
|
|
105
107
|
|does[ ]not[ ]exist(?:[ ]on[ ]this[ ]system)?
|
106
108
|
|is[ ]not[ ]local
|
107
109
|
|not[ ](?:exist|found|ok)
|
110
|
+
|refuses[ ]to[ ]accept[ ]your[ ]mail
|
108
111
|
|unknown
|
109
112
|
)
|
110
113
|
|requested[ ]action[ ]not[ ]taken:[ ]mailbox[ ]unavailable
|
@@ -114,7 +117,9 @@ module Sisimai
|
|
114
117
|
user[ ]unknown
|
115
118
|
|badrcptto
|
116
119
|
|no[ ]mailbox[ ]here[ ]by[ ]that[ ]name
|
120
|
+
|your[ ]envelope[ ]recipient[ ]has[ ]been[ ]denied
|
117
121
|
)
|
122
|
+
|that[ ]domain[ ]or[ ]user[ ]isn't[ ]in[ ]my[ ]list[ ]of[ ]allowed[ ]rcpthosts
|
118
123
|
|the[ ](?:
|
119
124
|
email[ ]account[ ]that[ ]you[ ]tried[ ]to[ ]reach[ ]does[ ]not[ ]exist
|
120
125
|
|following[ ]recipients[ ]was[ ]undeliverable
|
@@ -124,6 +129,8 @@ module Sisimai
|
|
124
129
|
|this[ ](?:
|
125
130
|
address[ ]no[ ]longer[ ]accepts[ ]mail
|
126
131
|
|email[ ]address[ ]is[ ]wrong[ ]or[ ]no[ ]longer[ ]valid
|
132
|
+
|recipient[ ]is[ ]in[ ]my[ ]badrecipientto[ ]list
|
133
|
+
|recipient[ ]is[ ]not[ ]in[ ]my[ ]validrcptto[ ]list
|
127
134
|
|spectator[ ]does[ ]not[ ]exist
|
128
135
|
|user[ ]doesn[']?t[ ]have[ ]a[ ][^ ]+[ ]account
|
129
136
|
)
|
data/lib/sisimai/rfc3464.rb
CHANGED
@@ -83,7 +83,7 @@ module Sisimai
|
|
83
83
|
|SMTP[ ]Server[ ][<].+[>][ ]rejected[ ]recipient[ ]
|
84
84
|
|The[ ]following[ ]recipients[ ]returned[ ]permanent[ ]errors:[ ]
|
85
85
|
|The[ ]following[ ]message[ ]to[ ]
|
86
|
-
|Unknown[ ]
|
86
|
+
|Unknown[ ]user:[ ]
|
87
87
|
|undeliverable[ ]to[ ]
|
88
88
|
|Undeliverable[ ]Address:[ ]*
|
89
89
|
|You[ ]sent[ ]mail[ ]to[ ]
|