sisimai 4.21.0 → 4.21.1

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.

Files changed (64) hide show
  1. checksums.yaml +4 -4
  2. data/ANALYTICAL-PRECISION +8 -7
  3. data/ChangeLog.md +210 -0
  4. data/README-JA.md +1 -1
  5. data/README.md +1 -1
  6. data/lib/sisimai/mime.rb +15 -9
  7. data/lib/sisimai/msp/us/aol.rb +1 -0
  8. data/lib/sisimai/msp/us/gsuite.rb +26 -7
  9. data/lib/sisimai/mta/postfix.rb +2 -0
  10. data/lib/sisimai/reason/blocked.rb +4 -0
  11. data/lib/sisimai/reason/norelaying.rb +2 -1
  12. data/lib/sisimai/reason/securityerror.rb +1 -0
  13. data/lib/sisimai/reason/userunknown.rb +5 -5
  14. data/lib/sisimai/smtp/status.rb +2 -2
  15. data/lib/sisimai/version.rb +1 -1
  16. data/set-of-emails/maildir/bsd/msp-ru-mailru-05.eml +77 -0
  17. data/set-of-emails/maildir/bsd/msp-ru-mailru-06.eml +77 -0
  18. data/set-of-emails/maildir/bsd/msp-us-amazonses-05.eml +73 -73
  19. data/set-of-emails/maildir/bsd/msp-us-amazonses-06.eml +73 -73
  20. data/set-of-emails/maildir/bsd/msp-us-amazonses-07.eml +73 -73
  21. data/set-of-emails/maildir/bsd/msp-us-amazonses-08.eml +73 -73
  22. data/set-of-emails/maildir/bsd/msp-us-amazonworkmail-01.eml +156 -156
  23. data/set-of-emails/maildir/bsd/msp-us-amazonworkmail-02.eml +160 -160
  24. data/set-of-emails/maildir/bsd/msp-us-amazonworkmail-03.eml +161 -161
  25. data/set-of-emails/maildir/bsd/msp-us-amazonworkmail-04.eml +156 -156
  26. data/set-of-emails/maildir/bsd/msp-us-amazonworkmail-05.eml +157 -157
  27. data/set-of-emails/maildir/bsd/msp-us-amazonworkmail-06.eml +156 -156
  28. data/set-of-emails/maildir/bsd/msp-us-amazonworkmail-07.eml +158 -158
  29. data/set-of-emails/maildir/bsd/msp-us-aol-05.eml +105 -0
  30. data/set-of-emails/maildir/bsd/msp-us-aol-06.eml +105 -0
  31. data/set-of-emails/maildir/bsd/msp-us-gsuite-01.eml +189 -189
  32. data/set-of-emails/maildir/bsd/msp-us-gsuite-02.eml +180 -180
  33. data/set-of-emails/maildir/bsd/msp-us-gsuite-03.eml +251 -0
  34. data/set-of-emails/maildir/bsd/msp-us-gsuite-04.eml +211 -0
  35. data/set-of-emails/maildir/bsd/msp-us-gsuite-05.eml +226 -0
  36. data/set-of-emails/maildir/bsd/msp-us-gsuite-06.eml +257 -0
  37. data/set-of-emails/maildir/bsd/msp-us-gsuite-07.eml +289 -0
  38. data/set-of-emails/maildir/bsd/mta-exchange2007-02.eml +252 -252
  39. data/set-of-emails/maildir/bsd/mta-exchange2007-03.eml +1178 -1178
  40. data/set-of-emails/maildir/bsd/mta-exim-30.eml +46 -0
  41. data/set-of-emails/maildir/bsd/mta-postfix-22.eml +73 -73
  42. data/set-of-emails/maildir/bsd/mta-postfix-23.eml +75 -75
  43. data/set-of-emails/maildir/bsd/mta-postfix-24.eml +73 -73
  44. data/set-of-emails/maildir/bsd/mta-postfix-25.eml +73 -73
  45. data/set-of-emails/maildir/bsd/mta-postfix-26.eml +73 -73
  46. data/set-of-emails/maildir/bsd/mta-postfix-27.eml +66 -66
  47. data/set-of-emails/maildir/bsd/mta-postfix-28.eml +75 -0
  48. data/set-of-emails/maildir/bsd/mta-postfix-29.eml +75 -0
  49. data/set-of-emails/maildir/bsd/mta-qmail-10.eml +32 -32
  50. data/set-of-emails/maildir/bsd/mta-qmail-11.eml +73 -73
  51. data/set-of-emails/maildir/bsd/mta-qmail-12.eml +24 -24
  52. data/set-of-emails/maildir/bsd/mta-sendmail-34.eml +75 -75
  53. data/set-of-emails/maildir/bsd/mta-sendmail-36.eml +71 -71
  54. data/set-of-emails/maildir/bsd/mta-sendmail-37.eml +71 -71
  55. data/set-of-emails/maildir/bsd/mta-sendmail-38.eml +167 -167
  56. data/set-of-emails/maildir/bsd/mta-sendmail-40.eml +71 -71
  57. data/set-of-emails/maildir/bsd/mta-sendmail-41.eml +125 -125
  58. data/set-of-emails/maildir/bsd/mta-sendmail-43.eml +94 -0
  59. data/set-of-emails/maildir/bsd/rfc3464-30.eml +1173 -1173
  60. data/set-of-emails/maildir/bsd/rfc3834-03.eml +33 -33
  61. data/set-of-emails/maildir/bsd/rfc3834-04.eml +29 -29
  62. data/set-of-emails/maildir/bsd/rfc3834-05.eml +29 -29
  63. metadata +16 -3
  64. data/Changes +0 -129
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 2046eb91d0583931b210c5bd0e6aa6bdc504a366
4
- data.tar.gz: 55aa06f4bc74998520e90f7271c998d54a55b605
3
+ metadata.gz: 660bc18742bd350cd2856951491d3f9bc42ce81c
4
+ data.tar.gz: b9cbf8545d52288710f815169100b77b2d90122e
5
5
  SHA512:
