sisimai 4.20.1-java → 4.20.2-java
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of sisimai might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/.rubocop.yml +12 -2
- data/Changes +11 -1
- data/README-JA.md +135 -202
- data/README.md +128 -192
- data/fig/sisimai-architecture.png +0 -0
- data/lib/sisimai.rb +5 -3
- data/lib/sisimai/arf.rb +2 -2
- data/lib/sisimai/ced/us/amazonses.rb +5 -5
- data/lib/sisimai/ced/us/sendgrid.rb +4 -4
- data/lib/sisimai/data.rb +1 -8
- data/lib/sisimai/data/json.rb +1 -1
- data/lib/sisimai/datetime.rb +1 -1
- data/lib/sisimai/mail/maildir.rb +3 -3
- data/lib/sisimai/mda.rb +2 -2
- data/lib/sisimai/message.rb +7 -3
- data/lib/sisimai/message/email.rb +8 -2
- data/lib/sisimai/mime.rb +2 -2
- data/lib/sisimai/msp/de/einsundeins.rb +2 -2
- data/lib/sisimai/msp/de/gmx.rb +2 -2
- data/lib/sisimai/msp/jp/biglobe.rb +2 -2
- data/lib/sisimai/msp/jp/ezweb.rb +2 -2
- data/lib/sisimai/msp/jp/kddi.rb +3 -3
- data/lib/sisimai/msp/ru/mailru.rb +3 -3
- data/lib/sisimai/msp/ru/yandex.rb +2 -2
- data/lib/sisimai/msp/uk/messagelabs.rb +2 -2
- data/lib/sisimai/msp/us/amazonses.rb +4 -5
- data/lib/sisimai/msp/us/amazonworkmail.rb +2 -2
- data/lib/sisimai/msp/us/aol.rb +2 -2
- data/lib/sisimai/msp/us/bigfoot.rb +3 -3
- data/lib/sisimai/msp/us/facebook.rb +2 -2
- data/lib/sisimai/msp/us/google.rb +2 -2
- data/lib/sisimai/msp/us/office365.rb +2 -3
- data/lib/sisimai/msp/us/outlook.rb +2 -2
- data/lib/sisimai/msp/us/receivingses.rb +2 -2
- data/lib/sisimai/msp/us/sendgrid.rb +2 -2
- data/lib/sisimai/msp/us/verizon.rb +3 -3
- data/lib/sisimai/msp/us/yahoo.rb +2 -2
- data/lib/sisimai/msp/us/zoho.rb +2 -2
- data/lib/sisimai/mta/activehunter.rb +2 -2
- data/lib/sisimai/mta/apachejames.rb +3 -3
- data/lib/sisimai/mta/courier.rb +3 -3
- data/lib/sisimai/mta/domino.rb +2 -2
- data/lib/sisimai/mta/exchange2003.rb +4 -4
- data/lib/sisimai/mta/exchange2007.rb +2 -2
- data/lib/sisimai/mta/exim.rb +8 -4
- data/lib/sisimai/mta/imailserver.rb +3 -3
- data/lib/sisimai/mta/interscanmss.rb +3 -3
- data/lib/sisimai/mta/mailfoundry.rb +2 -2
- data/lib/sisimai/mta/mailmarshalsmtp.rb +2 -2
- data/lib/sisimai/mta/mcafee.rb +2 -2
- data/lib/sisimai/mta/messagingserver.rb +3 -3
- data/lib/sisimai/mta/mfilter.rb +2 -2
- data/lib/sisimai/mta/mxlogic.rb +3 -3
- data/lib/sisimai/mta/notes.rb +3 -3
- data/lib/sisimai/mta/opensmtpd.rb +2 -2
- data/lib/sisimai/mta/postfix.rb +3 -3
- data/lib/sisimai/mta/qmail.rb +3 -3
- data/lib/sisimai/mta/sendmail.rb +2 -2
- data/lib/sisimai/mta/surfcontrol.rb +2 -2
- data/lib/sisimai/mta/userdefined.rb +3 -3
- data/lib/sisimai/mta/v5sendmail.rb +3 -3
- data/lib/sisimai/mta/x1.rb +2 -2
- data/lib/sisimai/mta/x2.rb +2 -2
- data/lib/sisimai/mta/x3.rb +2 -2
- data/lib/sisimai/mta/x4.rb +3 -3
- data/lib/sisimai/mta/x5.rb +3 -3
- data/lib/sisimai/reason/rejected.rb +1 -0
- data/lib/sisimai/reason/securityerror.rb +7 -2
- data/lib/sisimai/reason/toomanyconn.rb +4 -0
- data/lib/sisimai/rfc3464.rb +3 -3
- data/lib/sisimai/rfc3834.rb +2 -2
- data/lib/sisimai/rfc5322.rb +4 -4
- data/lib/sisimai/rhost.rb +0 -1
- data/lib/sisimai/rhost/exchangeonline.rb +2 -2
- data/lib/sisimai/smtp.rb +4 -4
- data/lib/sisimai/smtp/error.rb +7 -12
- data/lib/sisimai/smtp/reply.rb +1 -1
- data/lib/sisimai/string.rb +7 -7
- data/lib/sisimai/version.rb +1 -1
- data/set-of-emails/maildir/bsd/rfc3834-06.eml +56 -0
- metadata +23 -20
@@ -42,6 +42,7 @@ module Sisimai
|
|
42
42
|
|error:[ ]no[ ]third-party[ ]dsns # SpamWall - block empty sender
|
43
43
|
|fully[ ]qualified[ ]email[ ]address[ ]required # McAfee
|
44
44
|
|invalid[ ]domain,[ ]see[ ][<]url:.+[>]
|
45
|
+
|Message[ ]rejected:[ ]Email[ ]address[ ]is[ ]not[ ]verified
|
45
46
|
|mx[ ]records[ ]for[ ].+[ ]violate[ ]section[ ].+
|
46
47
|
|name[ ]service[ ]error[ ]for[ ] # Malformed MX RR or host not found
|
47
48
|
|Null[ ]Sender[ ]is[ ]not[ ]allowed
|
@@ -27,8 +27,12 @@ module Sisimai
|
|
27
27
|
def match(argv1)
|
28
28
|
return nil unless argv1
|
29
29
|
regex = %r{(?>
|
30
|
-
|
31
|
-
|
30
|
+
Account[ ]not[ ]subscribed[ ]to[ ]SES
|
31
|
+
|authentication[ ](?:
|
32
|
+
Credentials Invalid
|
33
|
+
|failure
|
34
|
+
|failed;[ ]server[ ].+[ ]said: # Postfix
|
35
|
+
|required
|
32
36
|
|turned[ ]on[ ]in[ ]your[ ]email[ ]client
|
33
37
|
)
|
34
38
|
|\d+[ ]denied[ ]\[[a-z]+\][ ].+[(]Mode:[ ].+[)]
|
@@ -49,6 +53,7 @@ module Sisimai
|
|
49
53
|
|sorry,[ ]you[ ]don'?t[ ]authenticate[ ]or[ ]the[ ]domain[ ]isn'?t[ ]in[ ]my[ ]list[ ]of[ ]allowed[ ]rcpthosts
|
50
54
|
|the[ ]message[ ]was[ ]rejected[ ]because[ ]it[ ]contains[ ]prohibited[ ]virus[ ]or[ ]spam[ ]content
|
51
55
|
|TLS[ ]required[ ]but[ ]not[ ]supported # SendGrid
|
56
|
+
|User[ ].+[ ]is[ ]not[ ]authorized[ ]to[ ]perform[ ]ses:SendRawEmail[ ]on[ ]resource
|
52
57
|
|you[ ]are[ ]not[ ]authorized[ ]to[ ]send[ ]mail,[ ]authentication[ ]is[ ]required
|
53
58
|
|You[ ]have[ ]exceeded[ ]the[ ]the[ ]allowable[ ]number[ ]of[ ]posts[ ]without[ ]solving[ ]a[ ]captcha
|
54
59
|
|verification[ ]failure
|
@@ -27,6 +27,10 @@ module Sisimai
|
|
27
27
|
All[ ]available[ ]IPs[ ]are[ ]at[ ]maximum[ ]connection[ ]limit # SendGrid
|
28
28
|
|connection[ ]rate[ ]limit[ ]exceeded
|
29
29
|
|no[ ]IPs[ ]available[ ][-][ ].+[ ]exceeds[ ]per[-]domain[ ]connection[ ]limit[ ]for
|
30
|
+
|Throttling[ ]failure:[ ](?:
|
31
|
+
Daily[ ]message[ ]quota[ ]exceeded
|
32
|
+
|Maximum[ ]sending[ ]rate[ ]exceeded
|
33
|
+
)
|
30
34
|
|Too[ ]many[ ](?:
|
31
35
|
connections
|
32
36
|
|connections[ ]from[ ]your[ ]host[.] # Microsoft
|
data/lib/sisimai/rfc3464.rb
CHANGED
@@ -62,7 +62,7 @@ module Sisimai
|
|
62
62
|
def scan(mhead, mbody)
|
63
63
|
return nil unless mhead
|
64
64
|
return nil unless mbody
|
65
|
-
return nil if mhead.keys.size
|
65
|
+
return nil if mhead.keys.size.zero?
|
66
66
|
return nil if mbody.empty?
|
67
67
|
|
68
68
|
require 'sisimai/mda'
|
@@ -88,7 +88,7 @@ module Sisimai
|
|
88
88
|
havepassed << e
|
89
89
|
p = havepassed[-2]
|
90
90
|
|
91
|
-
if readcursor
|
91
|
+
if readcursor.zero?
|
92
92
|
# Beginning of the bounce message or delivery status part
|
93
93
|
if e =~ Re1[:begin]
|
94
94
|
readcursor |= Indicators[:deliverystatus]
|
@@ -395,7 +395,7 @@ module Sisimai
|
|
395
395
|
break if e =~ Re1[:rfc822]
|
396
396
|
break if e =~ re_stop
|
397
397
|
|
398
|
-
next if e.size
|
398
|
+
next if e.size.zero?
|
399
399
|
next if e =~ re_skip
|
400
400
|
next if e =~ /\A[*]/
|
401
401
|
|
data/lib/sisimai/rfc3834.rb
CHANGED
@@ -52,8 +52,8 @@ module Sisimai
|
|
52
52
|
def scan(mhead, mbody)
|
53
53
|
return nil unless mhead
|
54
54
|
return nil unless mbody
|
55
|
-
return nil if mhead.keys.size
|
56
|
-
return nil if mbody.size
|
55
|
+
return nil if mhead.keys.size.zero?
|
56
|
+
return nil if mbody.size.zero?
|
57
57
|
|
58
58
|
leave = 0
|
59
59
|
match = 0
|
data/lib/sisimai/rfc5322.rb
CHANGED
@@ -112,7 +112,7 @@ module Sisimai
|
|
112
112
|
|\A(?:mailer-daemon|postmaster)\z
|
113
113
|
|[ ]?mailer-daemon[ ]
|
114
114
|
)
|
115
|
-
/xi
|
115
|
+
/xi
|
116
116
|
return true if email =~ re
|
117
117
|
return false
|
118
118
|
end
|
@@ -175,7 +175,7 @@ module Sisimai
|
|
175
175
|
break
|
176
176
|
end
|
177
177
|
|
178
|
-
if hostname.length
|
178
|
+
if hostname.length.zero?
|
179
179
|
# 2. Use IP address as a remote host name
|
180
180
|
addrlist.each do |e|
|
181
181
|
# Skip if the address is a private address
|
@@ -216,10 +216,10 @@ module Sisimai
|
|
216
216
|
lhs = cv[1].downcase
|
217
217
|
previousfn = ''
|
218
218
|
next unless HeaderIndex.key?(lhs)
|
219
|
-
|
219
|
+
|
220
220
|
previousfn = lhs
|
221
221
|
rfc822part += e + "\n"
|
222
|
-
|
222
|
+
|
223
223
|
elsif e =~ /\A[ \t]+/
|
224
224
|
# Continued line from the previous line
|
225
225
|
next if rfc822next[previousfn]
|
data/lib/sisimai/rhost.rb
CHANGED
data/lib/sisimai/smtp.rb
CHANGED
@@ -9,10 +9,10 @@ module Sisimai
|
|
9
9
|
# @return [Hash] SMTP command regular expressions
|
10
10
|
def command
|
11
11
|
return {
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
12
|
+
:helo => %r/\b(?:HELO|EHLO)\b/,
|
13
|
+
:mail => %r/\bMAIL F(?:ROM|rom)\b/,
|
14
|
+
:rcpt => %r/\bRCPT T[Oo]\b/,
|
15
|
+
:data => %r/\bDATA\b/,
|
16
16
|
}
|
17
17
|
end
|
18
18
|
|
data/lib/sisimai/smtp/error.rb
CHANGED
@@ -9,13 +9,13 @@ module Sisimai
|
|
9
9
|
require 'sisimai/smtp/status'
|
10
10
|
|
11
11
|
SoftOrHard = {
|
12
|
-
:soft =>
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
:hard =>
|
12
|
+
:soft => %w|
|
13
|
+
blocked contenterror exceedlimit expired filtered mailboxfull
|
14
|
+
mailererror mesgtoobig networkerror norelaying rejected suspend
|
15
|
+
securityerror spamdetected syntaxerror systemerror systemfull
|
16
|
+
toomanyconn
|
17
|
+
|,
|
18
|
+
:hard => %w|hasmoved hostunknown userunknown|
|
19
19
|
}
|
20
20
|
|
21
21
|
# Permanent error or not
|
@@ -28,10 +28,7 @@ module Sisimai
|
|
28
28
|
return nil unless argv1
|
29
29
|
return nil unless argv1.size > 0
|
30
30
|
|
31
|
-
statuscode = nil
|
32
|
-
classvalue = nil
|
33
31
|
getchecked = nil
|
34
|
-
|
35
32
|
statuscode = Sisimai::SMTP::Status.find(argv1)
|
36
33
|
statuscode = Sisimai::SMTP::Reply.find(argv1) if statuscode.empty?
|
37
34
|
classvalue = statuscode[0, 1].to_i
|
@@ -81,8 +78,6 @@ module Sisimai
|
|
81
78
|
return '' if argv1.empty?
|
82
79
|
|
83
80
|
getchecked = nil
|
84
|
-
statuscode = nil
|
85
|
-
classvalue = nil
|
86
81
|
softorhard = nil
|
87
82
|
|
88
83
|
if argv1 =~ /\A(?:delivered|feedback|vacation)\z/
|
data/lib/sisimai/smtp/reply.rb
CHANGED
data/lib/sisimai/string.rb
CHANGED
@@ -81,13 +81,13 @@ module Sisimai
|
|
81
81
|
plain = plain.gsub(%r|<a\s+href\s*=\s*['"](https?://.+?)['"].*?>(.*?)</a>|i, '[\2](\1)')
|
82
82
|
plain = plain.gsub(%r|<a\s+href\s*=\s*["']mailto:([^\s]+?)["']>(.*?)</a>|i, '[\2](mailto:\1)')
|
83
83
|
|
84
|
-
plain = plain.gsub(/<[^<@>]+?>\s*/,' ')
|
85
|
-
plain = plain.gsub(/</, '<')
|
86
|
-
plain = plain.gsub(/>/, '>')
|
87
|
-
plain = plain.gsub(/&/, '&')
|
88
|
-
plain = plain.gsub(/"/, '"')
|
89
|
-
plain = plain.gsub(/'/, "'")
|
90
|
-
plain = plain.gsub(/ /, ' ')
|
84
|
+
plain = plain.gsub(/<[^<@>]+?>\s*/, ' ') # Delete HTML tags except <neko@example.jp>
|
85
|
+
plain = plain.gsub(/</, '<') # Convert to left angle brackets
|
86
|
+
plain = plain.gsub(/>/, '>') # Convert to right angle brackets
|
87
|
+
plain = plain.gsub(/&/, '&') # Convert to "&"
|
88
|
+
plain = plain.gsub(/"/, '"') # Convert to '"'
|
89
|
+
plain = plain.gsub(/'/, "'") # Convert to "'"
|
90
|
+
plain = plain.gsub(/ /, ' ') # Convert to ' '
|
91
91
|
|
92
92
|
if argv1.size > plain.size
|
93
93
|
plain = plain.squeeze(' ')
|
data/lib/sisimai/version.rb
CHANGED
@@ -0,0 +1,56 @@
|
|
1
|
+
Return-Path: <>
|
2
|
+
Received: from mta.example.org ([192.0.2.1])
|
3
|
+
by inbound-smtp.us-east-1.amazonaws.com with SMTP id pseudo-smtp-session-id-string
|
4
|
+
for bounces+example.org@example.net.br;
|
5
|
+
Fri, 10 Feb 2017 19:14:33 +0000 (UTC)
|
6
|
+
X-SES-Spam-Verdict: PASS
|
7
|
+
X-SES-Virus-Verdict: PASS
|
8
|
+
Received-SPF: none (spfCheck: [192.0.2.22] is neither permitted nor denied by domain of example.org) client-ip=[192.0.2.12]; envelope-from=postmaster@example.com.br; helo=example.com.br;
|
9
|
+
Authentication-Results: amazonses.com;
|
10
|
+
spf=none (spfCheck: [192.0.2.12] is neither permitted nor denied by domain of example.com.br) client-ip=[192.0.2.221]; envelope-from=postmaster@example.com.br; helo=example.com.br;
|
11
|
+
X-SES-RECEIPT:
|
12
|
+
X-SES-DKIM-SIGNATURE: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/simple;
|
13
|
+
s=6gbrjpgwjskckoa6a5zn6fwqkn67xbtw; d=amazonses.com; t=1486754116;
|
14
|
+
h=X-SES-RECEIPT:Date:From:To:Message-ID:Subject:MIME-Version:Content-Type;
|
15
|
+
bh=0bYTWVAQOGTZY45Q929yxHVJoEggqClgGJJtcyDttRA=;
|
16
|
+
b=RFkTDfEJ8ugYYu823Qu40RfHxykHFb9xOjWWyQhMvRmtPrRPbgIvt/ozSO7i7A2y
|
17
|
+
/RK+3BLlbCeca8Onv7U7FZouOfe34TViXGTlv9KthLHndvFtv8XgbwmYfdlUSPyNJB6
|
18
|
+
bpU1A2ppoitWThG89fUd+1akanBfw0/deRA0I7T8=
|
19
|
+
Received: from localhost (localhost [127.0.0.1])
|
20
|
+
by example.com.br (Postfix) with ESMTP id 2D4F15228F6
|
21
|
+
for <bounces+example.org@example.net.br>; Fri, 10 Feb 2017 17:15:17 -0200 (BRST)
|
22
|
+
Received: from example.com.br ([127.0.0.1])
|
23
|
+
by localhost (example.com.br [127.0.0.1]) (amavisd-new, port 10032)
|
24
|
+
with ESMTP id R3_QsTphIcaa
|
25
|
+
for <bounces+example@example.net.br>;
|
26
|
+
Fri, 10 Feb 2017 17:15:17 -0200 (BRST)
|
27
|
+
Received: from localhost (localhost [127.0.0.1])
|
28
|
+
by example.com.br (Postfix) with ESMTP id 05A90522911
|
29
|
+
for <bounces+example@example.net.br>; Fri, 10 Feb 2017 17:15:17 -0200 (BRST)
|
30
|
+
X-Virus-Scanned: amavisd-new at example.com.br
|
31
|
+
Received: from example.com.br ([127.0.0.1])
|
32
|
+
by localhost (example.com.br [127.0.0.1]) (amavisd-new, port 10026)
|
33
|
+
with ESMTP id CsEmah0fuPMu
|
34
|
+
for <bounces+example@example.net.br>;
|
35
|
+
Fri, 10 Feb 2017 17:15:16 -0200 (BRST)
|
36
|
+
Received: from example.com.br (example.com.br [10.0.0.56])
|
37
|
+
by example.com.br (Postfix) with ESMTP id D473C5228F6
|
38
|
+
for <bounces+example.org@example.net.br>; Fri, 10 Feb 2017 17:15:16 -0200 (BRST)
|
39
|
+
Date: Fri, 10 Feb 2017 17:15:16 -0200 (BRST)
|
40
|
+
From: Kijitora <kijitora@example.org>
|
41
|
+
To:
|
42
|
+
bounces+example.org@example.net.br
|
43
|
+
Message-ID: <1257668210.10263839.1486754116408.JavaMail.zimbra@example.com.br>
|
44
|
+
In-Reply-To: <20170210191426.1wKDapP798yQEJKMGjlLVAmNMYzWOBbq@example.net.br>
|
45
|
+
Subject: =?utf-8?Q?Re:_EXAMPLE?=
|
46
|
+
MIME-Version: 1.0
|
47
|
+
Content-Type: text/plain; charset=utf-8
|
48
|
+
Content-Transfer-Encoding: quoted-printable
|
49
|
+
Auto-Submitted: auto-replied (zimbra; vacation)
|
50
|
+
Precedence: bulk
|
51
|
+
X-Mailer: Zimbra 8.6.0_GA_1153
|
52
|
+
Thread-Topic:
|
53
|
+
Thread-Index:
|
54
|
+
|
55
|
+
Estarei ausente do dia 08/02 at=C3=A9 o dia 12/03
|
56
|
+
favor encaminhar email para kijitora e example.org
|
metadata
CHANGED
@@ -1,78 +1,79 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sisimai
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 4.20.
|
4
|
+
version: 4.20.2
|
5
5
|
platform: java
|
6
6
|
authors:
|
7
7
|
- azumakuniyuki
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2017-03-11 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
|
+
name: bundler
|
14
15
|
requirement: !ruby/object:Gem::Requirement
|
15
16
|
requirements:
|
16
17
|
- - "~>"
|
17
18
|
- !ruby/object:Gem::Version
|
18
19
|
version: '1.8'
|
19
|
-
name: bundler
|
20
|
-
prerelease: false
|
21
20
|
type: :development
|
21
|
+
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: '1.8'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
|
+
name: rake
|
28
29
|
requirement: !ruby/object:Gem::Requirement
|
29
30
|
requirements:
|
30
31
|
- - "~>"
|
31
32
|
- !ruby/object:Gem::Version
|
32
33
|
version: '10.0'
|
33
|
-
name: rake
|
34
|
-
prerelease: false
|
35
34
|
type: :development
|
35
|
+
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
38
|
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '10.0'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
|
+
name: rspec
|
42
43
|
requirement: !ruby/object:Gem::Requirement
|
43
44
|
requirements:
|
44
45
|
- - "~>"
|
45
46
|
- !ruby/object:Gem::Version
|
46
47
|
version: '0'
|
47
|
-
name: rspec
|
48
|
-
prerelease: false
|
49
48
|
type: :development
|
49
|
+
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
52
|
- - "~>"
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: '0'
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
|
+
name: oj
|
56
57
|
requirement: !ruby/object:Gem::Requirement
|
57
58
|
requirements:
|
58
59
|
- - "~>"
|
59
60
|
- !ruby/object:Gem::Version
|
60
|
-
version: '
|
61
|
+
version: '2.14'
|
61
62
|
- - ">="
|
62
63
|
- !ruby/object:Gem::Version
|
63
|
-
version:
|
64
|
-
name: jrjackson
|
65
|
-
prerelease: false
|
64
|
+
version: 2.14.4
|
66
65
|
type: :runtime
|
66
|
+
prerelease: false
|
67
67
|
version_requirements: !ruby/object:Gem::Requirement
|
68
68
|
requirements:
|
69
69
|
- - "~>"
|
70
70
|
- !ruby/object:Gem::Version
|
71
|
-
version: '
|
71
|
+
version: '2.14'
|
72
72
|
- - ">="
|
73
73
|
- !ruby/object:Gem::Version
|
74
|
-
version:
|
75
|
-
description: Sisimai is a Ruby library for analyzing RFC5322 bounce emails and generating
|
74
|
+
version: 2.14.4
|
75
|
+
description: Sisimai is a Ruby library for analyzing RFC5322 bounce emails and generating
|
76
|
+
structured data from parsed results.
|
76
77
|
email:
|
77
78
|
- azumakuniyuki+rubygems.org@gmail.com
|
78
79
|
executables: []
|
@@ -96,6 +97,7 @@ files:
|
|
96
97
|
- appveyor.yml
|
97
98
|
- bin/console
|
98
99
|
- bin/setup
|
100
|
+
- fig/sisimai-architecture.png
|
99
101
|
- lib/sisimai.rb
|
100
102
|
- lib/sisimai/address.rb
|
101
103
|
- lib/sisimai/arf.rb
|
@@ -575,6 +577,7 @@ files:
|
|
575
577
|
- set-of-emails/maildir/bsd/rfc3834-03.eml
|
576
578
|
- set-of-emails/maildir/bsd/rfc3834-04.eml
|
577
579
|
- set-of-emails/maildir/bsd/rfc3834-05.eml
|
580
|
+
- set-of-emails/maildir/bsd/rfc3834-06.eml
|
578
581
|
- set-of-emails/maildir/bsd/rhost-exchange-online-01.eml
|
579
582
|
- set-of-emails/maildir/bsd/rhost-google-apps-01.eml
|
580
583
|
- set-of-emails/maildir/dos/arf-01.eml
|
@@ -740,7 +743,7 @@ homepage: http://libsisimai.org/
|
|
740
743
|
licenses:
|
741
744
|
- BSD-2-Clause
|
742
745
|
metadata: {}
|
743
|
-
post_install_message:
|
746
|
+
post_install_message:
|
744
747
|
rdoc_options: []
|
745
748
|
require_paths:
|
746
749
|
- lib
|
@@ -755,9 +758,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
755
758
|
- !ruby/object:Gem::Version
|
756
759
|
version: '0'
|
757
760
|
requirements: []
|
758
|
-
rubyforge_project:
|
759
|
-
rubygems_version: 2.
|
760
|
-
signing_key:
|
761
|
+
rubyforge_project:
|
762
|
+
rubygems_version: 2.6.8
|
763
|
+
signing_key:
|
761
764
|
specification_version: 4
|
762
765
|
summary: Mail Analyzing Interface
|
763
766
|
test_files: []
|