sisimai 4.25.14-java → 4.25.16-java
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/ChangeLog.md +51 -0
- data/README-JA.md +2 -2
- data/README.md +2 -2
- data/lib/sisimai/address.rb +1 -1
- data/lib/sisimai/data.rb +7 -3
- 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 +15 -2
- data/lib/sisimai/mime.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/rfc3834.rb +0 -2
- 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: 55c5f02d8a727fa2d8badf264fdd773c75eacade
|
4
|
+
data.tar.gz: 747708d2f576cabcf9ae6c60399514e1dd1bb167
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e189c252c4b5646effd341cc6ef5c7736c5ae48c59d6b8009695186385512ade0367ab14a7eeed9d145b2f39231553e93ed5f3bdfbf898c7024e2ada797863ca
|
7
|
+
data.tar.gz: 6374615d1cf4969205033b7f3bb9e5a738e26d86a63b38da114b984d2054a54f9a669dcbc0020d53e55fcb2a7c85b6bc127869a78cab943ba62f5a41d604995d
|
data/ChangeLog.md
CHANGED
@@ -3,6 +3,57 @@ 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.16
|
7
|
+
--------------------------------------------------------------------------------
|
8
|
+
- release: "Tue, 16 May 2023 15:11:22 +0900 (JST)"
|
9
|
+
- version: "4.25.16"
|
10
|
+
- changes:
|
11
|
+
- Fix `Sisimai::MIME.mimedecode()` method when the encoding name is lower case
|
12
|
+
"b" (not "B") like `=?utf-8?b?...` #251 Thanks to @revsystem
|
13
|
+
- #253 Fix code in `Sisimai::Data.make()` method to handle `nil` returned from
|
14
|
+
`Sisimai::Rhost.get()` method. Thanks to @axfcampos
|
15
|
+
- Tiny code improvement: import code from sisimai/p5-sisimai#493 (message.rb)
|
16
|
+
- Tiny code improvement: import code from sisimai/p5-sisimai#494 (rfc3834.rb)
|
17
|
+
|
18
|
+
v4.25.15
|
19
|
+
--------------------------------------------------------------------------------
|
20
|
+
- release: "Thu, 22 Dec 2022 13:13:13 +0900 (JST)"
|
21
|
+
- version: "4.25.15"
|
22
|
+
- changes:
|
23
|
+
- Prevent ReDOS: Regex Denial of Service in `Sisimai::String.to_plain` #244.
|
24
|
+
Thanks to @gmcabrita
|
25
|
+
- Fix an error reason "5.2.1 exceedlimit" of an error message: "450-4.2.1 The
|
26
|
+
user you are trying to contact is receiving mail at a rate that prevents ad-
|
27
|
+
ditional messages from being delivered" to "toomanyconn" at Rhost::GoogleApp
|
28
|
+
class, imported from sisimai/p5-sisimai#465.
|
29
|
+
- Bug fix: getting a "name" part of an email address at Sisimai::Address.find
|
30
|
+
- Add many error message patterns at the following classes in `Sisimai/Reason`
|
31
|
+
- `Blocked`
|
32
|
+
- `ContentError`
|
33
|
+
- `Filtered`
|
34
|
+
- `NetworkError`
|
35
|
+
- `NotAccept`
|
36
|
+
- `PolicyViolation`
|
37
|
+
- `Rejected`
|
38
|
+
- `SpamDetected`
|
39
|
+
- `TooManyConn`
|
40
|
+
- `UserUnknown`
|
41
|
+
- When the value of `diagnosticcode` has enough error message for detecting a
|
42
|
+
bounce reason, `expired` will change to `networkerror`
|
43
|
+
- Update code in `Sisimai::Lhost::GoogleGroups` module to parse well a bounce
|
44
|
+
mail even if an email address of `X-Failed-Recipients:` header does not in-
|
45
|
+
clude a domain `@googlegroups.com` #234
|
46
|
+
- Import #235 from Sisimai v5, Implement `Sisimai::Rhost::NTTDOCOMO` to parse
|
47
|
+
more strictly a bounce mail returned from `mfsmax.docomo.ne.jp`
|
48
|
+
- Import #241 from Sisimai v5, Implement `Sisimai::Rhost::Mimecast`
|
49
|
+
- Add the following error messages at `Sisimai::Rhost::ExchangeOnline:
|
50
|
+
- 451 4.7.650 The mail server [...] has been temporarily rate limited due to
|
51
|
+
IP reputation ... (S775)
|
52
|
+
- 550 5.7.1 ... Please contact your Internet service provider since part of
|
53
|
+
their network is on our block list (S3150)
|
54
|
+
- Error messages of Exchange Server 2019 #242
|
55
|
+
- Add many error messages at `Sisimai::Rhost::GoogleApps`, Import #243
|
56
|
+
|
6
57
|
v4.25.14
|
7
58
|
--------------------------------------------------------------------------------
|
8
59
|
- release: "Mon, 15 Aug 2022 14:22:22 +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
|
@@ -299,7 +303,7 @@ module Sisimai
|
|
299
303
|
if r.empty?
|
300
304
|
# Failed to detect a bounce reason by the value of "rhost"
|
301
305
|
r = Sisimai::Rhost.get(o, o.destination) if Sisimai::Rhost.match(o.destination)
|
302
|
-
r = Sisimai::Reason.get(o) if r.empty?
|
306
|
+
r = Sisimai::Reason.get(o) if r.nil? || r.empty?
|
303
307
|
r = 'undefined' if r.empty?
|
304
308
|
end
|
305
309
|
o.reason = r
|
@@ -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
@@ -159,9 +159,22 @@ module Sisimai
|
|
159
159
|
# Set pseudo UNIX From line
|
160
160
|
block[0] = 'MAILER-DAEMON Tue Feb 11 00:00:00 2014'
|
161
161
|
end
|
162
|
-
|
163
162
|
block[1] << "\n" unless block[1].end_with?("\n")
|
163
|
+
|
164
|
+
%w[image/ application/ text/html].each do |e|
|
165
|
+
# https://github.com/sisimai/p5-sisimai/issues/492, Reduce email size
|
166
|
+
p0 = 0
|
167
|
+
p1 = 0
|
168
|
+
ep = e == 'text/html' ? '</html>' : "--\n"
|
169
|
+
while true
|
170
|
+
# Remove each part from "Content-Type: image/..." to "--\n" (the end of each boundary)
|
171
|
+
p0 = block[2].index('Content-Type: ' + e, p0); break unless p0
|
172
|
+
p1 = block[2].index(ep, p0 + 32); break unless p1
|
173
|
+
block[2][p0, p1 - p0] = ''
|
174
|
+
end
|
175
|
+
end
|
164
176
|
block[2] << "\n"
|
177
|
+
|
165
178
|
return block
|
166
179
|
end
|
167
180
|
|
@@ -245,7 +258,7 @@ module Sisimai
|
|
245
258
|
# Decode BASE64 Encoded message body, rewrite.
|
246
259
|
mesgformat = (mailheader['content-type'] || '').downcase
|
247
260
|
ctencoding = (mailheader['content-transfer-encoding'] || '').downcase
|
248
|
-
if mesgformat.start_with?('text/
|
261
|
+
if mesgformat.start_with?('text/')
|
249
262
|
# Content-Type: text/plain; charset=UTF-8
|
250
263
|
if ctencoding == 'base64'
|
251
264
|
# Content-Transfer-Encoding: base64
|
data/lib/sisimai/mime.rb
CHANGED
@@ -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[ ]
|
data/lib/sisimai/rfc3834.rb
CHANGED
@@ -8,8 +8,6 @@ module Sisimai
|
|
8
8
|
AutoReply1 = {
|
9
9
|
# http://www.iana.org/assignments/auto-submitted-keywords/auto-submitted-keywords.xhtml
|
10
10
|
'auto-submitted' => %r/\Aauto-(?:generated|replied|notified)/,
|
11
|
-
# https://msdn.microsoft.com/en-us/library/ee219609(v=exchg.80).aspx
|
12
|
-
'x-auto-response-suppress' => %r/(?:oof|autoreply)/,
|
13
11
|
'x-apple-action' => %r/\Avacation\z/,
|
14
12
|
'precedence' => %r/\Aauto_reply\z/,
|
15
13
|
'subject' => %r/\A(?>
|