6
- metadata.gz: 3f2b4f015f99be61210bc1e0831588a3239a993f8bd77843f0f6b1a0167016cae1986e6eef7a816937417cc83821990ed68e592e30f4779df710a4878f8639af
7
- data.tar.gz: 319b32e062689516bb4c8caed1012b244dd3187bdb04ea7ae9746a0e90f9bad07d554c476014365332ee50da52b7b1777a4c6af5b605a437d7a4f76c7c34f179
6
+ metadata.gz: f19422659ffcacd904977577d1b3c76c3670045d5b72357920a3dc0f4927c4dae74525b3f1b1ed59f1ea178706234be0df17f6b502a3119ff64243c2af9a3890
7
+ data.tar.gz: cec5ab2e75bf76db576e071263e69a31482bee62e7377dbb80a2bcb4d77b75b0edf9c02f3c0fc7b201a561dbe33d110016fb7565348c178632a501c3a722a5d2
@@ -6,8 +6,8 @@ MTA::ApacheJames ........ 0/0006 0.0000 Java Apache Mail Enterprise Server
6
6
  MTA::Courier ............ 14/0016 0.8750 Courier MTA
7
7
  MTA::Domino ............. 6/0015 0.4000 IBM Domino Server
8
8
  MTA::Exchange2003 ....... 1/0051 0.0196 Microsoft Exchange Server 2003
9
- MTA::Exchange2007 ....... 5/0007 0.7143 Microsoft Exchange Server 2007
10
- MTA::Exim ............... 144/0174 0.8276 Exim
9
+ MTA::Exchange2007 ....... 6/0007 0.8571 Microsoft Exchange Server 2007
10
+ MTA::Exim ............... 146/0176 0.8295 Exim
11
11
  MTA::IMailServer ........ 0/0045 0.0000 IPSWITCH IMail Server
12
12
  MTA::InterScanMSS ....... 0/0009 0.0000 Trend Micro InterScan Messaging Security Suite
13
13
  MTA::MXLogic ............ 0/0014 0.0000 McAfee SaaS
@@ -17,7 +17,7 @@ MTA::McAfee ............. 0/0010 0.0000 McAfee Email Appliance
17
17
  MTA::MessagingServer .... 19/0022 0.8636 Oracle Communications Messaging Server
18
18
  MTA::Notes .............. 0/0012 0.0000 Lotus Notes
19
19
  MTA::OpenSMTPD .......... 6/0024 0.2500 OpenSMTPD
