sisimai 5.0.2-java → 5.0.3-java
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.github/workflows/codecovio.yml +33 -0
- data/.github/workflows/rake-test.yml +22 -23
- data/ChangeLog.md +28 -0
- data/Gemfile +2 -0
- data/README-JA.md +9 -9
- data/README.md +11 -11
- data/lib/sisimai/arf.rb +24 -5
- data/lib/sisimai/lhost/mailmarshalsmtp.rb +1 -1
- data/lib/sisimai/message.rb +1 -1
- data/lib/sisimai/reason/blocked.rb +1 -0
- data/lib/sisimai/reason/expired.rb +7 -0
- data/lib/sisimai/reason/filtered.rb +1 -0
- data/lib/sisimai/reason/mailboxfull.rb +3 -0
- data/lib/sisimai/reason/norelaying.rb +1 -0
- data/lib/sisimai/reason/rejected.rb +1 -1
- data/lib/sisimai/reason/suspend.rb +4 -0
- data/lib/sisimai/reason/userunknown.rb +4 -1
- data/lib/sisimai/rhost/google.rb +82 -67
- data/lib/sisimai/rhost/microsoft.rb +8 -0
- data/lib/sisimai/rhost/nttdocomo.rb +3 -3
- data/lib/sisimai/version.rb +1 -1
- data/set-of-emails/maildir/bsd/arf-26.eml +27 -0
- data/set-of-emails/maildir/bsd/rhost-microsoft-04.eml +86 -0
- data/set-of-emails/maildir/bsd/rhost-microsoft-05.eml +83 -0
- metadata +6 -3
- data/.travis.yml +0 -23
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 54c592e5b1c8a3be27062107f12c99a55a70e953523df5c6c575e668a71e0dde
|
4
|
+
data.tar.gz: c6f726ab72d810a9447b3e7df6cccab4c458e899bd52c652c1260b7ba063fd3c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 910179d9e65f229fb8775bf104e469bfb7b5c8d04d1888f2bdf1fb9e47cb00a6710e5e76cdb15118ceb4bf1358b8020cc70fecfab5c8a72ff0ab773fafd5b9fd
|
7
|
+
data.tar.gz: 949e5a68e872884ad3718dbc9280107c9c59c18986994878552c3d0bd0e595ac9ced30bf79ef1db33281757956f26fee0f8fcfc7d697159abbc718073006a61a
|
@@ -0,0 +1,33 @@
|
|
1
|
+
name: Upload coverage reports to Codecov
|
2
|
+
on:
|
3
|
+
push:
|
4
|
+
branches: ["5-stable"]
|
5
|
+
pull_request:
|
6
|
+
branches: ["5-stable"]
|
7
|
+
jobs:
|
8
|
+
codecov:
|
9
|
+
runs-on: ubuntu-latest
|
10
|
+
steps:
|
11
|
+
- name: Checkout the repository(CRuby)
|
12
|
+
uses: actions/checkout@v4
|
13
|
+
- name: Setup CRuby
|
14
|
+
uses: ruby/setup-ruby@v1
|
15
|
+
with:
|
16
|
+
ruby-version: "3.3"
|
17
|
+
- name: Install minitest
|
18
|
+
run: gem install minitest -v 5.15.0
|
19
|
+
- name: Install oj
|
20
|
+
run: gem install oj -v 3.10.0
|
21
|
+
- name: Install bundle, rake, simplecov, and simplecov-cobertura
|
22
|
+
run: gem install bundle rake simplecov simplecov-cobertura
|
23
|
+
- name: Check the CRuby version
|
24
|
+
run: ruby -v
|
25
|
+
- name: Execute public tests with the coverage report
|
26
|
+
run: ruby -I./lib ./test/coverage.rb
|
27
|
+
- name: Run Codecov on GitHub Actions
|
28
|
+
uses: codecov/codecov-action@v4.4.0
|
29
|
+
with:
|
30
|
+
token: ${{ secrets.CODECOV_TOKEN }}
|
31
|
+
files: ./coverage/coverage.xml
|
32
|
+
verbose: true
|
33
|
+
|
@@ -13,22 +13,22 @@ jobs:
|
|
13
13
|
matrix:
|
14
14
|
cruby: ["2.4", "3.3"]
|
15
15
|
steps:
|
16
|
-
-
|
16
|
+
- name: Checkout the repository(CRuby)
|
17
|
+
uses: actions/checkout@v4
|
17
18
|
- name: Setup CRuby
|
18
19
|
uses: ruby/setup-ruby@v1
|
19
20
|
with:
|
20
21
|
ruby-version: ${{ matrix.cruby }}
|
21
|
-
-
|
22
|
-
|
23
|
-
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
-
|
30
|
-
|
31
|
-
- run: rake privatetest
|
22
|
+
- name: Install minitest
|
23
|
+
run: gem install minitest -v 5.15.0
|
24
|
+
- name: Install oj
|
25
|
+
run: gem install oj -v 3.10.0
|
26
|
+
- name: Install bundle and rake
|
27
|
+
run: gem install bundle rake
|
28
|
+
- name: Check the CRuby version
|
29
|
+
run: ruby -v
|
30
|
+
- name: Execute public tests
|
31
|
+
run: rake publictest
|
32
32
|
test-jruby:
|
33
33
|
name: rake test with JRuby ${{ matrix.jruby }}
|
34
34
|
runs-on: ubuntu-latest
|
@@ -37,19 +37,18 @@ jobs:
|
|
37
37
|
matrix:
|
38
38
|
jruby: ["jruby-9.2", "jruby-9.4"]
|
39
39
|
steps:
|
40
|
-
-
|
40
|
+
- name: Checkout the repository(JRuby)
|
41
|
+
uses: actions/checkout@v2
|
41
42
|
- name: Setup JRuby
|
42
43
|
uses: ruby/setup-ruby@v1
|
43
44
|
with:
|
44
45
|
ruby-version: ${{ matrix.jruby }}
|
45
|
-
-
|
46
|
-
|
47
|
-
- name:
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
- run: rake publictest
|
54
|
-
- run: rake privatetest
|
46
|
+
- name: Install minitest
|
47
|
+
run: gem install minitest -v 5.15.0
|
48
|
+
- name: Install bundle, rake, and jrjackson
|
49
|
+
run: gem install bundle rake jrjackson
|
50
|
+
- name: Check the JRuby version
|
51
|
+
run: jruby -v
|
52
|
+
- name: Execute public tests
|
53
|
+
run: rake publictest
|
55
54
|
|
data/ChangeLog.md
CHANGED
@@ -3,6 +3,34 @@ 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
|
+
v5.0.3
|
7
|
+
---------------------------------------------------------------------------------------------------
|
8
|
+
- release: "Wed, 22 May 2024 14:12:22 +0900 (JST)"
|
9
|
+
- version: "5.0.3"
|
10
|
+
- changes:
|
11
|
+
- Remove `.travis.yml` from this repository
|
12
|
+
- Follow updates in Gmail SMTP errors and codes on Apr 29 and May 10 at `Sisimai::Rhost::Google`
|
13
|
+
#275 #277 #283
|
14
|
+
- https://support.google.com/a/answer/3726730?hl=en
|
15
|
+
- https://github.com/azumakuniyuki/feb-2024-no-auth-no-entry/commit/1d6adede
|
16
|
+
- https://github.com/azumakuniyuki/feb-2024-no-auth-no-entry/commit/d477b178
|
17
|
+
- Implement SMTP error codes as follows: `4.7.23`, `4.7.30`, `4.7.32`, `5.7.29`, and `5.7.30`
|
18
|
+
- Shortened error message patterns to make them more adaptable to minor sentence changes.
|
19
|
+
- Multibyte characters in the code and comments have been replaced with ASCII characters #278
|
20
|
+
- #279 #280 Deal the Apple unsubscribe notification as an ARF message. Thanks to @mnmallea
|
21
|
+
- Add the following error message patterns returned from Exchange Online #281
|
22
|
+
- 4.4.317, 5.4.317: STARTTLS is required to send mail
|
23
|
+
- 4.4.318, 5.4.318: Connection was closed abruptly (SuspiciousRemoteServerError)
|
24
|
+
- #282 Added 16 error message patterns into the following reasons:
|
25
|
+
- `Blocked`
|
26
|
+
- `Expired`
|
27
|
+
- `Filtered`
|
28
|
+
- `MailboxFull`
|
29
|
+
- `NoRelaying`
|
30
|
+
- `Suspend`
|
31
|
+
- `UserUnknown`
|
32
|
+
- #286 Use Codecov for the coverage
|
33
|
+
|
6
34
|
v5.0.2
|
7
35
|
---------------------------------------------------------------------------------------------------
|
8
36
|
- release: "Wed, 13 Mar 2024 13:00:00 +0900 (JST)"
|
data/Gemfile
CHANGED
data/README-JA.md
CHANGED
@@ -1,8 +1,8 @@
|
|
1
1
|
![](https://libsisimai.org/static/images/logo/sisimai-x01.png)
|
2
2
|
[![License](https://img.shields.io/badge/license-BSD%202--Clause-orange.svg)](https://github.com/sisimai/rb-sisimai/blob/master/LICENSE)
|
3
|
-
[![Coverage Status](https://img.shields.io/coveralls/sisimai/rb-sisimai.svg)](https://coveralls.io/r/sisimai/rb-sisimai)
|
4
3
|
[![Ruby](https://img.shields.io/badge/ruby-v2.4.0--v3.3.0-red.svg)](https://www.ruby-lang.org/)
|
5
4
|
[![Gem Version](https://badge.fury.io/rb/sisimai.svg)](https://badge.fury.io/rb/sisimai)
|
5
|
+
[![codecov](https://codecov.io/github/sisimai/rb-sisimai/graph/badge.svg?token=YGkyluNWiZ)](https://codecov.io/github/sisimai/rb-sisimai)
|
6
6
|
|
7
7
|
> [!IMPORTANT]
|
8
8
|
> **2024年2月2日の時点でこのリポジトリのデフォルトブランチは[5-stable](https://github.com/sisimai/rb-sisimai/tree/5-stable)
|
@@ -110,10 +110,10 @@ Install
|
|
110
110
|
### From RubyGems.org
|
111
111
|
```shell
|
112
112
|
$ sudo gem install sisimai
|
113
|
-
Fetching: sisimai-5.0.
|
114
|
-
Successfully installed sisimai-5.0.
|
115
|
-
Parsing documentation for sisimai-5.0.
|
116
|
-
Installing ri documentation for sisimai-5.0.
|
113
|
+
Fetching: sisimai-5.0.3.gem (100%)
|
114
|
+
Successfully installed sisimai-5.0.3
|
115
|
+
Parsing documentation for sisimai-5.0.3
|
116
|
+
Installing ri documentation for sisimai-5.0.3
|
117
117
|
Done installing documentation for sisimai after 6 seconds
|
118
118
|
1 gem installed
|
119
119
|
```
|
@@ -141,13 +141,13 @@ if [ -d "/usr/local/jr" ]; then \
|
|
141
141
|
...
|
142
142
|
3 gems installed
|
143
143
|
/opt/local/bin/rake install
|
144
|
-
sisimai 5.0.
|
145
|
-
sisimai (5.0.
|
144
|
+
sisimai 5.0.3 built to pkg/sisimai-5.0.3.gem.
|
145
|
+
sisimai (5.0.3) installed.
|
146
146
|
if [ -d "/usr/local/jr" ]; then \
|
147
147
|
PATH="/usr/local/jr/bin:$PATH" /usr/local/jr/bin/rake install; \
|
148
148
|
fi
|
149
|
-
sisimai 5.0.
|
150
|
-
sisimai (5.0.
|
149
|
+
sisimai 5.0.3 built to pkg/sisimai-5.0.3-java.gem.
|
150
|
+
sisimai (5.0.3) installed.
|
151
151
|
```
|
152
152
|
|
153
153
|
Usage
|
data/README.md
CHANGED
@@ -1,8 +1,8 @@
|
|
1
1
|
![](https://libsisimai.org/static/images/logo/sisimai-x01.png)
|
2
2
|
[![License](https://img.shields.io/badge/license-BSD%202--Clause-orange.svg)](https://github.com/sisimai/rb-sisimai/blob/master/LICENSE)
|
3
|
-
[![Coverage Status](https://img.shields.io/coveralls/sisimai/rb-sisimai.svg)](https://coveralls.io/r/sisimai/rb-sisimai)
|
4
3
|
[![Ruby](https://img.shields.io/badge/ruby-v2.4.0--v3.3.0-red.svg)](https://www.ruby-lang.org/)
|
5
4
|
[![Gem Version](https://badge.fury.io/rb/sisimai.svg)](https://badge.fury.io/rb/sisimai)
|
5
|
+
[![codecov](https://codecov.io/github/sisimai/rb-sisimai/graph/badge.svg?token=YGkyluNWiZ)](https://codecov.io/github/sisimai/rb-sisimai)
|
6
6
|
|
7
7
|
> [!IMPORTANT]
|
8
8
|
> **The default branch of this repository is [5-stable](https://github.com/sisimai/rb-sisimai/tree/5-stable)
|
@@ -101,7 +101,7 @@ More details about system requirements are available at
|
|
101
101
|
|
102
102
|
* [Ruby 2.4.0 or later](http://www.ruby-lang.org/)
|
103
103
|
* [__oj | The fastest JSON parser and object serializer__](https://rubygems.org/gems/oj)
|
104
|
-
* Also works on [JRuby 9.2 or later](http://jruby.org)
|
104
|
+
* Also works on [JRuby 9.2 or later](http://jruby.org)
|
105
105
|
* [__jrjackson | A mostly native JRuby wrapper for the java jackson json processor jar__](https://rubygems.org/gems/jrjackson)
|
106
106
|
|
107
107
|
Install
|
@@ -109,10 +109,10 @@ Install
|
|
109
109
|
### From RubyGems
|
110
110
|
```shell
|
111
111
|
$ sudo gem install sisimai
|
112
|
-
Fetching: sisimai-5.0.
|
113
|
-
Successfully installed sisimai-5.0.
|
114
|
-
Parsing documentation for sisimai-5.0.
|
115
|
-
Installing ri documentation for sisimai-5.0.
|
112
|
+
Fetching: sisimai-5.0.3.gem (100%)
|
113
|
+
Successfully installed sisimai-5.0.3
|
114
|
+
Parsing documentation for sisimai-5.0.3
|
115
|
+
Installing ri documentation for sisimai-5.0.3
|
116
116
|
Done installing documentation for sisimai after 6 seconds
|
117
117
|
1 gem installed
|
118
118
|
```
|
@@ -140,13 +140,13 @@ if [ -d "/usr/local/jr" ]; then \
|
|
140
140
|
...
|
141
141
|
3 gems installed
|
142
142
|
/opt/local/bin/rake install
|
143
|
-
sisimai 5.0.
|
144
|
-
sisimai (5.0.
|
143
|
+
sisimai 5.0.3 built to pkg/sisimai-5.0.3.gem.
|
144
|
+
sisimai (5.0.3) installed.
|
145
145
|
if [ -d "/usr/local/jr" ]; then \
|
146
146
|
PATH="/usr/local/jr/bin:$PATH" /usr/local/jr/bin/rake install; \
|
147
147
|
fi
|
148
|
-
sisimai 5.0.
|
149
|
-
sisimai (5.0.
|
148
|
+
sisimai 5.0.3 built to pkg/sisimai-5.0.3-java.gem.
|
149
|
+
sisimai (5.0.3) installed.
|
150
150
|
```
|
151
151
|
|
152
152
|
Usage
|
@@ -301,7 +301,7 @@ One-Liner
|
|
301
301
|
|
302
302
|
Output example
|
303
303
|
---------------------------------------------------------------------------------------------------
|
304
|
-
![](https://libsisimai.org/static/images/demo/sisimai-5-cli-dump-
|
304
|
+
![](https://libsisimai.org/static/images/demo/sisimai-5-cli-dump-r01.gif)
|
305
305
|
|
306
306
|
```json
|
307
307
|
[
|
data/lib/sisimai/arf.rb
CHANGED
@@ -37,13 +37,12 @@ module Sisimai
|
|
37
37
|
# false: is not Feedback loop
|
38
38
|
def is_arf(heads)
|
39
39
|
return false unless heads
|
40
|
-
match = false
|
41
40
|
|
42
|
-
|
43
|
-
|
44
|
-
match = true
|
41
|
+
# Content-Type: multipart/report; report-type=feedback-report; ...
|
42
|
+
return true if Sisimai::String.aligned(heads['content-type'], ['report-type=', 'feedback-report'])
|
45
43
|
|
46
|
-
|
44
|
+
match = false
|
45
|
+
if heads['content-type'].include?('multipart/mixed')
|
47
46
|
# Microsoft (Hotmail, MSN, Live, Outlook) uses its own report format.
|
48
47
|
# Amazon SES Complaints bounces
|
49
48
|
cv = Sisimai::Address.s3s4(heads['from'])
|
@@ -54,6 +53,8 @@ module Sisimai
|
|
54
53
|
match = true if ReportFrom.any? { |a| cv.include?(a) }
|
55
54
|
end
|
56
55
|
end
|
56
|
+
match = true if heads['x-apple-unsubscribe'] == 'true'
|
57
|
+
|
57
58
|
return match
|
58
59
|
end
|
59
60
|
|
@@ -280,6 +281,24 @@ module Sisimai
|
|
280
281
|
arfheaders['rhost'] = mhead['subject'][mhead['subject'].rindex(' ') + 1, mhead['subject'].size]
|
281
282
|
commondata['diagnosis'] =
|
282
283
|
'This is a Microsoft email abuse report for an email message received from IP' << arfheaders['rhost'] + ' on ' << mhead['date']
|
284
|
+
|
285
|
+
elsif mhead['subject'].include?('unsubscribe')
|
286
|
+
# Apple Mail sent this email to unsubscribe from the message
|
287
|
+
while true
|
288
|
+
# Subject: unsubscribe
|
289
|
+
# Content-Type: text/plain; charset=UTF-8
|
290
|
+
# Auto-Submitted: auto-replied
|
291
|
+
# X-Apple-Unsubscribe: true
|
292
|
+
#
|
293
|
+
# Apple Mail sent this email to unsubscribe from the message
|
294
|
+
break unless mhead['x-apple-unsubscribe']
|
295
|
+
break unless mhead['x-apple-unsubscribe'] == 'true'
|
296
|
+
break unless mbody.include?('Apple Mail sent this email to unsubscribe from the message');
|
297
|
+
|
298
|
+
dscontents[-1]['recipient'] = Sisimai::Address.s3s4(mhead['from'])
|
299
|
+
dscontents[-1]['feedbacktype'] = 'opt-out'
|
300
|
+
break
|
301
|
+
end
|
283
302
|
end
|
284
303
|
|
285
304
|
dscontents.each do |e|
|
data/lib/sisimai/message.rb
CHANGED
@@ -452,7 +452,7 @@ module Sisimai
|
|
452
452
|
unless haveloaded['Sisimai::ARF']
|
453
453
|
# Feedback Loop message
|
454
454
|
require 'sisimai/arf'
|
455
|
-
havesifted = Sisimai::ARF.inquire(mailheader, bodystring)
|
455
|
+
havesifted = Sisimai::ARF.inquire(mailheader, bodystring)
|
456
456
|
throw :PARSER if havesifted
|
457
457
|
end
|
458
458
|
|
@@ -62,6 +62,7 @@ module Sisimai
|
|
62
62
|
'we do not accept mail from dynamic ips', # @mail.ru
|
63
63
|
'you are not allowed to connect',
|
64
64
|
'you are sending spam',
|
65
|
+
'your ip address is listed in the rbl',
|
65
66
|
'your network is temporary blacklisted',
|
66
67
|
'your server requires confirmation',
|
67
68
|
].freeze
|
@@ -7,10 +7,13 @@ module Sisimai
|
|
7
7
|
# the message you sent has been in the queue for long time.
|
8
8
|
module Expired
|
9
9
|
class << self
|
10
|
+
require 'sisimai/string'
|
11
|
+
|
10
12
|
Index = [
|
11
13
|
'connection timed out',
|
12
14
|
'could not find a gateway for',
|
13
15
|
'delivery attempts will continue to be',
|
16
|
+
'delivery expired',
|
14
17
|
'delivery time expired',
|
15
18
|
'failed to deliver to domain ',
|
16
19
|
'giving up on',
|
@@ -28,6 +31,9 @@ module Sisimai
|
|
28
31
|
'was not reachable within the allowed queue period',
|
29
32
|
'your message could not be delivered for more than',
|
30
33
|
].freeze
|
34
|
+
Pairs = [
|
35
|
+
['could not be delivered for', ' days'],
|
36
|
+
].freeze
|
31
37
|
|
32
38
|
def text; return 'expired'; end
|
33
39
|
def description; return 'Delivery time has expired due to a connection failure'; end
|
@@ -39,6 +45,7 @@ module Sisimai
|
|
39
45
|
def match(argv1)
|
40
46
|
return nil unless argv1
|
41
47
|
return true if Index.any? { |a| argv1.include?(a) }
|
48
|
+
return true if Pairs.any? { |a| Sisimai::String.aligned(argv1, a) }
|
42
49
|
return false
|
43
50
|
end
|
44
51
|
|
@@ -21,6 +21,7 @@ module Sisimai
|
|
21
21
|
'resolver.rst.notauthorized', # Microsoft Exchange
|
22
22
|
'this account is protected by',
|
23
23
|
'user not found', # Filter on MAIL.RU
|
24
|
+
'user refuses to receive this mail',
|
24
25
|
'user reject',
|
25
26
|
'we failed to deliver mail because the following address recipient id refuse to receive mail', # Willcom
|
26
27
|
'you have been blocked by the recipient',
|
@@ -8,6 +8,7 @@ module Sisimai
|
|
8
8
|
module MailboxFull
|
9
9
|
class << self
|
10
10
|
Index = [
|
11
|
+
'452 insufficient disk space',
|
11
12
|
'account disabled temporarly for exceeding receiving limits',
|
12
13
|
'account is exceeding their quota',
|
13
14
|
'account is over quota',
|
@@ -35,7 +36,9 @@ module Sisimai
|
|
35
36
|
'maildir delivery failed: userdisk quota ',
|
36
37
|
'maildir delivery failed: domaindisk quota ',
|
37
38
|
'mailfolder is full',
|
39
|
+
'no space left on device',
|
38
40
|
'not enough storage space in',
|
41
|
+
'not sufficient disk space',
|
39
42
|
'over the allowed quota',
|
40
43
|
'quota exceeded',
|
41
44
|
'quota violation for',
|
@@ -24,6 +24,7 @@ module Sisimai
|
|
24
24
|
'relay not permitted',
|
25
25
|
'relaying denied', # Sendmail
|
26
26
|
'relaying mail to ',
|
27
|
+
'specified domain is not allowed',
|
27
28
|
"that domain isn't in my list of allowed rcpthost",
|
28
29
|
'this system is not configured to relay mail',
|
29
30
|
'unable to relay for',
|
@@ -38,7 +38,7 @@ module Sisimai
|
|
38
38
|
'email address is on senderfilterconfig list',
|
39
39
|
'emetteur invalide',
|
40
40
|
'empty envelope senders not allowed',
|
41
|
-
'envelope blocked
|
41
|
+
'envelope blocked - ',
|
42
42
|
'error: no third-party dsns', # SpamWall - block empty sender
|
43
43
|
'from: domain is invalid. please provide a valid from:',
|
44
44
|
'fully qualified email address required', # McAfee
|
@@ -12,17 +12,21 @@ module Sisimai
|
|
12
12
|
'boite du destinataire archivee',
|
13
13
|
'email account that you tried to reach is disabled',
|
14
14
|
'has been suspended',
|
15
|
+
'inactive account',
|
15
16
|
'invalid/inactive user',
|
16
17
|
'is a deactivated mailbox', # http://service.mail.qq.com/cgi-bin/help?subtype=1&&id=20022&&no=1000742
|
17
18
|
'is unavailable: user is terminated',
|
18
19
|
'mailbox currently suspended',
|
20
|
+
'mailbox disabled',
|
19
21
|
'mailbox is frozen',
|
20
22
|
'mailbox unavailable or access denied',
|
21
23
|
'recipient rejected: temporarily inactive',
|
22
24
|
'recipient suspend the service',
|
23
25
|
'this account has been disabled or discontinued',
|
26
|
+
'this account has been temporarily suspended',
|
24
27
|
'this address no longer accepts mail',
|
25
28
|
'this mailbox is disabled',
|
29
|
+
'user or domain is disabled',
|
26
30
|
'user suspended', # http://mail.163.com/help/help_spam_16.htm
|
27
31
|
'vdelivermail: account is locked email bounced',
|
28
32
|
].freeze
|
@@ -63,7 +63,6 @@ module Sisimai
|
|
63
63
|
'no such mailbox',
|
64
64
|
'no such person at this address',
|
65
65
|
'no such recipient',
|
66
|
-
|
67
66
|
'no such user',
|
68
67
|
'no thank you rejected: account unavailable',
|
69
68
|
'no valid recipients, bye',
|
@@ -76,7 +75,9 @@ module Sisimai
|
|
76
75
|
'recipient address rejected: invalid user',
|
77
76
|
'recipient address rejected: invalid-recipient',
|
78
77
|
'recipient address rejected: unknown user',
|
78
|
+
'recipient address rejected: userunknown',
|
79
79
|
'recipient does not exist',
|
80
|
+
'recipient is not accepted',
|
80
81
|
'recipient is not local',
|
81
82
|
'recipient not exist',
|
82
83
|
'recipient not found',
|
@@ -125,6 +126,7 @@ module Sisimai
|
|
125
126
|
['no ', ' in name directory'],
|
126
127
|
['non', 'existent user'],
|
127
128
|
['rcpt <', ' does not exist'],
|
129
|
+
['rcpt (', 't exist '],
|
128
130
|
['recipient ', ' was not found in'],
|
129
131
|
['recipient address rejected: user ', ' does not exist'],
|
130
132
|
['recipient address rejected: user unknown in ', ' table'],
|
@@ -135,6 +137,7 @@ module Sisimai
|
|
135
137
|
['unknown local', 'part'],
|
136
138
|
['user ', ' was not found'],
|
137
139
|
['user ', ' does not exist'],
|
140
|
+
['user (', ') unknown'],
|
138
141
|
].freeze
|
139
142
|
|
140
143
|
def text; return 'userunknown'; end
|
data/lib/sisimai/rhost/google.rb
CHANGED
@@ -15,16 +15,16 @@ module Sisimai
|
|
15
15
|
# - 550 5.7.24 The SPF record of the sending domain has one or more suspicious entries.
|
16
16
|
# For more information, go to Email sender guidelines.
|
17
17
|
# - https://support.google.com/mail/answer/81126#authentication
|
18
|
-
['451', '4.7.24', 'the spf record of the sending domain
|
19
|
-
['550', '5.7.24', 'the spf record of the sending domain
|
18
|
+
['451', '4.7.24', 'the spf record of the sending domain'],
|
19
|
+
['550', '5.7.24', 'the spf record of the sending domain'],
|
20
20
|
|
21
21
|
# - 421 4.7.26 This mail has been rate limited because it is unauthenticated.
|
22
22
|
# Gmail requires all senders to authenticate with either SPF or DKIM.
|
23
23
|
# Authentication results: DKIM = did not pass SPF domain-name with ip: ip-address =
|
24
24
|
# did not pass. To resolve this issue, go to Email sender guidelines.
|
25
25
|
# - https://support.google.com/mail/answer/81126#authentication
|
26
|
-
['421', '4.7.26', '
|
27
|
-
['550', '5.7.26', '
|
26
|
+
['421', '4.7.26', 'senders to authenticate with either spf or dkim'],
|
27
|
+
['550', '5.7.26', 'senders to authenticate with either spf or dkim'],
|
28
28
|
|
29
29
|
# - 550 5.7.26 This message fails to pass SPF checks for an SPF record with a hard fail
|
30
30
|
# policy (-all). To best protect our users from spam and phishing, the message has
|
@@ -36,7 +36,7 @@ module Sisimai
|
|
36
36
|
# protect our users from spam and phishing, the message has been blocked. For more
|
37
37
|
# information, go to Email sender guidelines.
|
38
38
|
# - https://support.google.com/mail/answer/81126#authentication
|
39
|
-
['550', '5.7.26', '
|
39
|
+
['550', '5.7.26', 'fails to pass spf checks for an spf record with a hard fail'],
|
40
40
|
['550', '5.7.26', 'has an spf record with a hard fail policy'],
|
41
41
|
|
42
42
|
# - 451 4.7.26 Unauthenticated email from domain-name is not accepted due to domain's
|
@@ -61,27 +61,36 @@ module Sisimai
|
|
61
61
|
['550', '5.7.1', 'fails to pass authentication checks'],
|
62
62
|
['550', '5.7.26', 'fails to pass authentication checks'],
|
63
63
|
|
64
|
-
# - 421 4.7.27
|
65
|
-
# Gmail requires all
|
66
|
-
# SPF domain-name with
|
67
|
-
#
|
68
|
-
['421', '4.7.27', '
|
69
|
-
['
|
70
|
-
|
71
|
-
|
72
|
-
#
|
73
|
-
#
|
74
|
-
#
|
75
|
-
['421', '4.7.
|
76
|
-
|
64
|
+
# - 421 4.7.27 Your email has been rate limited because SPF authentication didn't pass
|
65
|
+
# for this message. Gmail requires all bulk email senders to authenticate their emaili
|
66
|
+
# with SPF. Authentication results: SPF domain-name with IP address: ip-address = Did
|
67
|
+
# not pass.
|
68
|
+
['421', '4.7.27', 'senders to authenticate with spf'],
|
69
|
+
['421', '4.7.27', 'senders to authenticate their email with spf'],
|
70
|
+
['550', '5.7.27', 'senders to authenticate with spf'],
|
71
|
+
|
72
|
+
# - 421 4.7.30 Your email has been rate limited because DKIM authentication didn't pass
|
73
|
+
# for this message. Gmail requires all email bulk senders to authenticate their email
|
74
|
+
# with DKIM. Authentication results: DKIM = Did not pass.
|
75
|
+
['421', '4.7.30', 'senders to authenticate their email with dkim'],
|
76
|
+
|
77
|
+
# - 550 5.7.30 This mail has been blocked because DKIM does not pass. Gmail requires all
|
78
|
+
# large senders to authenticate with DKIM. Authentication results: DKIM = did not pass.
|
79
|
+
# For instructions on setting up DKIM authentication, go to Turn on DKIM for your domain.
|
80
|
+
['550', '5.7.30', 'senders to authenticate with dkim'],
|
81
|
+
|
82
|
+
# - 421 4.7.32 Your email has been rate limited because the From: header (RFC5322) in
|
83
|
+
# this message isn't aligned with either the authenticated SPF or DKIM organizational
|
84
|
+
# domain.
|
85
|
+
['421', '4.7.32', 'aligned with either the authenticated spf or dkim'],
|
77
86
|
],
|
78
87
|
'badreputation' => [
|
79
88
|
# - 421 4.7.0 This message is suspicious due to the very low reputation of the sending
|
80
89
|
# IP address/domain. To protect our users from spam, mail sent from your IP address
|
81
90
|
# has been temporarily rate limited. For more information, go to Why has Gmail blocked
|
82
91
|
# my messages?. https://support.google.com/mail/answer/188131
|
83
|
-
['421', '4.7.0', '
|
84
|
-
['421', '4.7.0', '
|
92
|
+
['421', '4.7.0', 'very low reputation of the sending ip address'],
|
93
|
+
['421', '4.7.0', 'very low reputation of the sending domain'],
|
85
94
|
|
86
95
|
# - 550 5.7.1 Our system has detected that this message is likely suspicious due to the
|
87
96
|
# very low reputation of the sending IP address/domain. To best protect our users
|
@@ -94,7 +103,7 @@ module Sisimai
|
|
94
103
|
# - 421 4.7.0 IP not in whitelist for RCPT domain, closing connection.
|
95
104
|
# For more information, go to Allowlists, denylists, and approved senders.
|
96
105
|
# https://support.google.com/a/answer/60752
|
97
|
-
['421', '4.7.0', 'ip not in whitelist for rcpt domain
|
106
|
+
['421', '4.7.0', 'ip not in whitelist for rcpt domain'],
|
98
107
|
|
99
108
|
# - 421 4.7.0 Try again later, closing connection. This usually indicates a Denial of
|
100
109
|
# Service (DoS) for the SMTP relay at the HELO stage.
|
@@ -105,7 +114,7 @@ module Sisimai
|
|
105
114
|
['501', '5.5.4', 'empty helo/ehlo argument not allowed'],
|
106
115
|
['501', '5.5.4', 'helo/ehlo argument is invalid'],
|
107
116
|
|
108
|
-
# - 421 4.7.28 Gmail has detected an unusual rate of
|
117
|
+
# - 421 4.7.28 Gmail has detected an unusual rate of mail
|
109
118
|
# (originating from)
|
110
119
|
# - your IP address 192.0.2.25
|
111
120
|
# - your IP Netblock 192.0.2.0/24 (?)
|
@@ -117,7 +126,7 @@ module Sisimai
|
|
117
126
|
# our bulk email senders guidelines, go to Email sender guidelines.
|
118
127
|
# https://support.google.com/mail/?p=UnsolicitedRateLimitError
|
119
128
|
['421', '4.7.0', 'an unusual rate of unsolicited mail'],
|
120
|
-
['421', '4.7.28', 'an unusual rate of
|
129
|
+
['421', '4.7.28', 'an unusual rate of mail'],
|
121
130
|
|
122
131
|
# - 550 5.7.1 Our system has detected an unusual rate of unsolicited mail originating
|
123
132
|
# from your IP address. To protect our users from spam, mail sent from your IP ad-
|
@@ -126,8 +135,8 @@ module Sisimai
|
|
126
135
|
# - 550 5.7.28 There is an unusual rate of unsolicited mail originating from your IP
|
127
136
|
# address. To protect our users from spam, mail sent from your IP address has been
|
128
137
|
# blocked. To review our bulk email senders guidelines, go to Email sender guidelines.
|
129
|
-
['550', '5.7.1', 'an unusual rate of unsolicited mail
|
130
|
-
['550', '5.7.28', 'an unusual rate of unsolicited mail
|
138
|
+
['550', '5.7.1', 'an unusual rate of unsolicited mail'],
|
139
|
+
['550', '5.7.28', 'an unusual rate of unsolicited mail'],
|
131
140
|
],
|
132
141
|
'exceedlimit' => [
|
133
142
|
# - 552 5.2.3 Your message exceeded Google's message size limits. For more information,
|
@@ -144,8 +153,8 @@ module Sisimai
|
|
144
153
|
['552', '5.3.4', "exceeds google's limit of limit attachments."],
|
145
154
|
['552', '5.3.4', "your message exceeded google's message header size limits"],
|
146
155
|
['552', '5.3.4', 'bytes per individual header size'],
|
147
|
-
['552', '5.3.4', "exceeds google
|
148
|
-
['552', '5.3.4', "
|
156
|
+
['552', '5.3.4', "exceeds google's header name limit of"],
|
157
|
+
['552', '5.3.4', "exceeds google's message header size limit"]
|
149
158
|
],
|
150
159
|
'expired' => [
|
151
160
|
# - 421 4.7.0 Connection expired, try reconnecting. For more information, go to About
|
@@ -165,15 +174,15 @@ module Sisimai
|
|
165
174
|
|
166
175
|
# - 452 4.2.2 The email account that you tried to reach is over quota. Please direct
|
167
176
|
# the recipient to Clear Google Drive space & increase storage.
|
168
|
-
['452', '4.2.2', '
|
169
|
-
['552', '5.2.2', '
|
177
|
+
['452', '4.2.2', 'is over quota'],
|
178
|
+
['552', '5.2.2', 'is over quota'],
|
170
179
|
['550', '5.7.1', 'email quota exceeded'],
|
171
180
|
],
|
172
181
|
'mesgtoobig' => [
|
173
182
|
# - 552 5.3.4 Your message exceeded Google's message size limits. To view our message
|
174
183
|
# size guidelines, go to Send attachments with your Gmail message.
|
175
184
|
# - https://support.google.com/mail/?p=MaxSizeError
|
176
|
-
['552', '5.3.4', "
|
185
|
+
['552', '5.3.4', "exceeded google's message size limits"],
|
177
186
|
|
178
187
|
# - 552 5.3.4 The size of your message (size bytes) exceeded Google's message size
|
179
188
|
# limits of limit bytes. To view our message size guidelines, go to Gmail receiving
|
@@ -184,8 +193,8 @@ module Sisimai
|
|
184
193
|
'networkerror' => [
|
185
194
|
# - 554 5.4.6 Message exceeded 50 hops, this may indicate a mail loop.
|
186
195
|
# For more information, go to Gmail Help. https://support.google.com/mail/?p=MailLoop
|
187
|
-
['554', '5.4.6', 'message exceeded 50 hops
|
188
|
-
['554', '5.6.0', 'message exceeded 50 hops
|
196
|
+
['554', '5.4.6', 'message exceeded 50 hops'],
|
197
|
+
['554', '5.6.0', 'message exceeded 50 hops'],
|
189
198
|
],
|
190
199
|
'norelaying' => [
|
191
200
|
# - 550 5.7.0 Mail relay denied <ip-address>. Invalid credentials for relay for one of
|
@@ -211,37 +220,37 @@ module Sisimai
|
|
211
220
|
# to our servers. Use the SMTP relay at your service provider instead. For more
|
212
221
|
# information, go to 'The IP you're using to send email is not authorized...'.
|
213
222
|
# - https://support.google.com/mail/?p=NotAuthorizedError
|
214
|
-
['550', '5.7.1',
|
223
|
+
['550', '5.7.1', 'is not authorized to send email directly to our servers'],
|
215
224
|
],
|
216
225
|
'notcompliantrfc' => [
|
217
226
|
# - 550 5.7.1 Messages missing a valid address in the From: header, or having no From:
|
218
227
|
# header, are not accepted. For more information, go to Email sender guidelines and
|
219
228
|
# review RFC 5322 specifications.
|
220
229
|
# - https://support.google.com/mail/?p=RfcMessageNonCompliant
|
221
|
-
['550', '5.7.1', '
|
222
|
-
['550', '5.7.1', '
|
230
|
+
['550', '5.7.1', 'missing a valid address in the from: header'],
|
231
|
+
['550', '5.7.1', 'multiple addresses in from: header are not accepted'],
|
223
232
|
|
224
233
|
# - 550 5.7.1 This message is not RFC 5322 compliant because it has duplicate headers.
|
225
234
|
# To reduce the amount of spam sent to Gmail, this message has been blocked. For more
|
226
235
|
# information, go to Email sender guidelines and review RFC 5322 specifications.
|
227
236
|
# - https://support.google.com/mail/?p=RfcMessageNonCompliant
|
228
|
-
['550', '5.7.1', '
|
237
|
+
['550', '5.7.1', 'is not rfc 5322 compliant'],
|
229
238
|
|
230
239
|
# - 550 5.7.1 Messages missing a valid Message-ID: header are not accepted. For more
|
231
240
|
# information, go to Email sender guidelines and review RFC 5322 specifications.
|
232
241
|
# - https://support.google.com/mail/?p=RfcMessageNonCompliant
|
233
|
-
['550', '5.7.1', '
|
242
|
+
['550', '5.7.1', 'missing a valid message-id: header'],
|
234
243
|
|
235
244
|
# - 550 5.7.1 The message contains a unicode character in a disallowed header.
|
236
245
|
# To review our message and header content guidelines, go to File types blocked in
|
237
246
|
# Gmail. https://support.google.com/mail/?p=BlockedMessage
|
238
|
-
['550', '5.7.1', '
|
247
|
+
['550', '5.7.1', 'contains a unicode character in a disallowed header'],
|
239
248
|
|
240
249
|
# - 550 5.7.1 Encoded-word syntax is not permitted in message header header-name. To
|
241
250
|
# reduce the amount of spam sent to Gmail, this message has been blocked. For more
|
242
251
|
# information, go to Email sender guidelines and review RFC 5322 specifications.
|
243
252
|
# - https://support.google.com/mail/?p=RfcMessageNonCompliant
|
244
|
-
['550', '5.7.1', 'encoded-word syntax is not permitted
|
253
|
+
['550', '5.7.1', 'encoded-word syntax is not permitted'],
|
245
254
|
|
246
255
|
# - 553 5.1.7 The sender address address is not a valid RFC 5321 address. For more
|
247
256
|
# information, go to About SMTP error messages and review RFC 5321 specifications.
|
@@ -251,49 +260,55 @@ module Sisimai
|
|
251
260
|
# - 554 5.6.0 Mail message is malformed. Not accepted. For more information, go to
|
252
261
|
# Email sender guidelines and review RFC 5322 specifications.
|
253
262
|
# - https://support.google.com/mail/?p=RfcMessageNonCompliant
|
254
|
-
['554', '5.6.0', 'mail message is malformed
|
263
|
+
['554', '5.6.0', 'mail message is malformed'],
|
255
264
|
],
|
256
265
|
'policyviolation' => [
|
257
266
|
# - 552 5.7.0 Our system detected an illegal attachment on your message. Please visit
|
258
267
|
# http://mail.google.com/support/bin/answer.py?answer=6590 to review our attachment
|
259
268
|
# guidelines.
|
260
|
-
['552', '5.7.0', '
|
269
|
+
['552', '5.7.0', 'illegal attachment on your message'],
|
261
270
|
|
262
271
|
# - 552 5.7.0 This message was blocked because its content presents a potential securi-
|
263
272
|
# ty issue. Please visit https://support.google.com/mail/?p=BlockedMessage to review
|
264
273
|
# our message content and attachment content guidelines.
|
265
|
-
['552', '5.7.0', '
|
274
|
+
['552', '5.7.0', 'blocked because its content presents a potential security issue'],
|
266
275
|
|
267
276
|
# - 550 5.7.1 The user or domain that you are sending to (or from) has a policy that
|
268
277
|
# prohibited the mail that you sent. Please contact your domain administrator for
|
269
278
|
# further details.
|
270
279
|
# For more information, visit https://support.google.com/a/answer/172179
|
271
|
-
['550', '5.7.1', '
|
280
|
+
['550', '5.7.1', 'you are sending to (or from) has a policy that prohibited'],
|
272
281
|
|
273
282
|
# - 421 4.7.28 Gmail has detected this message exceeded its quota for sending messages
|
274
283
|
# with the same Message-ID:. To best protect our users, the message has been tempo-
|
275
284
|
# rarily rejected. For more information, go to Why has Gmail blocked my messages?.
|
276
285
|
# https://support.google.com/mail/answer/188131
|
277
|
-
['421', '4.7.28', '
|
286
|
+
['421', '4.7.28', 'sending messages with the same message-id:'],
|
278
287
|
],
|
279
288
|
'rejected' => [
|
280
289
|
# - 550 5.7.0, Mail Sending denied. This error occurs if the sender account is disabled
|
281
290
|
# or not registered within your Google Workspace domain.
|
282
291
|
# - https://support.google.com/a/answer/6140680#maildenied
|
283
292
|
['550', '5.7.0', 'mail sending denied'],
|
284
|
-
['550', '5.7.1', 'unauthenticated email is not accepted
|
293
|
+
['550', '5.7.1', 'unauthenticated email is not accepted'],
|
285
294
|
],
|
286
295
|
'requireptr' => [
|
287
296
|
# - 550 5.7.1 This message does not meet IPv6 sending guidelines regarding PTR records
|
288
297
|
# and authentication. For more information, go to Email sender guidelines.
|
289
298
|
# https://support.google.com/mail/?p=IPv6AuthError
|
290
|
-
['550', '5.7.1', '
|
299
|
+
['550', '5.7.1', 'does not meet ipv6 sending guidelines regarding ptr records and authentication'],
|
291
300
|
|
292
301
|
# - 421 4.7.0 The IP address sending this message does not have a PTR record, or the
|
293
302
|
# corresponding forward DNS entry does not point to the sending IP. To protect our
|
294
303
|
# users from spam, mail sent from your IP address has been temporarily rate limited.
|
295
304
|
# For more information, go to Email sender guidelines.
|
296
|
-
|
305
|
+
['421', '4.7.0', 'does not have a ptr record'],
|
306
|
+
|
307
|
+
# - 421 4.7.23 The sending IP address for this message doesn't have a PTR record, or
|
308
|
+
# the PTR record's forward DNS entry doesn't match the sending IP address. To protect
|
309
|
+
# users from spam, your email has been temporarily rate limited.
|
310
|
+
['421', '4.7.23', ' have a ptr record, or the ptr record'],
|
311
|
+
|
297
312
|
# - 550 5.7.25 The IP address sending this message does not have a PTR record setup, or
|
298
313
|
# the corresponding forward DNS entry does not point to the sending IP. As a policy,
|
299
314
|
# Gmail does not accept messages from IPs with missing PTR records.
|
@@ -303,9 +318,8 @@ module Sisimai
|
|
303
318
|
# - 550 5.7.25 The sending IP does not match the IP address of the hostname specified
|
304
319
|
# in the pointer (PTR) record. For more information, go to Email sender guidelines.
|
305
320
|
# - https://support.google.com/mail/answer/81126#ip-practices
|
306
|
-
['
|
307
|
-
['550', '5.7.25', 'the ip address
|
308
|
-
['550', '5.7.25', 'the sending ip does not match the ip address of the hostname'],
|
321
|
+
['550', '5.7.25', 'does not have a ptr record'],
|
322
|
+
['550', '5.7.25', 'does not match the ip address of the hostname'],
|
309
323
|
],
|
310
324
|
'securityerror' => [
|
311
325
|
# - 421 4.7.0 TLS required for RCPT domain, closing connection. For more information,
|
@@ -313,7 +327,7 @@ module Sisimai
|
|
313
327
|
#
|
314
328
|
# - 454 4.7.0 Too many login attempts, please try again later. For more information, go
|
315
329
|
# to Add Gmail to another email client. https://support.google.com/mail/answer/7126229
|
316
|
-
['421', '4.7.0', 'tls required for rcpt domain
|
330
|
+
['421', '4.7.0', 'tls required for rcpt domain'],
|
317
331
|
['454', '4.7.0', 'too many login attempts'],
|
318
332
|
|
319
333
|
# - 503 5.7.0 No identity changes permitted. For more information, go to About SMTP
|
@@ -334,32 +348,33 @@ module Sisimai
|
|
334
348
|
|
335
349
|
# - 535 5.7.1 Please log in with your web browser and then try again. For more infor-
|
336
350
|
# mation, visit https://support.google.com/mail/bin/accounts/answer/78754
|
337
|
-
['535', '5.7.1', 'please log in with your web browser
|
338
|
-
['534', '5.7.9', 'please log in with your web browser
|
339
|
-
['534', '5.7.14', 'please log in through your web browser
|
351
|
+
['535', '5.7.1', 'please log in with your web browser'],
|
352
|
+
['534', '5.7.9', 'please log in with your web browser'],
|
353
|
+
['534', '5.7.14', 'please log in through your web browser'],
|
340
354
|
|
341
355
|
# - 535 5.7.1 Username and Password not accepted. For more information, visit
|
342
356
|
# https://support.google.com/accounts/troubleshooter/2402620
|
343
357
|
['535', '5.7.1', 'username and password not accepted'],
|
344
358
|
['535', '5.7.8', 'username and password not accepted'],
|
345
359
|
|
346
|
-
# - 421 4.7.29
|
347
|
-
# all
|
348
|
-
#
|
349
|
-
['421', '4.7.29', '
|
360
|
+
# - 421 4.7.29 Your email has been rate limited because this message wasn't sent over a
|
361
|
+
# TLS connection. Gmail requires all bulk email senders to use TLS/SSL for SMTP conn-
|
362
|
+
# ections.
|
363
|
+
['421', '4.7.29', 'senders to use tls/ssl for smtp'],
|
364
|
+
['550', '5.7.29', 'senders to use tls/ssl for smtp'],
|
350
365
|
],
|
351
366
|
'spamdetected' => [
|
352
367
|
# - 421 4.7.0 This message is suspicious due to the nature of the content or the links
|
353
368
|
# within. To best protect our users from spam, the message has been blocked. For more
|
354
369
|
# information, go to Why has Gmail blocked my messages?.
|
355
370
|
# https://support.google.com/mail/answer/188131
|
356
|
-
['421', '4.7.0', '
|
371
|
+
['421', '4.7.0', 'due to the nature of the content or the links within'],
|
357
372
|
|
358
373
|
# - 550 5.7.1 Our system has detected that this message is likely unsolicited mail. To
|
359
374
|
# reduce the amount of spam sent to Gmail, this message has been blocked.
|
360
375
|
# For more information, visit https://support.google.com/mail/answer/188131
|
361
376
|
# - https://support.google.com/mail/?p=UnsolicitedMessageError
|
362
|
-
['550', '5.7.1', '
|
377
|
+
['550', '5.7.1', 'likely unsolicited mail'],
|
363
378
|
],
|
364
379
|
'speeding' => [
|
365
380
|
# - 450 4.2.1 The user you are trying to contact is receiving mail too quickly. Please
|
@@ -378,8 +393,8 @@ module Sisimai
|
|
378
393
|
# later time. If the user is able to receive mail at that time, your message will be
|
379
394
|
# delivered. For more information, visit https://support.google.com/mail/answer/6592
|
380
395
|
# - https://support.google.com/mail/?p=ReceivingRatePerm
|
381
|
-
['450', '4.2.1', '
|
382
|
-
['550', '5.2.1', '
|
396
|
+
['450', '4.2.1', 'rate that prevents additional messages from being delivered'],
|
397
|
+
['550', '5.2.1', 'rate that prevents additional messages from being delivered'],
|
383
398
|
|
384
399
|
# - 550 5.4.5 Daily SMTP relay limit exceeded for user. For more information on SMTP
|
385
400
|
# relay sending limits please contact your administrator or visit SMTP relay service
|
@@ -396,17 +411,17 @@ module Sisimai
|
|
396
411
|
'suspend' => [
|
397
412
|
# - 550 5.2.1 The email account that you tried to reach is inactive.
|
398
413
|
# For more information, go to https://support.google.com/mail/?p=DisabledUser
|
399
|
-
['550', '5.2.1', '
|
400
|
-
['550', '5.2.1', '
|
414
|
+
['550', '5.2.1', 'account that you tried to reach is disabled'],
|
415
|
+
['550', '5.2.1', 'account that you tried to reach is inactive'],
|
401
416
|
],
|
402
417
|
'syntaxerror' => [
|
403
418
|
# - 523 5.7.10 SMTP protocol violation, no commands allowed to pipeline after STARTTLS.
|
404
419
|
# For more information, go to About SMTP error messages and review RFC 3207
|
405
420
|
# specifications.
|
406
421
|
['451', '4.5.0', 'smtp protocol violation'],
|
407
|
-
['454', '4.5.0', 'smtp protocol violation
|
408
|
-
['525', '5.7.10', 'smtp protocol violation
|
409
|
-
['535', '5.5.4', 'optional argument not permitted
|
422
|
+
['454', '4.5.0', 'smtp protocol violation'],
|
423
|
+
['525', '5.7.10', 'smtp protocol violation'],
|
424
|
+
['535', '5.5.4', 'optional argument not permitted'],
|
410
425
|
['454', '5.5.1', 'starttls may not be repeated'],
|
411
426
|
|
412
427
|
# - 501 5.5.2 Syntax error, cannot decode response. For more information, go to About
|
@@ -455,6 +455,9 @@ module Sisimai
|
|
455
455
|
# - This message usually indicates an issue on the destination email server. Check the
|
456
456
|
# validity of the recipient address. Determine if the destination server is configur-
|
457
457
|
# ed correctly to receive the messages.
|
458
|
+
['4.4.317', 0, 0, 'starttls is required to send mail'],
|
459
|
+
['5.4.317', 0, 0, 'starttls is required to send mail'],
|
460
|
+
|
458
461
|
['4.7.321', 0, 0, 'starttls-not-supported: destination mail server must support tls to receive mail'],
|
459
462
|
['5.7.321', 0, 0, 'starttls-not-supported: destination mail server must support tls to receive mail'],
|
460
463
|
|
@@ -599,6 +602,11 @@ module Sisimai
|
|
599
602
|
['4.4.25', 0, 0, 'message failed to be replicated: no healthy secondary server available to accept replica at this time.'],
|
600
603
|
['4.4.28', 0, 0, 'message failed to be replicated: the operation was canceled'],
|
601
604
|
|
605
|
+
# 550 5.4.318 Message expired, connection reset (SuspiciousRemoteServerError)
|
606
|
+
# 450 4.4.318 Connection was closed abruptly (SuspiciousRemoteServerError)
|
607
|
+
['4.4.318', 0, 0, '(suspiciousremoteservererror)'],
|
608
|
+
['5.4.318', 0, 0, '(suspiciousremoteservererror)'],
|
609
|
+
|
602
610
|
# - status=deferred (host hotmail-com.olc.protection.outlook.com[192.0.2.1] said:
|
603
611
|
# 451 4.7.500 Server busy. Please try again later from [192.0.2.2]. (AS761) (in reply
|
604
612
|
# to RCPT TO command))
|
@@ -93,15 +93,15 @@ module Sisimai
|
|
93
93
|
else
|
94
94
|
# Rejected by other SMTP commands: AUTH, MAIL,
|
95
95
|
# もしもこのブロックを通過するNTTドコモからのエラーメッセージを見つけたら
|
96
|
-
# https://github.com/sisimai/
|
96
|
+
# https://github.com/sisimai/rb-sisimai/issues からご連絡ねがいます。
|
97
97
|
#
|
98
98
|
# If you found a error message from mfsmax.docomo.ne.jp which passes this block,
|
99
|
-
# please open an issue at https://github.com/sisimai/
|
99
|
+
# please open an issue at https://github.com/sisimai/rb-sisimai/issues .
|
100
100
|
end
|
101
101
|
else
|
102
102
|
# Status: field is neither 5.0.0 nor values defined in code above
|
103
103
|
# もしもこのブロックを通過するNTTドコモからのエラーメッセージを見つけたら
|
104
|
-
# https://github.com/sisimai/
|
104
|
+
# https://github.com/sisimai/rb-sisimai/issues からご連絡ねがいます。
|
105
105
|
#
|
106
106
|
# If you found a error message from mfsmax.docomo.ne.jp which passes this block,
|
107
107
|
#
|
data/lib/sisimai/version.rb
CHANGED
@@ -0,0 +1,27 @@
|
|
1
|
+
Date: Thu, 2 May 2024 17:48:55 +0000 (UTC)
|
2
|
+
From: example@icloud.com
|
3
|
+
Reply-To: example@icloud.com
|
4
|
+
To: opt-out-100731.e75std53hz8rnmy4r@example.org
|
5
|
+
Message-ID: <898B6152-36BC-4F4B-ABF8-2694A88CB5FC@icloud.com>
|
6
|
+
Subject: unsubscribe
|
7
|
+
MIME-Version: 1.0
|
8
|
+
Content-Type: text/plain; charset=UTF-8
|
9
|
+
Content-Transfer-Encoding: quoted-printable
|
10
|
+
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=icloud.com;
|
11
|
+
s=1a1hai; t=1714672136; bh=63IYtxpNtEan90vzJQT9iqnMeWHy9rlx8iFLnco1rRc=;
|
12
|
+
h=Content-Type:From:Mime-Version:Date:Subject:Message-Id:To;
|
13
|
+
b=AoovfvadwxCx8Pp5yD62kw1AcKMQV32RhSrBsyw4qLr/CVsQo1tIh+xCUPdI7So9i
|
14
|
+
paxzn20YdVvHuP3f8CxT/q3x9WaQV3NDAmbbQumYwOpJk7yNXRkuWNjIlt6isZM0tb
|
15
|
+
FK8v+Tq3j3Va83mZ6OeR8ZjvfY8ImjewEOTEZ79sNxToaaHvRuDWRbzt4uaktRuL44
|
16
|
+
j1wEjiKxgy6f7bOC2XJyRaf41BtCm4V6TGtcBF9hOEMzn6LulaLgashs3yGQ92wkb9
|
17
|
+
OLSy1uP0iA4nj/qAM+QaauAFzmqYmqa9r7rUFCjqf01q4gvn1QfO4QVqiRQXiMXc8e
|
18
|
+
QPSqskbSbsIQA==
|
19
|
+
X-Proofpoint-GUID: fiybgv3DewxSxApGH8GnpeSw3OZld4ll
|
20
|
+
Auto-Submitted: auto-replied
|
21
|
+
X-Apple-Unsubscribe: true
|
22
|
+
X-Proofpoint-ORIG-GUID: fiybgv3DewxSxApGH8GnpeSw3OZld4ll
|
23
|
+
X-Virus-Status: Clean
|
24
|
+
|
25
|
+
Apple Mail sent this email to unsubscribe from the message =E2=80=9Cunsubsc=
|
26
|
+
ribe=E2=80=9D.
|
27
|
+
|
@@ -0,0 +1,86 @@
|
|
1
|
+
Return-Path: <>
|
2
|
+
X-Original-To: neko@example.jp
|
3
|
+
Delivered-To: return@example.jp
|
4
|
+
Received: from relay1.example.ne.jp (ip-10-25-26-27.ip-block.example.net [10.25.26.27])
|
5
|
+
by mx1.example.jp (Postfix) with ESMTPS id KF65BTjb2jzpq4Pk
|
6
|
+
for <neko@example.jp>; Thu, 29 Apr 2024 23:34:45 +0900 (JST)
|
7
|
+
Received: from localhost (localhost)
|
8
|
+
by relay1.example.ne.jp (8.17.2/8.17.2) id gWjKPD2i071354;
|
9
|
+
Thu, 29 Apr 2024 23:34:45 +0900 (JST)
|
10
|
+
(envelope-from MAILER-DAEMON)
|
11
|
+
MIME-Version: 1.0
|
12
|
+
Date: Thu, 29 Apr 2024 23:34:45 +0900 (JST)
|
13
|
+
From: Mail Delivery Subsystem <MAILER-DAEMON@relay1.example.ne.jp>
|
14
|
+
To: <neko@example.jp>
|
15
|
+
Message-Id: <20240429233445.gWjKPD2i071354@relay1.example.ne.jp>
|
16
|
+
Content-Type: multipart/report; report-type=delivery-status;
|
17
|
+
boundary="gWjKPD2i071354.1423881060/relay1.example.ne.jp"
|
18
|
+
Subject: Returned mail: see transcript for details
|
19
|
+
Auto-Submitted: auto-generated (failure)
|
20
|
+
|
21
|
+
This is a MIME-encapsulated message
|
22
|
+
|
23
|
+
--gWjKPD2i071354.1423881060/relay1.example.ne.jp
|
24
|
+
|
25
|
+
The original message was received at Thu, 29 Apr 2024 23:34:45 +0900 (JST)
|
26
|
+
from localhost [127.0.0.1]
|
27
|
+
|
28
|
+
----- The following addresses had permanent fatal errors -----
|
29
|
+
<pseudo-local-part-of-microsoft@outlook.com>
|
30
|
+
(reason: 550 5.7.509 Access denied, sending domain [EXAMPLE.JP] does not pass DMARC verification and has a D...E22] [JUTN0NNV051736.eop-eur22.prod.protection.outlook.com 2024-04-29T23:34:45.000Z K2TP4MV8R6ZF2XN2])
|
31
|
+
|
32
|
+
----- Transcript of session follows -----
|
33
|
+
... while talking to apc.olc.protection.outlook.com.:
|
34
|
+
>>> DATA
|
35
|
+
<<< 550 5.7.509 Access denied, sending domain [EXAMPLE.JP] does not pass DMARC verification and has a DMARC policy of reject. [7FQL1BDY0XZ5XGTW.JPNP222.PROD.OUTLOOK.COM 2024-04-29T23:34:45.000Z NG5X6YLY2QZK8T7B] [VB0JMRQKNLZPTQMN.eurprd06.prod.outlook.com 2024-04-29T23:34:45.000Z HTTZYWCWHTZK8F8N] [JUTN0NNV051736.eop-eur22.prod.protection.outlook.com 2024-04-29T23:34:45.000Z K2TP4MV8R6ZF2XN2]
|
36
|
+
554 5.0.0 Service unavailable
|
37
|
+
|
38
|
+
--gWjKPD2i071354.1423881060/relay1.example.ne.jp
|
39
|
+
Content-Type: message/delivery-status
|
40
|
+
|
41
|
+
Reporting-MTA: dns; relay1.example.ne.jp
|
42
|
+
Received-From-MTA: DNS; localhost
|
43
|
+
Arrival-Date: Thu, 29 Apr 2024 23:34:45 +0900 (JST)
|
44
|
+
|
45
|
+
Final-Recipient: RFC822; pseudo-local-part-of-microsoft@outlook.com
|
46
|
+
X-Actual-Recipient: rfc822; pseudo-local-part-of-microsoft@outlook.com
|
47
|
+
Action: failed
|
48
|
+
Status: 5.7.509
|
49
|
+
Remote-MTA: DNS; apc.olc.protection.outlook.com
|
50
|
+
Diagnostic-Code: SMTP; 550 5.7.509 Access denied, sending domain [EXAMPLE.JP] does not pass DMARC verification and has a DMARC policy of reject. [7FQL1BDY0XZ5XGTW.JPNP222.PROD.OUTLOOK.COM 2024-04-29T23:34:45.000Z NG5X6YLY2QZK8T7B] [VB0JMRQKNLZPTQMN.eurprd06.prod.outlook.com 2024-04-29T23:34:45.000Z HTTZYWCWHTZK8F8N] [JUTN0NNV051736.eop-eur22.prod.protection.outlook.com 2024-04-29T23:34:45.000Z K2TP4MV8R6ZF2XN2]
|
51
|
+
Last-Attempt-Date: Thu, 29 Apr 2024 23:34:45 +0900 (JST)
|
52
|
+
|
53
|
+
--gWjKPD2i071354.1423881060/relay1.example.ne.jp
|
54
|
+
Content-Type: message/rfc822
|
55
|
+
|
56
|
+
Return-Path: <neko@example.jp>
|
57
|
+
Received: from relay1.example.ne.jp (localhost [127.0.0.1])
|
58
|
+
by relay1.example.ne.jp (8.17.2/8.17.2) with ESMTP id YQKNBhqe049695
|
59
|
+
for <pseudo-local-part-of-microsoft@outlook.com>; Thu, 29 Apr 2024 23:34:45 +0900 (JST)
|
60
|
+
(envelope-from neko@example.jp)
|
61
|
+
Received: (from neko-nyaan-cat@localhost)
|
62
|
+
by relay1.example.ne.jp (8.17.2/8.17.2/Submit) id J05hAdU8018709
|
63
|
+
for pseudo-local-part-of-microsoft@outlook.com; Thu, 29 Apr 2024 23:34:45 +0900 (JST)
|
64
|
+
(envelope-from neko@example.jp)
|
65
|
+
Received: from relay0.example.jp (relay0.example.jp [192.0.2.25])
|
66
|
+
by relay1.example.ne.jp (8.17.2/8.17.2) with ESMTPS id Ufhljuhn061193
|
67
|
+
(version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NO)
|
68
|
+
for <kijitora@example.co.jp>; Thu, 29 Apr 2024 23:34:45 +0900 (JST)
|
69
|
+
(envelope-from neko@example.jp)
|
70
|
+
Received: from MTA1 (unknown [10.9.8.7])
|
71
|
+
by relay0.example.jp (Postfix) with ESMTP id Mgt61KRzl7zjTNcc
|
72
|
+
for <kijitora@example.co.jp>; Thu, 29 Apr 2024 23:34:45 +0900 (JST)
|
73
|
+
From: <neko@example.jp>
|
74
|
+
To: "Kijitora, Cat" <kijitora@example.co.jp>
|
75
|
+
Reply-To: sironeko@cat.example.org
|
76
|
+
Date: 29 Apr 2024 23:34:45 +0900
|
77
|
+
Subject: Nyaaaaan
|
78
|
+
MIME-Version: 1.0
|
79
|
+
Content-Type: text/plain; charset=iso-2022-jp
|
80
|
+
Message-Id: <Mgt61KRzl7zjTNcc@relay0.example.jp>
|
81
|
+
Content-Transfer-Encoding: 8bit
|
82
|
+
|
83
|
+
Nyaan?
|
84
|
+
|
85
|
+
--gWjKPD2i071354.1423881060/relay1.example.ne.jp--
|
86
|
+
|
@@ -0,0 +1,83 @@
|
|
1
|
+
Return-Path: <>
|
2
|
+
X-Original-To: kijitora@example.jp
|
3
|
+
Delivered-To: return@example.jp
|
4
|
+
Received: from relay0.example.jp (relay0 [10.25.26.27])
|
5
|
+
by relay1.example.jp (Postfix) with ESMTPS id nhpzScP2kkzDgQ8L
|
6
|
+
for <kijitora@example.jp>; Thu, 9 May 2024 23:34:45 +0900 (JST)
|
7
|
+
Received: by relay0.example.jp (Postfix)
|
8
|
+
id 9ltCcYNCJ4zblqrq; Thu, 9 May 2024 23:34:45 +0900 (JST)
|
9
|
+
Date: Thu, 9 May 2024 23:34:45 +0900 (JST)
|
10
|
+
From: MAILER-DAEMON@relay0.example.jp (Mail Delivery System)
|
11
|
+
To: kijitora@example.jp
|
12
|
+
Subject: Undelivered Mail Returned to Sender
|
13
|
+
Message-Id: <9ltCcYNCJ4zblqrq@relay0.example.jp>
|
14
|
+
Auto-Submitted: auto-replied
|
15
|
+
MIME-Version: 1.0
|
16
|
+
Content-Type: multipart/report; report-type=delivery-status;
|
17
|
+
boundary="WpZGzDpcy1zw5NGv.1098352336/relay0.example.jp"
|
18
|
+
|
19
|
+
This is a MIME-encapsulated message.
|
20
|
+
|
21
|
+
--WpZGzDpcy1zw5NGv.1098352336/relay0.example.jp
|
22
|
+
Content-Description: Notification
|
23
|
+
Content-Type: text/plain; charset=us-ascii
|
24
|
+
|
25
|
+
This is the mail system at host relay0.example.jp.
|
26
|
+
|
27
|
+
I'm sorry to have to inform you that your message could not
|
28
|
+
be delivered to one or more recipients. It's attached below.
|
29
|
+
|
30
|
+
For further assistance, please send mail to postmaster.
|
31
|
+
|
32
|
+
If you do so, please include this problem report. You can
|
33
|
+
delete your own text from the attached returned message.
|
34
|
+
|
35
|
+
The mail system
|
36
|
+
|
37
|
+
<pseudo-local-part-of-microsoft@outlook.com>: host
|
38
|
+
outlook-com.olc.protection.outlook.com[52.101.68.1] said: 451 4.7.650 The
|
39
|
+
mail server [192.0.2.25] has been temporarily rate limited due to IP
|
40
|
+
reputation. For e-mail delivery information, see
|
41
|
+
https://postmaster.live.com (S3113)
|
42
|
+
[5NY1SSJFSTZJRJBG.eurprd02.prod.outlook.com 2024-05-09T23:34:45.000Z
|
43
|
+
GLXTWVLGZHZNHVXY] (in reply to MAIL FROM command)
|
44
|
+
|
45
|
+
--WpZGzDpcy1zw5NGv.1098352336/relay0.example.jp
|
46
|
+
Content-Description: Delivery report
|
47
|
+
Content-Type: message/delivery-status
|
48
|
+
|
49
|
+
Reporting-MTA: dns; relay0.example.jp
|
50
|
+
X-Postfix-Queue-ID: WpZGzDpcy1zw5NGv
|
51
|
+
X-Postfix-Sender: rfc822; kijitora@example.jp
|
52
|
+
Arrival-Date: Thu, 9 May 2024 23:34:45 +0900 (JST)
|
53
|
+
|
54
|
+
Final-Recipient: rfc822; pseudo-local-part-of-microsoft@outlook.com
|
55
|
+
Original-Recipient: rfc822;pseudo-local-part-of-microsoft@outlook.com
|
56
|
+
Action: failed
|
57
|
+
Status: 4.7.650
|
58
|
+
Remote-MTA: dns; outlook-com.olc.protection.outlook.com
|
59
|
+
Diagnostic-Code: smtp; 451 4.7.650 The mail server [192.0.2.25] has been
|
60
|
+
temporarily rate limited due to IP reputation. For e-mail delivery
|
61
|
+
information, see https://postmaster.live.com (S3113)
|
62
|
+
[5NY1SSJFSTZJRJBG.eurprd02.prod.outlook.com 2024-05-09T23:34:45.000Z
|
63
|
+
GLXTWVLGZHZNHVXY]
|
64
|
+
|
65
|
+
--WpZGzDpcy1zw5NGv.1098352336/relay0.example.jp
|
66
|
+
Content-Description: Undelivered Message
|
67
|
+
Content-Type: message/rfc822
|
68
|
+
|
69
|
+
Return-Path: <kijitora@example.jp>
|
70
|
+
Received: from mailhub1.example.jp (unknown [10.9.8.7])
|
71
|
+
by relay0.example.jp (Postfix) with ESMTP id WpZGzDpcy1zw5NGv
|
72
|
+
for <pseudo-local-part-of-microsoft@outlook.com>; Thu, 9 May 2024 23:34:45 +0900 (JST)
|
73
|
+
From: <kijitora@example.jp>
|
74
|
+
To: <pseudo-local-part-of-microsoft@outlook.com>
|
75
|
+
Date: 9 May 2024 23:34:45 +0900
|
76
|
+
Message-Id: <WpZGzDpcy1zw5NGv@relay0.example.jp>
|
77
|
+
Subject: Nyaan
|
78
|
+
MIME-Version: 1.0
|
79
|
+
Content-Type: text/plain; charset=iso-2022-jp
|
80
|
+
|
81
|
+
Nyaan?
|
82
|
+
|
83
|
+
--WpZGzDpcy1zw5NGv.1098352336/relay0.example.jp--
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sisimai
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 5.0.
|
4
|
+
version: 5.0.3
|
5
5
|
platform: java
|
6
6
|
authors:
|
7
7
|
- azumakuniyuki
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2024-
|
11
|
+
date: 2024-05-22 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
requirement: !ruby/object:Gem::Requirement
|
@@ -80,10 +80,10 @@ executables: []
|
|
80
80
|
extensions: []
|
81
81
|
extra_rdoc_files: []
|
82
82
|
files:
|
83
|
+
- ".github/workflows/codecovio.yml"
|
83
84
|
- ".github/workflows/rake-test.yml"
|
84
85
|
- ".gitignore"
|
85
86
|
- ".rubocop.yml"
|
86
|
-
- ".travis.yml"
|
87
87
|
- ANALYTICAL-PRECISION
|
88
88
|
- Benchmarks.mk
|
89
89
|
- CONTRIBUTING
|
@@ -251,6 +251,7 @@ files:
|
|
251
251
|
- set-of-emails/maildir/bsd/arf-23.eml
|
252
252
|
- set-of-emails/maildir/bsd/arf-24.eml
|
253
253
|
- set-of-emails/maildir/bsd/arf-25.eml
|
254
|
+
- set-of-emails/maildir/bsd/arf-26.eml
|
254
255
|
- set-of-emails/maildir/bsd/lhost-activehunter-01.eml
|
255
256
|
- set-of-emails/maildir/bsd/lhost-activehunter-02.eml
|
256
257
|
- set-of-emails/maildir/bsd/lhost-amavis-01.eml
|
@@ -752,6 +753,8 @@ files:
|
|
752
753
|
- set-of-emails/maildir/bsd/rhost-microsoft-01.eml
|
753
754
|
- set-of-emails/maildir/bsd/rhost-microsoft-02.eml
|
754
755
|
- set-of-emails/maildir/bsd/rhost-microsoft-03.eml
|
756
|
+
- set-of-emails/maildir/bsd/rhost-microsoft-04.eml
|
757
|
+
- set-of-emails/maildir/bsd/rhost-microsoft-05.eml
|
755
758
|
- set-of-emails/maildir/bsd/rhost-mimecast-01.eml
|
756
759
|
- set-of-emails/maildir/bsd/rhost-mimecast-02.eml
|
757
760
|
- set-of-emails/maildir/bsd/rhost-nttdocomo-01.eml
|
data/.travis.yml
DELETED
@@ -1,23 +0,0 @@
|
|
1
|
-
language: ruby
|
2
|
-
rvm:
|
3
|
-
# See http://rubies.travis-ci.org for Precompiled Ruby Versions
|
4
|
-
# - 2.1.1
|
5
|
-
# - 2.2.10
|
6
|
-
# - 2.3.0
|
7
|
-
- 2.4.9
|
8
|
-
# - 2.5.0
|
9
|
-
- 2.6.6
|
10
|
-
- 2.7.0
|
11
|
-
# - jruby-9.0.5.0
|
12
|
-
# - jruby-9.1.9.0
|
13
|
-
before_install:
|
14
|
-
script:
|
15
|
-
- make user-test
|
16
|
-
sudo: false
|
17
|
-
notifications:
|
18
|
-
recipients:
|
19
|
-
- azumakuniyuki+travis-ci.org@gmail.com
|
20
|
-
email:
|
21
|
-
on_success: change
|
22
|
-
on_failure: always
|
23
|
-
|