20
- MTA::Postfix ............ 171/0189 0.9048 Postfix
20
+ MTA::Postfix ............ 173/0191 0.9058 Postfix
21
21
  MTA::Sendmail ........... 332/0255 1.0000 V8Sendmail: /usr/sbin/sendmail
22
22
  MTA::SurfControl ........ 6/0008 0.7500 WebSense SurfControl
23
23
  MTA::V5sendmail ......... 0/0386 0.0000 Sendmail version 5
@@ -27,7 +27,7 @@ MTA::X3 ................. 0/0012 0.0000 Unknown MTA #3
27
27
  MTA::X4 ................. 0/0029 0.0000 Unknown MTA #4 qmail clones
28
28
  MTA::X5 ................. 3/0003 1.0000 Unknown MTA #5
29
29
  MTA::mFILTER ............ 0/0009 0.0000 Digital Arts m-FILTER
30
- MTA::qmail .............. 52/0082 0.6341 qmail
30
+ MTA::qmail .............. 53/0082 0.6463 qmail
31
31
  MSP::DE::EinsUndEins .... 0/0003 0.0000 1&1: http://www.1and1.de
32
32
  MSP::DE::GMX ............ 0/0010 0.0000 GMX: http://www.gmx.net
33
33
  MSP::JP::Biglobe ........ 5/0007 0.7143 BIGLOBE: http://www.biglobe.ne.jp
@@ -41,6 +41,7 @@ MSP::US::AmazonWorkMail . 8/0012 0.6667 Amazon WorkMail: https://aws.amazon
41
41
  MSP::US::Aol ............ 18/0021 0.8571 Aol Mail: http://www.aol.com
42
42
  MSP::US::Bigfoot ........ 2/0002 1.0000 Bigfoot: http://www.bigfoot.com
43
43
  MSP::US::Facebook ....... 3/0003 1.0000 Facebook: https://www.facebook.com
44
+ MSP::US::GSuite ......... 8/0008 1.0000 G Suite: https://gsuite.google.com/
44
45
  MSP::US::Google ......... 58/0062 0.9355 Google Gmail: https://mail.google.com
45
46
  MSP::US::Office365 ...... 8/0011 0.7273 Microsoft Office 365: http://office.microsoft.com/
46
47
  MSP::US::Outlook ........ 19/0021 0.9048 Microsoft Outlook.com: https://www.outlook.com/
@@ -53,7 +54,7 @@ CED::US::AmazonSES ...... 0/0009 0.0000 Amazon SES(JSON): http://aws.amazon
53
54
  CED::US::SendGrid ....... 0/0000 1.0000 SendGrid(JSON): http://sendgrid.com/
54
55
  ARF ..................... 9/0050 0.1800 Abuse Feedback Reporting Format
55
56
  RFC3464 ................. 136/0278 0.4892 Fallback Module for MTAs
56
- RFC3834 ................. 0/0006 0.0000 Detector for auto replied message
57
+ RFC3834 ................. 0/0007 0.0000 Detector for auto replied message
57
58
  -------------------------------------------------------------------------------
58
- bounceHammer 2.7.13p3 1204/2192 0.5493
59
- Sisimai 4.20.0 2192/2192 1.0000
59
+ bounceHammer 2.7.13p3 1218/2205 0.5524
60
+ Sisimai 4.21.0p2 2205/2205 1.0000
@@ -0,0 +1,210 @@
1
+ RELEASE NOTES for Ruby version of Sisimai
2
+ ================================================================================
3
+ - releases: "https://github.com/sisimai/rb-Sisimai/releases"
4
+ - download: "https://rubygems.org/gems/sisimai"
5
+
6
+ v4.21.1
7
+ --------------------------------------------------------------------------------
8
+ - release: "Mon, 29 May 2017 14:22:22 +0900 (JST)"
9
+ - version: "4.21.1"
10
+ - changes:
11
+ - Pull-Request #73, Fix codes for initializing a hash element with an empty
12
+ string in Sisimai::MTA::Postfix. Thanks to @MichiakiNakaya.
13
+ - Import pull-request: https://github.com/sisimai/p5-Sisimai/pull/222 from
14
+ p5-Sisimai to improve error message patterns.
15
+ - Changes file has been renamed to **ChangeLog.md** and converted to Markdown
16
+ format.
17
+ - Import Pull-Request https://github.com/sisimai/p5-Sisimai/pull/223 for code
18
+ improvement to detect DNS related errors at G Suite.
19
+ - Improved code to detect RFC7505 (NullMX) error: sisimai/set-of-emails#4.
20
+ - Code improvements for checking and decoding irregular MIME encoded strings
21
+ at is_mimeencoded and mimedecode methods in Sisimai::MIME class reported at
22
+ issue #75. Thanks to @winebarrel.
23
+ - Add unit test codes to test all the changes at issue #75.
24
+
25
+ v4.21.0 - Support G Suite
26
+ --------------------------------------------------------------------------------
27
+ - release: "Mon, 10 Apr 2017 12:17:22 +0900 (JST)"
28
+ - version: "4.21.0"
29
+ - changes:
30
+ - Experimental implementation: new MTA module Sisimai::MSP::US::GSuite for
31
+ parsing a bounce mail returned from G Suite.
32
+ - `Sisimai.make()` and `Sisimai::Message.new()` methods check the value of a
33
+ `field` argument more strictly.
34
+ - Improved `Sisimai::SMTP::Status.find()`. The method checks whether a found
35
+ value as D.S.N. is IPv4 address or not.
36
+ - Improved code for getting error messages, D.S.N. values, and SMTP reply
37
+ codes in `Sisimai::MTA::Postfix.scan()` method.
38
+ - Pull-Request #69, Fix some typos. Thanks to @koic.
39
+ - Pull-Request #71, Fix break statement. Thanks to @MichiakiNakaya.
40
+ - Issue #70, All the value of `$PATH` in Makefile have been fixed to build a
41
+ gem file for JRuby Platform. Thanks to @MichiakiNakaya, @hiroyuki-sato.
42
+
43
+ v4.20.2
44
+ --------------------------------------------------------------------------------
45
+ - release: "Sat, 11 Mar 2017 16:32:48 +0900 (JST)"
46
+ - version: "4.20.2"
47
+ - changes:
48
+ - Pull-Request #63 Add some error message patterns for a bounce message from
49
+ Amazon SES SMTP endpoint.
50
+ - Fix regular expression in `Sisimai::Message::Email.headers()` method for
51
+ resolving issue #65 reported from @rdeavila.
52
+ - Issue #67, Fix code in `Sisimai.make()` method for reading bounce email data
53
+ from STDIN. Thanks to @marine_dayo.
54
+ - Callback feature improvement: import pull-request from sisimai/p5-Sisimai
55
+ https://github.com/sisimai/p5-Sisimai/pull/210.
56
+
57
+ v4.20.1
58
+ --------------------------------------------------------------------------------
59
+ - release: "Sat, 31 Dec 2016 20:10:22 +0900 (JST)"
60
+ - version: "4.20.1"
61
+ - changes:
62
+ - Fix the Java version of Gem file.
63
+
64
+ v4.20.0 - Support Bounce Ojbect (JSON)
65
+ --------------------------------------------------------------------------------
66
+ - release: "Sat, 31 Dec 2016 13:36:22 +0900 (JST)"
67
+ - version: "4.20.0"
68
+ - changes:
69
+ - Experimental implementation: New MTA modules for 2 Cloud Email Deliveries.
70
+ These modules can parse JSON formatted bounce objects and can convert to
71
+ Sisimai::Data object.
72
+ - Sisimai::CED::US::AmazonSES
73
+ - Sisimai::CED::US::SendGrid
74
+ - Format of `smtpagent` in the parsed result has been changed. It includes the
75
+ category name of MTA/MSP modules like `MTA::Sendmail`, `MTA::Postfix`, and
76
+ `MSP::US::SendGrid`.
77
+ - The Domain part of dummy email address defined in Sisimai::Address module
78
+ has been changed from `dummy-domain.invalid` to `libsisimai.org.invalid`.
79
+ - `Sisimai::SMTP.is_softbounce()` method has been deleted.
80
+ - Code improvement for avoid `Invalid byte sequence in UTF-8 (ArgumentError)`
81
+ error in `Sisimai::String.to_plain()` method reported from M.R.
82
+ - Sisimai works on Ruby 2.4.0.
83
+
84
+ v4.19.0 - Callback Feature
85
+ --------------------------------------------------------------------------------
86
+ - release: "Tue, 18 Oct 2016 14:19:10 +0900 (JST)"
87
+ - version: "4.19.0"
88
+ - changes:
89
+ - Implement a callback feature at `Sisimai.make()` and `Sisimai.dump()` methods.
90
+ More imformation about the feature are available at the following pages:
91
+ - http://libsisimai.org/en/usage#callback
92
+ - http://libsisimai.org/ja/usage#callback
93
+ - Implement `Sisimai.match()` method: issue #52.
94
+ - Minor bug fix in `Sisimai::MSP::US::AmazonSES.scan()` method.
95
+
96
+ v4.18.1
97
+ --------------------------------------------------------------------------------
98
+ - release: "Sun, 11 Sep 2016 20:05:20 +0900 (JST)"
99
+ - version: "4.18.1"
100
+ - changes:
101
+ - Fix bug in `Sisimai::Mail::STDIN.read()` method reported at issue #61.
102
+ Thanks to @yaegassy.
103
+ - Fix bug in `Sisimai::MIME.qprintd()` reported at issue #60.
104
+ - Improved code related to MIME decoding.
105
+ - Implement `Sisimai::String.to_plain()` for converting from HTML message to
106
+ plain text before parsing. The method and related codes are imported from
107
+ pull-request #197 at p5-Sisimai.
108
+
109
+ v4.18.0 - Improvements for Microsoft Exchange Servers
110
+ --------------------------------------------------------------------------------
111
+ - release: "Mon, 22 Aug 2016 20:40:55 +0900 (JST)"
112
+ - version: "4.18.0"
113
+ - changes:
114
+ - Import pull-request https://github.com/sisimai/rb-Sisimai/pull/59 (soft
115
+ bounce improvement) from Perl version of Sisimai.
116
+ - Sisimai::MTA::Exchange has been renamed to Sisimai::MTA::Exchange2003.
117
+ - Implement new MTA module Sisimai::MTA::Exchange2007.
118
+
119
+ v4.17.2
120
+ --------------------------------------------------------------------------------
121
+ - release: "Tue, 26 Jul 2016 21:00:17 +0900 (JST)"
122
+ - version: "4.17.2"
123
+ - changes:
124
+ - Issue #174, Implement Sisimai::Rhost::ExchangeOnline for the bounce mail
125
+ from on-premises Exchange 2013 and Office 365.
126
+ - The reason of status code: `4.4.5` is `systemfull`.
127
+ - Code improvement at Sisimai::MSP::US::Office365.
128
+
129
+ v4.17.1
130
+ --------------------------------------------------------------------------------
131
+ - release: "Wed, 30 Mar 2016 14:00:22 +0900 (JST)"
132
+ - version: "4.17.1"
133
+ - changes:
134
+ - Ported codes from https://github.com/sisimai/p5-Sisimai/pull/180 for fixing
135
+ issue https://github.com/sisimai/p5-Sisimai/issues/179, a variable defined
136
+ in `lib/sisimai/mta/exim.rb` is not quoted before passing to `%r//` operator.
137
+ - Fixed serious bug in `Sisimai::Mail::Maildir#read` method reported at issue
138
+ #55 and #56 by pull-request #57. Thanks to @taku1201.
139
+
140
+ v4.17.0 - New Error Reason "syntaxerror"
141
+ --------------------------------------------------------------------------------
142
+ - release: "Wed, 16 Mar 2016 12:22:44 +0900 (JST)"
143
+ - version: "4.17.0"
144
+ - changes:
145
+ - Implement new reason **syntaxerror**. Sisimai will set `syntaxerror` to the
146
+ raeson when the value of `replycode` begins with `50` such as 502, 503,
147
+ or 504. Imported from https://github.com/sisimai/p5-Sisimai/pull/170.
148
+ - Implement `description()` method at each class in `sisimai/reason/*.rb` and
149
+ `Sisimai.reason()` method for getting the list of reasons Sisimai can detect
150
+ and its description: issue #48.
151
+ - Remove unused method `Sisimai::Reason.match()`, issue #49.
152
+ - Some methods of Sisimai::Address class allow `postmaster`, `mailer-daemon`
153
+ (without a domain part) as an email address.
154
+ - `Sisimai::RFC5322.is_mailerdaemon()` method returns true when the argument
155
+ includes `postmaster`.
156
+ - Merge pull-request #51, new method `Sisimai::RFC5322.weedout()` and code
157
+ improvements in all the MTA/MSP modules.
158
+
159
+
160
+ v4.16.0 - New Error Reason "delivered"
161
+ --------------------------------------------------------------------------------
162
+ - release: "Thu, 18 Feb 2016 13:49:01 +0900 (JST)"
163
+ - version: "4.16.0"
164
+ - changes:
165
+ - Implement new reason **delivered**. Sisimai set `delivered` to the reason
166
+ when the value of `Status:` field in a bounce message begins with `21. This
167
+ feature is optional and is not enabled by default.
168
+ - Implement new method `Sisimai.engine()`. The method returns the list of MTA
169
+ and MSP module list implemented in Sisimai.
170
+ - Fix serious bug (`gem install` fails on JRuby environment) in Gemfile and
171
+ sisimai.gemspec. This bug is reported at issue #46 and pull-request #47.
172
+ Thanks to @hiroyuki-sato and all the people who helped for resolving this
173
+ issue on https://github.com/rubygems/rubygems/issues/1492.
174
+
175
+ v4.15.1
176
+ --------------------------------------------------------------------------------
177
+ - release: "Wed, 17 Feb 2016 01:36:45 +0900 (JST)"
178
+ - version: "4.15.1"
179
+ - changes:
180
+ - Fix serious bug: command `gem install sisimai` fails on JRuby, reported at
181
+ issue #46. Thanks to @hiroyuki-sato.
182
+ - v4.15.1 exist on Ruby version of Sisimai only.
183
+
184
+ v4.15.0 - Oj or JrJackson Required
185
+ --------------------------------------------------------------------------------
186
+ - release: "Sat, 13 Feb 2016 12:40:15 +0900 (JST)"
187
+ - version: "4.15.0"
188
+ - changes:
189
+ - Beginning with this version, Sisimai requires Oj(MRI) or JrJackson(JRuby)
190
+ for encoding parsed data to JSON string more faster (about 10%-20% faster
191
+ than before). Implemented at pull-request #44 and discussed in issue #42.
192
+ Thanks to @hiroyuki-sato.
193
+ - Implement new MTA/MSP module Sisimai::MSP::US::AmazonWorkMail for parsing
194
+ a bounce mail via Amazon WorkMail. The module and test codes are imported
195
+ from https://github.com/sisimai/p5-Sisimai/pull/162.
196
+ - Implement new MTA/MSP module Sisimai::MSP::US::Office365 for parsing error
197
+ mails via Microsoft Office 365. The module, test codes, and sample emails
198
+ are imported from https://github.com/sisimai/p5-Sisimai/pull/164.
199
+ - New method `Sisimai::Address#to_s` to get an email address as String, it is
200
+ implemented at pull-request #39. Thanks to @hiroyuki-sato.
201
+ - Almost all of the class variables are removed for resolving issue #40 and
202
+ merged pull-request #43, thanks to @hiroyuki-sato.
203
+
204
+ v4.14.2 - Ruby Version of Sisimai
205
+ --------------------------------------------------------------------------------
206
+ - release: "Wed, 3 Feb 2016 13:29:17 +0900 (JST)"
207
+ - version: "4.14.2"
208
+ - changes:
209
+ - The first release of rb-Sisimai.
210
+
@@ -240,7 +240,7 @@ Differences between Ruby version and Perl version
240
240
  | インストール方法 | gem install | cpanm |
241
241
  | 依存モジュール数(コアモジュールを除く) | 1モジュール | 2モジュール |
242
242
  | LOC:ソースコードの行数 | 12400行 | 9000行 |
243
- | テスト件数(spec/,t/,xt/ディレクトリ) | 108000件 | 189600件 |
243
+ | テスト件数(spec/,t/,xt/ディレクトリ) | 109700件 | 191300件 |
244
244
  | ライセンス | 二条項BSD | 二条項BSD |
245
245
  | 開発会社によるサポート契約 | 準備中 | 提供中 |
246
246
 
data/README.md CHANGED
@@ -244,7 +244,7 @@ and bounceHammer are available at
244
244
  | How to install | gem install | cpanm |
245
245
  | Dependencies (Except core modules) | 1 module | 2 modules |
246
246
  | LOC:Source lines of code | 12400 lines | 9000 lines |
247
- | The number of tests(spec/,t/,xt/) directory | 108000 tests | 189600 tests |
247
+ | The number of tests(spec/,t/,xt/) directory | 109700 tests | 191300 tests |
248
248
  | License | BSD 2-Clause | BSD 2-Clause |
249
249
  | Support Contract provided by Developer | Coming soon | Available |
250
250
 
@@ -30,7 +30,7 @@ module Sisimai
30
30
 
31
31
  argv1 = argv1.delete('"')
32
32
  piece = []
33
- isnot = false
33
+ mime1 = false
34
34
 
35
35
  if argv1 =~ /[ ]/
36
36
  # Multiple MIME-Encoded strings in a line
@@ -41,11 +41,10 @@ module Sisimai
41
41
 
42
42
  piece.each do |e|
43
43
  # Check all the string in the array
44
- next if e =~ /[ \t]*=[?][-_0-9A-Za-z]+[?][BbQq][?].+[?]=?[ \t]*\z/
45
- isnot = true
44
+ next unless e =~ /[ \t]*=[?][-_0-9A-Za-z]+[?][BbQq][?].+[?]=?[ \t]*/
45
+ mime1 = true
46
46
  end
47
- return true unless isnot
48
- return false
47
+ return mime1
49
48
  end
50
49
 
51
50
  # Decode MIME-Encoded string
@@ -60,6 +59,9 @@ module Sisimai
60
59
  mimeencoded0 = nil
61
60
  decodedtext0 = []
62
61
 
62
+ notmimetext0 = ''
63
+ notmimetext1 = ''
64
+
63
65
  argvs.each do |e|
64
66
  # Check and decode each element
65
67
  e = e.lstrip.rstrip
@@ -67,12 +69,15 @@ module Sisimai
67
69
 
68
70
  if self.is_mimeencoded(e)
69
71
  # MIME Encoded string
70
- if cv = e.match(/\A=[?]([-_0-9A-Za-z]+)[?]([BbQq])[?](.+)[?]=?\z/)
72
+ if cv = e.match(/\A(.*)=[?]([-_0-9A-Za-z]+)[?]([BbQq])[?](.+)[?]=?(.*)\z/)
71
73
  # =?utf-8?B?55m954yr44Gr44KD44KT44GT?=
72
- characterset ||= cv[1]
73
- encodingname ||= cv[2]
74
- mimeencoded0 = cv[3]
74
+ notmimetext0 = cv[1]
75
+ characterset ||= cv[2]
76
+ encodingname ||= cv[3]
77
+ mimeencoded0 = cv[4]
78
+ notmimetext1 = cv[5]
75
79
 
80
+ decodedtext0 << notmimetext0
76
81
  if encodingname == 'Q'
77
82
  # Quoted-Printable
78
83
  decodedtext0 << mimeencoded0.unpack('M').first
@@ -81,6 +86,7 @@ module Sisimai
81
86
  # Base64
82
87
  decodedtext0 << Base64.decode64(mimeencoded0)
83
88
  end
89
+ decodedtext0 << notmimetext1
84
90
  end
85
91
  else
86
92
  decodedtext0 << e
@@ -19,6 +19,7 @@ module Sisimai
19
19
  }
20
20
  ReFailure = {
21
21
  hostunknown: %r/Host[ ]or[ ]domain[ ]name[ ]not[ ]found/,
22
+ notaccept: %r/type=MX:[ ]Malformed[ ]or[ ]unexpected[ ]name[ ]server[ ]reply/,
22
23
  }
23
24
  Indicators = Sisimai::MSP.INDICATORS
24
25
 
@@ -14,12 +14,16 @@ module Sisimai
14
14
  }
15
15
  Re1 = {
16
16
  :begin => %r/\A[*][*][ ].+[ ][*][*]\z/,
17
- :error => %r/\AThe[ ]response[ ]from[ ]the[ ]remote[ ]server[ ]was:\z/,
17
+ :error => %r/\AThe[ ]response([ ]from[ ]the[ ]remote[ ]server)?[ ]was:\z/,
18
18
  :html => %r{\AContent-Type:[ ]*text/html;[ ]*charset=['"]?(?:UTF|utf)[-]8['"]?\z},
19
19
  :rfc822 => %r{\AContent-Type:[ ]*(?:message/rfc822|text/rfc822-headers)\z},
20
20
  :endof => %r/\A__END_OF_EMAIL_MESSAGE__\z/,
21
21
  }
22
- ErrorMayBe = { :userunknown => %r/because the address couldn't be found/ }
22
+ ErrorMayBe = {
23
+ :userunknown => %r/because the address couldn't be found/,
24
+ :notaccept => %r/Null MX/,
25
+ :networkerror => %r/DNS type .+ lookup of .+ responded with code NXDOMAIN/,
26
+ }
23
27
  Indicators = Sisimai::MSP.INDICATORS
24
28
 
25
29
  def description; return 'G Suite: https://gsuite.google.com'; end
@@ -53,6 +57,7 @@ module Sisimai
53
57
  blanklines = 0 # (Integer) The number of blank lines
54
58
  readcursor = 0 # (Integer) Points the current cursor position
55
59
  recipients = 0 # (Integer) The number of 'Final-Recipient' header
60
+ endoferror = true # (Integer) Flag for a blank line after error messages
56
61
  anotherset = {} # (Hash) Another error information
57
62
  emptylines = 0 # (Integer) The number of empty lines
58
63
  connvalues = 0 # (Integer) Flag, 1 if all the value of $connheader have been set
@@ -90,7 +95,6 @@ module Sisimai
90
95
  else
91
96
  # Before "message/rfc822"
92
97
  next if readcursor & Indicators[:deliverystatus] == 0
93
- next if e.empty?
94
98
 
95
99
  if connvalues == connheader.keys.size
96
100
  # Final-Recipient: rfc822; kijitora@example.de
@@ -133,6 +137,16 @@ module Sisimai
133
137
  # Diagnostic-Code: smtp; 550 #5.1.0 Address rejected.
134
138
  v['spec'] = cv[1].upcase
135
139
  v['diagnosis'] = cv[2]
140
+ else
141
+ # Append error messages continued from the previous line
142
+ if endoferror && ( v['diagnosis'] && v['diagnosis'].size > 0 )
143
+ endoferror = true if e.empty?
144
+ endoferror = true if e =~ /\A--/
145
+
146
+ next if endoferror
147
+ next unless e =~ /\A[ ]/
148
+ v['diagnosis'] += e
149
+ end
136
150
  end
137
151
  end
138
152
 
@@ -157,7 +171,7 @@ module Sisimai
157
171
  # Detect SMTP session error or connection error
158
172
  if e =~ Re1[:error]
159
173
  # The response from the remote server was:
160
- anotherset['diagnosis'] = e
174
+ anotherset['diagnosis'] += e
161
175
  else
162
176
  # ** Address not found **
163
177
  #
@@ -169,9 +183,14 @@ module Sisimai
169
183
  next if e =~ Re1[:html]
170
184
 
171
185
  if anotherset['diagnosis']
172
- # 550 #5.1.0 Address rejected.
173
- emptylines += 1 if e.empty?
174
- next if emptylines > 2
186
+ # Continued error messages from the previous line like
187
+ # "550 #5.1.0 Address rejected."
188
+ next if emptylines > 5
189
+ if e.empty?
190
+ # Count and next()
191
+ emptylines += 1
192
+ next
193
+ end
175
194
  anotherset['diagnosis'] += ' ' + e
176
195
  else
177
196
  # ** Address not found **
@@ -186,11 +186,13 @@ module Sisimai
186
186
  if cv = e.match(/[ \t][(]in reply to ([A-Z]{4}).*/)
187
187
  # 5.1.1 <userunknown@example.co.jp>... User Unknown (in reply to RCPT TO
188
188
  commandset << cv[1]
189
+ anotherset['diagnosis'] ||= ''
189
190
  anotherset['diagnosis'] += ' ' + e
190
191
 
191
192
  elsif cv = e.match(/([A-Z]{4})[ \t]*.*command[)]\z/)
192
193
  # to MAIL command)
193
194
  commandset << cv[1]
195
+ anotherset['diagnosis'] ||= ''
194
196
  anotherset['diagnosis'] += ' ' + e
195
197
 
196
198
  else