sisimai 4.25.15-java → 5.0.0-java

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (177) hide show
  1. checksums.yaml +5 -5
  2. data/.travis.yml +3 -3
  3. data/ANALYTICAL-PRECISION +2 -2
  4. data/Benchmarks.mk +3 -3
  5. data/CONTRIBUTING +1 -1
  6. data/ChangeLog.md +419 -388
  7. data/Developers.mk +5 -6
  8. data/Gemfile +1 -1
  9. data/Makefile +15 -15
  10. data/README-JA.md +140 -78
  11. data/README.md +290 -143
  12. data/Rakefile +9 -3
  13. data/Repository.mk +2 -3
  14. data/lib/sisimai/address.rb +118 -74
  15. data/lib/sisimai/arf.rb +84 -82
  16. data/lib/sisimai/datetime.rb +5 -52
  17. data/lib/sisimai/{data → fact}/json.rb +7 -9
  18. data/lib/sisimai/fact/yaml.rb +31 -0
  19. data/lib/sisimai/fact.rb +468 -0
  20. data/lib/sisimai/lhost/activehunter.rb +12 -14
  21. data/lib/sisimai/lhost/amavis.rb +11 -14
  22. data/lib/sisimai/lhost/amazonses.rb +37 -41
  23. data/lib/sisimai/lhost/amazonworkmail.rb +15 -18
  24. data/lib/sisimai/lhost/aol.rb +12 -14
  25. data/lib/sisimai/lhost/apachejames.rb +19 -21
  26. data/lib/sisimai/lhost/barracuda.rb +10 -12
  27. data/lib/sisimai/lhost/bigfoot.rb +21 -21
  28. data/lib/sisimai/lhost/biglobe.rb +15 -16
  29. data/lib/sisimai/lhost/courier.rb +20 -20
  30. data/lib/sisimai/lhost/domino.rb +23 -19
  31. data/lib/sisimai/lhost/einsundeins.rb +23 -18
  32. data/lib/sisimai/lhost/exchange2003.rb +30 -29
  33. data/lib/sisimai/lhost/exchange2007.rb +70 -58
  34. data/lib/sisimai/lhost/exim.rb +175 -161
  35. data/lib/sisimai/lhost/ezweb.rb +31 -56
  36. data/lib/sisimai/lhost/facebook.rb +21 -33
  37. data/lib/sisimai/lhost/fml.rb +43 -48
  38. data/lib/sisimai/lhost/gmail.rb +29 -29
  39. data/lib/sisimai/lhost/gmx.rb +18 -17
  40. data/lib/sisimai/lhost/googlegroups.rb +9 -10
  41. data/lib/sisimai/lhost/gsuite.rb +21 -27
  42. data/lib/sisimai/lhost/imailserver.rb +25 -39
  43. data/lib/sisimai/lhost/interscanmss.rb +28 -31
  44. data/lib/sisimai/lhost/kddi.rb +22 -28
  45. data/lib/sisimai/lhost/mailfoundry.rb +11 -12
  46. data/lib/sisimai/lhost/mailmarshalsmtp.rb +25 -29
  47. data/lib/sisimai/lhost/mailru.rb +33 -27
  48. data/lib/sisimai/lhost/mcafee.rb +21 -31
  49. data/lib/sisimai/lhost/messagelabs.rb +17 -20
  50. data/lib/sisimai/lhost/messagingserver.rb +40 -37
  51. data/lib/sisimai/lhost/mfilter.rb +15 -16
  52. data/lib/sisimai/lhost/mxlogic.rb +24 -23
  53. data/lib/sisimai/lhost/notes.rb +17 -17
  54. data/lib/sisimai/lhost/office365.rb +63 -27
  55. data/lib/sisimai/lhost/opensmtpd.rb +12 -13
  56. data/lib/sisimai/lhost/outlook.rb +12 -15
  57. data/lib/sisimai/lhost/postfix.rb +179 -129
  58. data/lib/sisimai/lhost/powermta.rb +12 -14
  59. data/lib/sisimai/lhost/qmail.rb +44 -47
  60. data/lib/sisimai/lhost/receivingses.rb +15 -20
  61. data/lib/sisimai/lhost/sendgrid.rb +34 -32
  62. data/lib/sisimai/lhost/sendmail.rb +66 -53
  63. data/lib/sisimai/lhost/surfcontrol.rb +19 -19
  64. data/lib/sisimai/lhost/v5sendmail.rb +45 -39
  65. data/lib/sisimai/lhost/verizon.rb +35 -39
  66. data/lib/sisimai/lhost/x1.rb +18 -17
  67. data/lib/sisimai/lhost/x2.rb +17 -14
  68. data/lib/sisimai/lhost/x3.rb +19 -19
  69. data/lib/sisimai/lhost/x4.rb +72 -57
  70. data/lib/sisimai/lhost/x5.rb +17 -19
  71. data/lib/sisimai/lhost/x6.rb +41 -17
  72. data/lib/sisimai/lhost/yahoo.rb +17 -16
  73. data/lib/sisimai/lhost/yandex.rb +16 -20
  74. data/lib/sisimai/lhost/zoho.rb +16 -15
  75. data/lib/sisimai/lhost.rb +8 -10
  76. data/lib/sisimai/mail/maildir.rb +1 -3
  77. data/lib/sisimai/mail/mbox.rb +3 -4
  78. data/lib/sisimai/mail/memory.rb +0 -1
  79. data/lib/sisimai/mail/stdin.rb +1 -3
  80. data/lib/sisimai/mail.rb +3 -7
  81. data/lib/sisimai/mda.rb +28 -42
  82. data/lib/sisimai/message.rb +435 -313
  83. data/lib/sisimai/order.rb +5 -5
  84. data/lib/sisimai/reason/authfailure.rb +64 -0
  85. data/lib/sisimai/reason/badreputation.rb +53 -0
  86. data/lib/sisimai/reason/blocked.rb +94 -160
  87. data/lib/sisimai/reason/contenterror.rb +8 -9
  88. data/lib/sisimai/reason/delivered.rb +4 -6
  89. data/lib/sisimai/reason/exceedlimit.rb +10 -12
  90. data/lib/sisimai/reason/expired.rb +6 -8
  91. data/lib/sisimai/reason/feedback.rb +2 -3
  92. data/lib/sisimai/reason/filtered.rb +17 -19
  93. data/lib/sisimai/reason/hasmoved.rb +9 -10
  94. data/lib/sisimai/reason/hostunknown.rb +15 -15
  95. data/lib/sisimai/reason/mailboxfull.rb +10 -12
  96. data/lib/sisimai/reason/mailererror.rb +18 -20
  97. data/lib/sisimai/reason/mesgtoobig.rb +9 -11
  98. data/lib/sisimai/reason/networkerror.rb +5 -8
  99. data/lib/sisimai/reason/norelaying.rb +8 -11
  100. data/lib/sisimai/reason/notaccept.rb +13 -14
  101. data/lib/sisimai/reason/notcompliantrfc.rb +43 -0
  102. data/lib/sisimai/reason/onhold.rb +6 -9
  103. data/lib/sisimai/reason/policyviolation.rb +14 -12
  104. data/lib/sisimai/reason/rejected.rb +26 -24
  105. data/lib/sisimai/reason/requireptr.rb +69 -0
  106. data/lib/sisimai/reason/securityerror.rb +33 -36
  107. data/lib/sisimai/reason/spamdetected.rb +114 -147
  108. data/lib/sisimai/reason/speeding.rb +49 -0
  109. data/lib/sisimai/reason/suspend.rb +11 -11
  110. data/lib/sisimai/reason/syntaxerror.rb +11 -10
  111. data/lib/sisimai/reason/systemerror.rb +7 -9
  112. data/lib/sisimai/reason/systemfull.rb +7 -8
  113. data/lib/sisimai/reason/toomanyconn.rb +9 -11
  114. data/lib/sisimai/reason/undefined.rb +2 -3
  115. data/lib/sisimai/reason/userunknown.rb +129 -146
  116. data/lib/sisimai/reason/vacation.rb +3 -4
  117. data/lib/sisimai/reason/virusdetected.rb +10 -11
  118. data/lib/sisimai/reason.rb +59 -64
  119. data/lib/sisimai/rfc1894.rb +55 -28
  120. data/lib/sisimai/rfc2045.rb +373 -0
  121. data/lib/sisimai/rfc3464.rb +250 -308
  122. data/lib/sisimai/rfc3834.rb +42 -47
  123. data/lib/sisimai/rfc5322.rb +75 -100
  124. data/lib/sisimai/rfc5965.rb +31 -0
  125. data/lib/sisimai/rhost/cox.rb +5 -6
  126. data/lib/sisimai/rhost/franceptt.rb +6 -8
  127. data/lib/sisimai/rhost/godaddy.rb +12 -12
  128. data/lib/sisimai/rhost/{googleapps.rb → google.rb} +80 -72
  129. data/lib/sisimai/rhost/iua.rb +9 -10
  130. data/lib/sisimai/rhost/kddi.rb +6 -8
  131. data/lib/sisimai/rhost/{exchangeonline.rb → microsoft.rb} +115 -114
  132. data/lib/sisimai/rhost/mimecast.rb +42 -40
  133. data/lib/sisimai/rhost/nttdocomo.rb +12 -12
  134. data/lib/sisimai/rhost/spectrum.rb +10 -12
  135. data/lib/sisimai/rhost/{tencentqq.rb → tencent.rb} +7 -8
  136. data/lib/sisimai/rhost.rb +23 -31
  137. data/lib/sisimai/smtp/command.rb +59 -0
  138. data/lib/sisimai/smtp/error.rb +4 -7
  139. data/lib/sisimai/smtp/reply.rb +161 -74
  140. data/lib/sisimai/smtp/status.rb +504 -393
  141. data/lib/sisimai/smtp/transcript.rb +124 -0
  142. data/lib/sisimai/smtp.rb +0 -1
  143. data/lib/sisimai/string.rb +74 -5
  144. data/lib/sisimai/time.rb +1 -2
  145. data/lib/sisimai/version.rb +1 -1
  146. data/lib/sisimai.rb +35 -21
  147. data/set-of-emails/maildir/bsd/lhost-domino-02.eml +6 -3
  148. data/set-of-emails/maildir/bsd/lhost-googlegroups-15.eml +174 -0
  149. data/set-of-emails/maildir/bsd/lhost-gsuite-15.eml +229 -0
  150. data/set-of-emails/maildir/bsd/lhost-postfix-75.eml +51 -0
  151. data/set-of-emails/maildir/bsd/lhost-postfix-76.eml +101 -0
  152. data/set-of-emails/maildir/bsd/lhost-postfix-77.eml +74 -0
  153. data/set-of-emails/maildir/bsd/lhost-postfix-78.eml +91 -0
  154. data/set-of-emails/maildir/bsd/lhost-receivingses-08.eml +88 -0
  155. data/set-of-emails/maildir/bsd/rfc3464-43.eml +88 -0
  156. data/set-of-emails/maildir/bsd/rhost-google-03.eml +101 -0
  157. data/set-of-emails/maildir/bsd/rhost-google-04.eml +102 -0
  158. data/set-of-emails/maildir/bsd/rhost-google-05.eml +82 -0
  159. data/set-of-emails/maildir/bsd/rhost-google-06.eml +102 -0
  160. data/set-of-emails/maildir/bsd/rhost-google-07.eml +69 -0
  161. data/set-of-emails/maildir/bsd/rhost-google-08.eml +99 -0
  162. data/sisimai-java.gemspec +1 -1
  163. data/sisimai.gemspec +1 -1
  164. metadata +42 -22
  165. data/.rspec +0 -2
  166. data/lib/sisimai/data/yaml.rb +0 -33
  167. data/lib/sisimai/data.rb +0 -411
  168. data/lib/sisimai/mime.rb +0 -456
  169. /data/set-of-emails/maildir/bsd/{rfc3464-41.eml → rfc3834-05.eml} +0 -0
  170. /data/set-of-emails/maildir/bsd/{rhost-googleapps-01.eml → rhost-google-01.eml} +0 -0
  171. /data/set-of-emails/maildir/bsd/{rhost-googleapps-02.eml → rhost-google-02.eml} +0 -0
  172. /data/set-of-emails/maildir/bsd/{rhost-exchangeonline-01.eml → rhost-microsoft-01.eml} +0 -0
  173. /data/set-of-emails/maildir/bsd/{rhost-exchangeonline-02.eml → rhost-microsoft-02.eml} +0 -0
  174. /data/set-of-emails/maildir/bsd/{rhost-exchangeonline-03.eml → rhost-microsoft-03.eml} +0 -0
  175. /data/set-of-emails/maildir/bsd/{rhost-tencentqq-01.eml → rhost-tencent-01.eml} +0 -0
  176. /data/set-of-emails/maildir/bsd/{rhost-tencentqq-02.eml → rhost-tencent-02.eml} +0 -0
  177. /data/set-of-emails/maildir/bsd/{rhost-tencentqq-03.eml → rhost-tencent-03.eml} +0 -0
data/ChangeLog.md CHANGED
@@ -1,19 +1,98 @@
1
1
  RELEASE NOTES for Ruby version of Sisimai
2
- ================================================================================
2
+ ===================================================================================================
3
3
  - releases: "https://github.com/sisimai/rb-sisimai/releases"
4
4
  - download: "https://rubygems.org/gems/sisimai"
5
5
 
6
+ v5.0.0
7
+ ---------------------------------------------------------------------------------------------------
8
+ - release: ""Fri, 2 Feb 2024 23:22:22 +0900 (JST)
9
+ - version: "5.0.0"
10
+ - changes:
11
+ - **INCOMPATIBLE CHANGES SINCE SISIMAI VERSION 4**
12
+ - **Sisimai requires Ruby 2.4 or later**
13
+ - `Sisimai.make` marked as obsoleted and will be removed at Sisimai v5.1.0, use `Sisimai.rise`
14
+ instead
15
+ - Sisimai doesn't return the result which reason is `vacation` by default. Use `vacation: true`
16
+ option at `Sisimai.rise()` method to get the parsed results for `vacation` reason. #220, #222
17
+ - `Sisimai::Data` and `Sisimai::Fact`
18
+ - #208 `Sisimai::Data` has been renamed to `Sisimai::Fact`
19
+ - #197 `Sisimai::Data.softboucne` marked as obsoleted and will be removed at v5.1.0, use
20
+ `Sisimai::Fact.hardbounce` instead
21
+ - #198 `Sisimai::Message`
22
+ - `Sisimai::Message` no longer creates an object
23
+ - `Sisimai::Message.make` renamed to `Sisimai::Message.rise`
24
+ - Callback feature #191
25
+ - Parameter `:hook` for the callback feature has been removed from `Sisimai.rise()` and
26
+ `Sisimai.dump()` methods. Use the first element of `:c___` parameter for setting a callback
27
+ method instead.
28
+ - Parameter `:c___` is a parameter of `Sisimai.rise` and `Sisimai.dump`, is an array refer-
29
+ ence and have two elements:
30
+ - The first element of `:c___` is the same with `:hook` parameter, is for a callback method
31
+ email headers and entire message body
32
+ - The second element of `c___` parameter is for a callback method for each email file in
33
+ Maildir/. The callback method is called at the end of each email file parsing.
34
+ - Implement the following error reasons:
35
+ - `AuthFailure` is a bounce reason which rejected due to SPF, DKIM, or DMARC failure #236
36
+ - `BadReputation` is a bounce reason which rejected due to an IP address reputation #240
37
+ - `NotCompliantRFC` is a bounce reason which rejected due to non-compliance with RFC
38
+ - `RequirePTR` is a bounce reason which rejected due to missing PTR or having invalid PTR
39
+ - `Speeding` is a bounce reason which rejected due to exceeding a rate limit or sending too
40
+ fast #239
41
+ - Implement `Sisimai::RFC2045`: Born again `Sisimai::MIME` for compatibility with the Go language
42
+ version of Sisimai #199
43
+ - Sisimai uses `minitest` as a test framework, RSpec has been removed
44
+ - #217 `Sisimai::Message.rise()` parses twice when the entire message body of a bounced mail is
45
+ multi parted begins with "message/rfc822".
46
+ - #218 Add error messages in some European languages into Office365 and Domino
47
+ - #228 Implement `Sisimai::SMTP::Transcript` for parsing a transcript of session log
48
+ - #254, #255 Reduce 78% of regular expressions
49
+ - Implement the following methods:
50
+ - `Sisimai::SMTP::Command.test`
51
+ - `Sisimai::SMTP::Reply.test`
52
+ - `Sisimai::SMTP::Status.test`
53
+ - `Sisimai::SMTP::Status.prefer`
54
+ - `Sisimai::String.aligned`
55
+ - `Sisimai::String.ipv4`
56
+ - Rename the following classes in `Sisimai::Rhost`:
57
+ - `Sisimai::Rhost::Microsoft` (ExchangeOnline)
58
+ - `Sisimai::Rhost::Google` (GoogleApps)
59
+ - `Sisimai::Rhost::Tencent` (TencentQQ)
60
+ - Add a sample email bounced from Rakuten Mobile: sisimai/set-of-emails#20
61
+ - `lhost-postfix-76.eml` (userunknown)
62
+ - Add sample emails bounced from Amazon SES
63
+ - `lhost-postfix-77.eml` (norelaying)
64
+ - `lhost-postfix-78.eml` (contenterror)
65
+ - Happy Birthday to Suzu a.k.a. "Neko-dono" Michitsuna
66
+
67
+ v4.25.16p1
68
+ ---------------------------------------------------------------------------------------------------
69
+ - release: "Thu, 1 Feb 2024 12:25:22 +0900 (JST)"
70
+ - version: "4.25.16p1"
71
+ - changes:
72
+ - #256 Tiny code improvement on `Sisimai::Lhost::EinsUndEins` to parse bounce emails in slightly
73
+ different formats.
74
+
75
+ v4.25.16
76
+ ---------------------------------------------------------------------------------------------------
77
+ - release: "Tue, 16 May 2023 15:11:22 +0900 (JST)"
78
+ - version: "4.25.16"
79
+ - changes:
80
+ - Fix `Sisimai::MIME.mimedecode()` method when the encoding name is lower case "b" (not "B") like
81
+ `=?utf-8?b?...` #251 Thanks to @revsystem
82
+ - Fix code in `Sisimai::Data.make()` method to handle `nil` returned from `Sisimai::Rhost.get()`
83
+ method. Thanks to @axfcampos #253
84
+ - Tiny code improvement: import code from sisimai/p5-sisimai#493 (message.rb)
85
+ - Tiny code improvement: import code from sisimai/p5-sisimai#494 (rfc3834.rb)
86
+
6
87
  v4.25.15
7
- --------------------------------------------------------------------------------
88
+ ---------------------------------------------------------------------------------------------------
8
89
  - release: "Thu, 22 Dec 2022 13:13:13 +0900 (JST)"
9
90
  - version: "4.25.15"
10
91
  - changes:
11
- - Prevent ReDOS: Regex Denial of Service in `Sisimai::String.to_plain` #244.
12
- Thanks to @gmcabrita
13
- - Fix an error reason "5.2.1 exceedlimit" of an error message: "450-4.2.1 The
14
- user you are trying to contact is receiving mail at a rate that prevents ad-
15
- ditional messages from being delivered" to "toomanyconn" at Rhost::GoogleApp
16
- class, imported from sisimai/p5-sisimai#465.
92
+ - Prevent ReDOS: Regex Denial of Service in `Sisimai::String.to_plain` #244. Thanks to @gmcabrita
93
+ - Fix an error reason "5.2.1 exceedlimit" of an error message: "450-4.2.1 The user you are trying
94
+ to contact is receiving mail at a rate that prevents additional messages from being delivered"
95
+ to "toomanyconn" at Rhost::GoogleApp class, imported from sisimai/p5-sisimai#465.
17
96
  - Bug fix: getting a "name" part of an email address at Sisimai::Address.find
18
97
  - Add many error message patterns at the following classes in `Sisimai/Reason`
19
98
  - `Blocked`
@@ -26,75 +105,71 @@ v4.25.15
26
105
  - `SpamDetected`
27
106
  - `TooManyConn`
28
107
  - `UserUnknown`
29
- - When the value of `diagnosticcode` has enough error message for detecting a
30
- bounce reason, `expired` will change to `networkerror`
31
- - Update code in `Sisimai::Lhost::GoogleGroups` module to parse well a bounce
32
- mail even if an email address of `X-Failed-Recipients:` header does not in-
33
- clude a domain `@googlegroups.com` #234
34
- - Import #235 from Sisimai v5, Implement `Sisimai::Rhost::NTTDOCOMO` to parse
35
- more strictly a bounce mail returned from `mfsmax.docomo.ne.jp`
108
+ - When the value of `diagnosticcode` has enough error message for detecting a bounce reason,
109
+ `expired` will change to `networkerror`
110
+ - Update code in `Sisimai::Lhost::GoogleGroups` module to parse well a bounce mail even if an e-
111
+ mail address of `X-Failed-Recipients` header does not include a domain `@googlegroups.com` #234
112
+ - Import #235 from Sisimai v5, Implement `Sisimai::Rhost::NTTDOCOMO` to parse more strictly a
113
+ bounce mail returned from `mfsmax.docomo.ne.jp`
36
114
  - Import #241 from Sisimai v5, Implement `Sisimai::Rhost::Mimecast`
37
115
  - Add the following error messages at `Sisimai::Rhost::ExchangeOnline:
38
- - 451 4.7.650 The mail server [...] has been temporarily rate limited due to
39
- IP reputation ... (S775)
40
- - 550 5.7.1 ... Please contact your Internet service provider since part of
41
- their network is on our block list (S3150)
116
+ - 451 4.7.650 The mail server ... has been temporarily rate limited due to IP reputation (S775)
117
+ - 550 5.7.1 ... Please contact your Internet service provider since part of their network is on
118
+ our block list (S3150)
42
119
  - Error messages of Exchange Server 2019 #242
43
120
  - Add many error messages at `Sisimai::Rhost::GoogleApps`, Import #243
44
121
 
45
122
  v4.25.14
46
- --------------------------------------------------------------------------------
123
+ ---------------------------------------------------------------------------------------------------
47
124
  - release: "Mon, 15 Aug 2022 14:22:22 +0900 (JST)"
48
- - version: "4.25.14"
125
+ - version: "4.25.12"
49
126
  - changes:
50
127
  - Nothing changed, follow the Perl version of Sisimai 4.25.14.
51
128
 
52
129
  v4.25.13
53
- --------------------------------------------------------------------------------
130
+ ---------------------------------------------------------------------------------------------------
54
131
  - release: "Mon, 1 Aug 2022 16:05:55 +0900 (JST)"
55
132
  - version: "4.25.13"
56
133
  - changes:
57
134
  - Nothing changed, follow the Perl version of Sisimai 4.25.13.
58
135
 
59
136
  v4.25.12
60
- --------------------------------------------------------------------------------
137
+ ---------------------------------------------------------------------------------------------------
61
138
  - release: "Mon, 22 Nov 2021 12:22:22 +0900 (JST)"
62
139
  - version: "4.25.12"
63
140
  - changes:
64
141
  - Fix 2 encoding related errors:
65
- - Fix an error with message `incompatible character encodings:ASCII-8BIT and
66
- UTF-8` reported at issue #223. Thanks to @chahn
67
- - Fix an error with message `invalid byte sequence in UTF-8 (ArgumentError)`
68
- reported at issue #224. Thanks to @chahn
142
+ - Fix an error with the message: `incompatible character encodings: ASCII-8BIT and UTF-8` re-
143
+ ported at issue #223. Thanks to @chahn
144
+ - Fix an error with the message: `invalid byte sequence in UTF-8 (ArgumentError)` reported at
145
+ issue #224. Thanks to @chahn
69
146
  - Add `rfc3464-41.eml` and `rfc3464-42.eml` provided by @chahn
70
- - Add a new error code of La Poste at `Sisimai::Rhost::FrancePTT` module and
71
- a new sample email `rhost-franceptt-12.eml` into `set-of-emails` directory
72
- imported from sisimai/p5-sisimai#441.
147
+ - Add a new error code of La Poste at `Sisimai::Rhost::FrancePTT` module and a new sample email
148
+ `rhost-franceptt-12.eml` into `set-of-emails` directory imported from sisimai/p5-sisimai#441.
73
149
  - Remove all the HTML elements from the value of `diagnosticcode`.
74
150
  - Fix serious bugs:
75
- - Both of the values of `deliverystatus` and `replycode` detected from the
76
- message body did not use at `Sisimai::Lhost::Exim`.
77
- - `true` method strictly checks the value of `smtpcommand` at some classes
78
- in `Sisimai/Reason`. For example, when a detected reason is `spamdetected`
79
- and `virusdetected` the value of `smtpcommand` should be `DATA` or an SMTP
80
- command to be sent after `DATA`.
151
+ - Both of the values of `deliverystatus` and `replycode` detected from the message body did not
152
+ use at `Sisimai::Lhost::Exim`.
153
+ - `true` method strictly checks the value of `smtpcommand` at some classes in `Sisimai/Reason`
154
+ directory. For example, when a detected reason is `spamdetected` and `virusdetected` the val-
155
+ ue of `smtpcommand` should be `DATA` or an SMTP command to be sent after `DATA`.
81
156
 
82
157
  v4.25.11
83
- --------------------------------------------------------------------------------
158
+ ---------------------------------------------------------------------------------------------------
84
159
  - release: "Mon, 22 Feb 2021 21:15:22 +0900 (JST)"
85
160
  - version: "4.25.11"
86
161
  - changes:
87
162
  - Fix typo in `Sisimai::RFC3464`
88
163
  - Import some commits from Sisimai version 5 preview #
89
164
  - Improved code for getting an email address in `Sisimai::Address`
90
- - Improved code for checking the day of month value, for converting a full
91
- month name and a full day of the week at `Sisimai::DateTime`
165
+ - Improved code for checking the day of month value, for converting a full month name and a
166
+ full day of the week at `Sisimai::DateTime`
92
167
  - Improvement code for picking text blocks of message/rfc822 part in RFC5322
93
168
  - Add 60+ error message patterns
94
169
  - Improved code for encodings in `Sisimai::Lhost::Domino`, `Sisimai::String`
95
170
 
96
171
  v4.25.10
97
- --------------------------------------------------------------------------------
172
+ ---------------------------------------------------------------------------------------------------
98
173
  - release: "Tue, 22 Dec 2020 13:22:22 +0900 (JST)"
99
174
  - version: "4.25.10"
100
175
  - changes:
@@ -110,54 +185,51 @@ v4.25.10
110
185
  - Add some sample emails related to above into set-of-emails/
111
186
 
112
187
  v4.25.9
113
- --------------------------------------------------------------------------------
188
+ ---------------------------------------------------------------------------------------------------
114
189
  - release: "Sat, 3 Oct 2020 22:00:00 +0900 (JST)"
115
190
  - version: ""
116
191
  - changes:
117
192
  - Suppress warning messages on Ruby 2.7. Thanks to @koic
118
193
  - Suppress keyword argument warnings in Ruby 2.7 #200
119
194
  - Suppress a Ruby warning for `Object#=~` and bug fix to match patterns #201
120
- - #203 Replace `.+` with `[^ ]` on some large regular expressions for serious
121
- performance reason.
195
+ - #203 Replace `.+` with `[^ ]` on some large regular expressions for serious performance reason.
122
196
  - #204 Suport Null MX (RFC7505) on Sendmail sisimai/set-of-emails#4
123
197
 
124
198
  v4.25.8
125
- --------------------------------------------------------------------------------
199
+ ---------------------------------------------------------------------------------------------------
126
200
  - release: "Fri, 17 Jul 2020 11:59:49 +0900 (JST)"
127
201
  - version: "4.25.8"
128
202
  - changes:
129
203
  - **Repository URL was changed to https://github.com/sisimai/rb-sisimai**
130
204
  - `Sisimai::Message.make` method was merged into `Sisimai::Message.new`
131
205
  - `Sisimai::Message.divideup` returns an array (faster than a hash)
132
- - Remove unused code blocks for deciding the order of email header fields at
133
- `Sisimai::Data.make` method
206
+ - Remove unused code blocks for deciding the order of email header fields at `Sisimai::Data.make`
207
+ method
134
208
  - Remove old parameters: `datasrc` and `bounces` at the callback feature #189
135
209
  - Implement `Sisimai::Rhost::Spectrum` for parsing bounce mails returned from
136
210
  https://www.spectrum.com/.
137
211
  - Remove unsed method `Sisimai::Rhost->list`
138
212
  - Fix bugs in `Sisimai::Lhost::FML` and `Sisimai::Lhost::X5`
139
- - Fix code for finding the value of `Diagnostic-Code` field in multiple lines
140
- at `Sisimai::RFC3464`
141
- - Implement Sisimai::Rhost::Cox for parsing bounce mails returned from Cox:
142
- https://cox.com/ #193
213
+ - Fix code to find the value of `Diagnostic-Code` field in multiple lines at `Sisimai::RFC3464`
214
+ - Implement Sisimai::Rhost::Cox for parsing bounce mails returned from Cox: https://cox.com/ #193
143
215
 
144
216
  v4.25.7
145
- --------------------------------------------------------------------------------
217
+ ---------------------------------------------------------------------------------------------------
146
218
  - release: "Sat, 25 Apr 2020 22:22:22 +0900 (JST)"
147
219
  - version: "4.25.7"
148
220
  - changes:
149
221
  - Bug fix in `rake spec` for removed module `Sisimai::Lhost::UserDefined`
150
222
 
151
223
  v4.25.6
152
- --------------------------------------------------------------------------------
224
+ ---------------------------------------------------------------------------------------------------
153
225
  - release: "Wed, 22 Apr 2020 16:22:22 +0900 (JST)"
154
226
  - version: "4.25.6"
155
227
  - changes:
156
228
  - Performance improvement: 10% faster, reduced 9% of method calls
157
229
  - #176 Make `Sisimai::Message` 27% faster
158
- - Use the negative look-ahead regular expression code to convert all of the
159
- email header strings into key-value pairs as a HASH at newly implemented
160
- method `Sisiai::Message.makemap` #175. Thanks to @xtetsuji
230
+ - Use the negative look-ahead regular expression code for convertingl all of the email header
231
+ strings into key-value pairs as a HASH at newly implemented method `Sisiai::Message.makemap`
232
+ #175. Thanks to @xtetsuji
161
233
  - Remove `Sisimai::Message.takeapart` (replaced with `makemap`)
162
234
  - Remove `Sisimai::Message.headers` (replaced with `makemap`)
163
235
  - Code improvement for `require` statement before method calls #177
@@ -166,19 +238,19 @@ v4.25.6
166
238
  - Remove `Sisimai::Order.by`
167
239
  - Remove `Sisimai::Order.headers`
168
240
  - Remove `Sisimai::Lhost.headerlist`
169
- - And all `headerlist` method have been removed from `Sisimai::Lhost::*`,
170
- `Sisimai::RFC3834` and `Sisimai::ARF`
171
- - The MTA module to be loaded at first is decided by the first 2 words of
172
- each bounce mail subject, is defined at `Subject` in `Sisimai::Order`
241
+ - And all `headerlist` method have been removed from `Sisimai::Lhost::*`, `Sisimai::RFC3834`
242
+ and `Sisimai::ARF`
243
+ - The MTA module to be loaded at first is decided by the first 2 words of each bounce mail sub-
244
+ ject, is defined at `Subject` in `Sisimai::Order`
173
245
  - Some variables are replaced with `state`
174
- - Each `field` parameter has been removed from the following methods because
175
- Sisimai detect all the email header fields by `Sisimai::Message.makemap()`
176
- without having to specify field names at `field` parameter
246
+ - Each `field` parameter has been removed from the following methods because Sisimai detect all
247
+ the email header fields by `Sisimai::Message.makemap` without having to specify field names at
248
+ `field` parameter
177
249
  - `Sisimai.make`
178
250
  - `Sisimai::Message.new`
179
251
  - `Sisimai::Message.make`
180
- - Code improvement for `require` statement before calling `match()` method of
181
- some modules defined in `$PreMatches` at `Sisimai::Reason::UserUnknown`
252
+ - Code improvement for `require` statement before calling `match` method of some modules defined
253
+ in `$PreMatches` at `Sisimai::Reason::UserUnknown`
182
254
  - Remove the following unused methods:
183
255
  - `Sisimai::MIME.patterns`
184
256
  - `Sisimai::SMTP.command`
@@ -188,8 +260,8 @@ v4.25.6
188
260
  - `Sisimai::Lhost::PowerMTA`
189
261
  - `Sisimai::Lhost::X6`
190
262
  - `Sisimai::Lhost::GoogleGroups`
191
- - "email-" prefix of each sample email in set-of-emails/maildir directory has
192
- been replaced with "lhost-" sisimai/set-of-emails#14
263
+ - `email-` prefix of each sample email in set-of-emails/maildir directory has been replaced with
264
+ `lhost-` sisimai/set-of-emails#14
193
265
  - SMTP Agent improvement #158
194
266
  - Remove `Email::` prefix from the value of `smtpagent` at parsed results
195
267
  - Remove `Sisimai::Lhost->smtpagent` method
@@ -199,12 +271,12 @@ v4.25.6
199
271
  - `Sisimai::Lhost::Office365` improvement for reading MIME-encoded subject
200
272
  - `Sisimai::Lhost::Exchange2007` supports error messages in `it-CH`
201
273
  - Tiny bug fix for `Subject` header decoding
202
- - Fix bug in code for getting an `"addresser"` address from `From:` field in
203
- the original message part which are multiple lines at `Sisimai::ARF`. #185
204
- - New accessor `origin` at `Sisimai::Data` and the parsed results for keeping
205
- a path to the source email #186
206
- - #187 `Sisimai::Mail` improvement for compatibilities with the Go language
207
- version of Sisimai which will be released this summer
274
+ - Fix bug in code for getting an `"addresser"` address from `From:` field in the original message
275
+ part which are multiple lines at `Sisimai::ARF`. #185
276
+ - #186 New accessor `origin` at `Sisimai::Data` and the parsed results for keeping a path to the
277
+ source email.
278
+ - #187 `Sisimai::Mail` improvement for compatibilities with the Go language version of Sisimai
279
+ which will be released this summer
208
280
  - Removed `Sisimai::Mail::STDIN.name` (not used)
209
281
  - Removed `Sisimai::Mail::Maildir.inodes` (not needed to check the inode)
210
282
  - Removed `Sisimai::Mail::Maildir.count` (use `offset` instead)
@@ -215,24 +287,24 @@ v4.25.6
215
287
  - Methods above will be removed at v4.25.10
216
288
  - `Sisimai::Mail::Memory.data` renamed to `Sisimai::Mail::Memory.payload`
217
289
  - `Sisimai::Mail::Maildir.size` keeps the number of files in the Maildir/
218
- - `Sisimai::Mail::Maildir.offset` keeps the number of email files in the
219
- Maildir/ which have been read
290
+ - `Sisimai::Mail::Maildir.offset` keeps the number of email files in the Maildir/ which have
291
+ been read
220
292
  - Call `Sisimai::Mail::*.read` directly instead of `Sisimai::Mail.read`
221
293
  - Remove `Sisimai::Lhost::UserDefined` (not used)
222
294
  - Add the following D.S.N. codes and error messages (not tested)
223
295
  - `Mailbox does not exist!` at `Sisimai::Reason::UserUnknown` (Amazon SES)
224
296
  - `Not a valid recipienet` at `Sisimai::Reason::UserUnknown` (Yahoo!)
225
297
  - `Envelope blocked` at `Sisimai::Reason::Rejected` (Minecast.com)
226
- - `5.2.122` is toomanyconn, `5.4.11` is contenterror, `5.7.51` is blocked
227
- at `Sisimai::Rhost::ExchangeOnline`
298
+ - `5.2.122` is toomanyconn, `5.4.11` is contenterror, `5.7.51` is blocked at `Sisimai::Rhost::
299
+ ExchangeOnline`
228
300
 
229
301
  v4.25.5
230
- --------------------------------------------------------------------------------
302
+ ---------------------------------------------------------------------------------------------------
231
303
  - release: "Wed, 22 Jan 2020 14:44:44 +0900 (JST)"
232
304
  - version: "4.25.5"
233
305
  - changes:
234
- - **JSON READING AS A INPUT SOURCE AND JSON PARSING AS A BOUNCE OBJECT ARE NO
235
- LONGER PROVIDED AS OF v4.25.5**
306
+ - **JSON READING AS A INPUT SOURCE AND JSON PARSING AS A BOUNCE OBJECT ARE NO LONGER PROVIDED AS
307
+ OF v4.25.5**
236
308
  - The following obsoleted classes and modules have been removed #166 #168
237
309
  - `Sisimai::Message::Email`
238
310
  - `Sisimai::Message::JSON`
@@ -240,34 +312,34 @@ v4.25.5
240
312
  - `Sisimai::Order::JSON`
241
313
  - `Sisimai::Bite::Email`
242
314
  - `Sisimai::Bite::JSON`
243
- - Fix bug in code to detect whether a bounce mail was generated by Office365
244
- or not at `Sisimai::Lhost::Office365`
245
- - Import sisimai/p5-Sisimai#342
246
- - Fix parser code to get an error message which is not beginning with `#`
247
- character at Exchange2007.
248
- - Import sisimai/p5-Sisimai#347
315
+ - Fix bug in code to detect whether a bounce mail was generated by Office365 or not at `Sisimai::
316
+ Lhost::Office365`
317
+ - Import sisimai/p5-sisimai#342
318
+ - Fix parser code to get an error message which is not beginning with `#` character at Exchange
319
+ 2007.
320
+ - Import sisimai/p5-sisimai#347
249
321
  - Support case insensitive error code at `Sisimai::Rhost::FrancePTT`,
250
- - Import sisimai/p5-Sisimai#348
251
- - Code improvements at `Sisimai::Lhost::EinsUndEins` for detecting errors
252
- and setting the value of `rhost`
322
+ - Import sisimai/p5-sisimai#348
323
+ - Code improvements at `Sisimai::Lhost::EinsUndEins` for detecting errors and setting the value
324
+ of `rhost`
253
325
  - Many Pull-Requests and sample emails for French ESPs by @aderumier
254
326
  - Add 4 error code values at `Sisimai::Rhost::FrancePTT`
255
327
  - `102` = `blocked`
256
328
  - `426` = `suspend`
257
329
  - `505` = `systemerror`
258
330
  - `999` = `blocked`
259
- - Add 7 sample emails at set-of-emails/ directory: rhost-franceptt-04, 05,
260
- 06, 07, 08, 10, and 11 for `Sisimai::Rhost::FrancePTT` #353 #357
331
+ - Add 7 sample emails at set-of-emails/ directory: rhost-franceptt-04, 05, 06, 07, 08, 10, and
332
+ 11 for `Sisimai::Rhost::FrancePTT` #353 #357
261
333
  - Add many error codes and error messages from Orange and La Poste
262
- - Import sisimai/p5-Sisimai#350
263
- - Code improvement at `Sisimai::Lhost::Postfix` for setting `HELO` into the
264
- value of `smtpcommand` in the parsed results.
265
- - Import sisimai/p5-Sisimai#351
266
- - Code improvements at `Sisimai::Lhost::Postfix` for parsing an email which
267
- have neither delivery reports nor error messages.
268
- - Import sisimai/p5-Sisimai#352
269
- - Code improvements at `Sisimai::RFC3834` for parsing a vacation message
270
- replied automatically from iCloud.
334
+ - Import sisimai/p5-sisimai#350
335
+ - Code improvement at `Sisimai::Lhost::Postfix` module for setting `HELO` into the value of
336
+ `smtpcommand` in the parsed results.
337
+ - Import sisimai/p5-sisimai#351
338
+ - Code improvements at `Sisimai::Lhost::Postfix` module for parsing an email which have neither
339
+ delivery reports nor error messages.
340
+ - Import sisimai/p5-sisimai#352
341
+ - Code improvements at `Sisimai::RFC3834` for parsing a vacation message replied automatically
342
+ from iCloud.
271
343
  - Accessor improvements in the following classes:
272
344
  - `Sisimai::Message`
273
345
  - `Sisimai::Data`
@@ -277,101 +349,95 @@ v4.25.5
277
349
  - reduce the number of lines in code about 12%
278
350
 
279
351
  v4.25.4
280
- --------------------------------------------------------------------------------
352
+ ---------------------------------------------------------------------------------------------------
281
353
  - release: "Tue, 3 Dec 2019 12:34:45 +0900 (JST)"
282
354
  - version: "4.25.4"
283
355
  - changes:
284
- - #152 **THE ABILITY TO READ JSON STRING AS AN INPUT SOURCE AND TO PARSE JSON
285
- FORMATTED BOUNCE MESSAGE WILL NOT BE SUPPORTED AT Sisimai 4.25.5**
286
- - **The following modules for reading json string as an input source, and for
287
- parsing json formatted bounce message will be removed at Sisimai 4.25.5**
356
+ - #152 **THE ABILITY TO READ JSON STRING AS AN INPUT SOURCE AND TO PARSE JSON FORMATTED BOUNCE
357
+ MESSAGE WILL NOT BE SUPPORTED AT Sisimai 4.25.5**
358
+ - **The following modules for reading json string as an input source, and for parsing json for-
359
+ matted bounce message will be removed at Sisimai 4.25.5**
288
360
  - `Sisimai::Message::JSON`
289
361
  - `Sisimai::Bite::JSON`
290
362
  - `Sisimai::Bite::JSON::AmazonSES`
291
363
  - `Sisimai::Bite::JSON::SendGrid`
292
364
  - `Sisimai::Order::JSON`
293
- - Implement a new MTA module class `Sisimai::Lhost`, it is a parent class of
294
- all the MTA modules for a bounce mail returned as an email message via SMTP
295
- and **THE FOLLOWING NAME SPACES WERE MARKED AS OBSOLETED OR REMOVED** #153
365
+ - Implement a new MTA module class `Sisimai::Lhost`, it is a parent class of all the MTA modules
366
+ for a bounce mail returned as an email message via SMTP and **THE FOLLOWING NAME SPACES WERE
367
+ MARKED AS OBSOLETED OR REMOVED** #153
296
368
  - `Sisimai::Bite`: Use `Sisimai::Lhost` instead
297
369
  - `Sisimai::Bite::Email`: Merged into `Sisimai::Lhost`
298
- - `Sisimai::Bite::Email::*`: Moved under `Sisimai::Lhost` as the same named
299
- MTA module
300
- - The following modules were marked as obsoleted, will be removed and merged
301
- into each parent class
370
+ - `Sisimai::Bite::Email::*`: Moved under `Sisimai::Lhost` as the same named MTA module
371
+ - The following modules were marked as obsoleted, will be removed and merged into each parent
372
+ class
302
373
  - `Sisimai::Message::Email`
303
374
  - `Sisimai::Order::Email`
304
- - USAGE AND PARAMETERS FOR THE FOLLOWING METHODS HAVE NOT BEEN CHANGED AT ALL
305
- AND WILL NOT BE CHANGED AFTER Sisimai 4.25.5
375
+ - USAGE AND PARAMETERS FOR THE FOLLOWING METHODS HAVE NOT BEEN CHANGED AT ALL AND WILL NOT BE
376
+ CHANGED AFTER Sisimai 4.25.5
306
377
  - `Sisimai.make`
307
378
  - `Sisimai.dump`
308
379
  - `Sisimai::Message.new`
309
380
  - Implement `Sisimai::Rhost::IUA` for SMTP error codes at https://www.i.ua/.
310
381
  - Update error message pattern for ClamSMTP at "virusdetected" reason.
311
- - Fix an indicator string for detecting the beginning of the original message
312
- part at `Sisimai::Bite::Email::MFILTER`
313
- - Multibyte characters in the original subject header will not be removed and
314
- replaced with "MULTIBYTE CHARACTERS HAS BEEN REMOVED"
315
- - Error message `... had no relevant answers.` from GSuite is classified into
316
- "networkerror" reason.
382
+ - Fix an indicator string for detecting the beginning of the original message part at `Sisimai::
383
+ Bite::Email::MFILTER`
384
+ - Multibyte characters in the original subject header will not be removed and replaced with "MUL-
385
+ TIBYTE CHARACTERS HAS BEEN REMOVED"
386
+ - Error message `... had no relevant answers.` from GSuite is classified into `networkerror` rea-
387
+ son.
317
388
 
318
389
  v4.25.3
319
- --------------------------------------------------------------------------------
390
+ ---------------------------------------------------------------------------------------------------
320
391
  - release: ""Sat, 7 Sep 2019 15:00:22 +0900 (JST)
321
392
  - version: "4.25.3"
322
393
  - changes:
323
- - Fix code for getting a recipient address from the original message part at
324
- `Sisimai::ARF`
325
- - Fix code for getting a recipient mail address and a subject string from the
326
- original messaage part at `Sisimai::Bite::Email::MailMarshalSMTP`
394
+ - Fix code for getting a recipient address from the original message part at `Sisimai::ARF`
395
+ - Fix code for getting a recipient mail address and a subject string from the original messaage
396
+ part at `Sisimai::Bite::Email::MailMarshalSMTP`
327
397
  - Fix code to delete unused multipart headers at `Sisimai::MIME.breaksup`
328
- - Fix code for getting a recipient email address and an expanded address from
329
- `Final-Recipient:` and `Original-Recipient:` field at `Sisimai::RFC3464`
330
- - Update code for matching error message "The user you are trying to contact
331
- is receiving mail at a rate that prevents additional messages from being
332
- delivered." at `Sisimai::Rhost::GoogleApps`
333
- - Update error message pattern for "blocked" reason from GMX: "ESMTP Service
334
- not available No SMTP service Bad DNS PTR resource record."
335
- - Update error message pattern for "suspend" reason responded from i.ua MTA:
336
- "550 Mailbox is frozen."
398
+ - Fix code for getting a recipient email address and an expanded address from `Final-Recipient:`
399
+ and `Original-Recipient:` field at `Sisimai::RFC3464`
400
+ - Update code for matching error message "The user you are trying to contact is receiving mail at
401
+ a rate that prevents additional messages from being delivered." at `Sisimai::Rhost::GoogleApps`
402
+ - Update error message pattern for `blocked` reason from GMX: `ESMTP Service not available No
403
+ SMTP service Bad DNS PTR resource record.`
404
+ - Update error message pattern for `suspend` reason responded from i.ua MTA: `550 Mailbox is fro-
405
+ zen.`
337
406
 
338
407
  v4.25.2
339
- --------------------------------------------------------------------------------
408
+ ---------------------------------------------------------------------------------------------------
340
409
  - release: "Thu, 1 Aug 2019 20:00:00 +0900 (JST)"
341
410
  - version: "4.25.2"
342
411
  - changes:
343
- - THIS RELEASE IS TO FIX SERIOUS BUGS IN ONLY THE PERL VERSION OF SISIMAI
344
- - Import Pull-Request from https://github.com/sisimai/p5-Sisimai/pull/324
412
+ - **THIS RELEASE IS TO FIX SERIOUS BUGS IN ONLY THE PERL VERSION OF SISIMAI**
413
+ - Import Pull-Request from https://github.com/sisimai/p5-sisimai/pull/324
345
414
  - Improved MIME decoding code in Sisimai::MIME
346
415
  - Strictly checks the number of parsed emails in `make test`
347
416
 
348
417
  v4.25.1
349
- --------------------------------------------------------------------------------
418
+ ---------------------------------------------------------------------------------------------------
350
419
  - release: "4.25.1"
351
420
  - version: "Tue, 23 Jul 2019 10:00:00 +0900 (JST)"
352
421
  - changes:
353
- - Check the format of the value of `Message-Id` header for detecting a bounce
354
- mail from Exim or not.
355
- - Call `Sisimai::Rhost::FrancePTT` module when the value of `rhost` includes
356
- `.wanadoo.fr`.
357
- - Fix code at `Sisimai::Message::Email.takeapart` method to decode a Subject
358
- header of the original message.
422
+ - Check the format of the value of `Message-Id` header for detecting a bounce mail from Exim or
423
+ not.
424
+ - Call `Sisimai::Rhost::FrancePTT` module when the value of `rhost` includes `.wanadoo.fr`.
425
+ - Fix code at `Sisimai::Message::Email.takeapart` method to decode a Subject header of the orig-
426
+ inal message.
359
427
  - #147 Update error messages for Low Reputation Error from Gmail.
360
- - Parser code to read bounce mails from m-FILTER at `Sisimai::Message::Email`
361
- has been improved.
428
+ - Parser code to read bounce mails from m-FILTER at `Sisimai::Message::Email` has been improved.
362
429
  - Status 5.4.1 from Exchange Online is classified into "rejected" reason.
363
- - Callback method specified at `Sisimai::Message.new()` with `hook` is called
364
- just before calling `scan()` method of each `Sisimai::Bite::Email` module.
365
- - Code improvement in `Sisimai::Bite::Email::Sendmail` for getting error mes-
366
- sages returned from Google.
430
+ - Callback method specified at `Sisimai::Message.new()` with `hook` is called just before calling
431
+ `scan()` method of each `Sisimai::Bite::Email` module.
432
+ - Code improvement in `Sisimai::Bite::Email::Sendmail` for getting error messages returned from
433
+ Google.
367
434
 
368
435
  v4.25.0
369
- --------------------------------------------------------------------------------
436
+ ---------------------------------------------------------------------------------------------------
370
437
  - release: "Tue, 9 Apr 2019 11:22:22 +0900 (JST)"
371
438
  - version: "4.25.0"
372
439
  - changes:
373
- - Implement new class `Sisimai::RFC1894` for parsing message/delivery-status
374
- part. #133
440
+ - Implement new class `Sisimai::RFC1894` for parsing message/delivery-status part. #133
375
441
  - Experimental implementation at the following MTA, Rhost modules:
376
442
  - `Sisimai::Bite::Email::Amavis`: amavisd-new
377
443
  - `Sisimai::Rhost::TencentQQ`: Tencent QQ (mail.qq.com)
@@ -382,12 +448,11 @@ v4.25.0
382
448
  - Code refactoring: less lines of code and shallower indentation.
383
449
  - Build test for JRuby on Travis CI was temporarily disabled. #138
384
450
  - Sisimai works on Ruby 2.6.0
385
- - Fix `Sisimai::ARF.is_arf` method to remove angle brackets:`<` and `>` from
386
- `From:` header.
451
+ - Fix `Sisimai::ARF.is_arf` method to remove angle brackets:`<` and `>` from `From:` header.
387
452
  - Fix serious bug (Hash key typo) in `Sisimai::Rhost::Google`
388
453
  - Less Symbol, less `String#to_sym`.
389
- - Remove `set-of-emails/logo` directory because we cannot change the license
390
- of each file in the directory to The 2-Clause BSD License.
454
+ - Remove `set-of-emails/logo` directory because we cannot change the license of each file in the
455
+ directory to The 2-Clause BSD License.
391
456
  - Update error message patterns in the following modules:
392
457
  - `Sisimai::Reason::Blocked` (hotmail, ntt docomo)
393
458
  - `Sisimai::Reason::PolicyViolation` (postfix)
@@ -397,26 +462,25 @@ v4.25.0
397
462
  - `Sisimai::Reason::UserUnknown` (hotmail)
398
463
  - `Sisimai::Bite::Email::McAfee` (userunknown)
399
464
  - `Sisimai::Bite::Email::Exchange2007` (securityerror)
400
- - The order of `Sisimai::Bite::Email` modules to be loaded has been changed:
401
- Load Office365 and Outlook prior to Exchange2007 and Exchange2003.
465
+ - The order of `Sisimai::Bite::Email` modules to be loaded has been changed: Load Office365 and
466
+ Outlook prior to Exchange2007 and Exchange2003.
402
467
  - Update the followng MTA modules for improvements and bug fixes:
403
468
  - `Sisimai::Bite::Email::Exchange2007`
404
469
  - MIME Decoding in `Subject:` header improved.
405
470
  - Bug fix in `Sisimai::MIME.is_mimeencoded` method.
406
- - Make stable the order of MTA modules which have MTA specific email headers
407
- at `Sisimai::Order::Email.headers` method.
471
+ - Make stable the order of MTA modules which have MTA specific email headers at `Sisimai::Order::
472
+ Email.headers` method.
408
473
 
409
474
  v4.24.1
410
- --------------------------------------------------------------------------------
475
+ ---------------------------------------------------------------------------------------------------
411
476
  - release: "Wed, 14 Nov 2018 11:09:44 +0900 (JST)"
412
477
  - version: "4.24.1"
413
478
  - changes:
414
- - Fix bug in Sisimai::RFC3464: scan method unintentionally detects non-bounce
415
- mail as a bounce.
416
- - Remove unused method Sisimai::DateTime.o2d
479
+ - Fix bug in `Sisimai::RFC3464`: scan method unintentionally detects non-bounce mail as a bounce.
480
+ - Remove unused method `Sisimai::DateTime.o2d`
417
481
 
418
482
  v4.24.0
419
- --------------------------------------------------------------------------------
483
+ ---------------------------------------------------------------------------------------------------
420
484
  - release: "Thu, 1 Nov 2018 18:00:00 +0900 (JST)"
421
485
  - version: "4.24.0"
422
486
  - changes:
@@ -433,137 +497,125 @@ v4.24.0
433
497
  - Invalid HELO/EHLO name
434
498
 
435
499
  v4.23.0
436
- --------------------------------------------------------------------------------
500
+ ---------------------------------------------------------------------------------------------------
437
501
  - release: "Fri, 31 Aug 2018 20:19:54 +0900 (JST)"
438
502
  - version: "4.23.0"
439
503
  - changes:
440
- - #124 Implement Sisimai::Mail::Memory class for reading bounce messages from
441
- memory(variable).
442
- - Update regular expression in Sisimai::Bite::Email::Office365 for detecting
443
- failure on SMTP RCPT.
444
- - #126 Fix awful bugs(NoMethodError) in Sisimai::Bite::Email::Biglobe, EZweb,
445
- and KDDI. Thanks to @rinmu.
504
+ - #124 Implement `Sisimai::Mail::Memory` class for reading bounce messages from memory(variable).
505
+ - Update regular expression in `Sisimai::Bite::Email::Office365` for detecting failure on SMTP
506
+ RCPT command.
507
+ - #126 Fix awful bugs(NoMethodError) in `Sisimai::Bite::Email::Biglobe`, `EZweb`, and `KDDI`.
508
+ Thanks to @rinmu.
446
509
  - #128 Less method calls: use method chain, bang method.
447
- - Import commit sisimai/p5-Sisimai@cccb4ef Some test code have been loosened
448
- for UTC+13(Pacific/Tongatapu), UTC+14(Pacific/Kiritimati).
449
- - #127 Fix "NoMethodError" in Sisimai::Bite::Email::Postfix when the value of
450
- Diagnostic-Code field is folded. Thanks to @Unknown22.
510
+ - Import commit sisimai/p5-sisimai@cccb4ef. Some test code have been loosened for UTC+13 (Pacific
511
+ /Tongatapu), UTC+14 (Pacific/Kiritimati).
512
+ - #127 Fix `NoMethodError` in `Sisimai::Bite::Email::Postfix` when the value of `Diagnostic-Code`
513
+ field is folded. Thanks to @Unknown22.
451
514
 
452
515
  v4.22.7
453
- --------------------------------------------------------------------------------
516
+ ---------------------------------------------------------------------------------------------------
454
517
  - release: "Mon, 16 Jul 2018 13:02:54 +0900 (JST)"
455
518
  - version: "4.22.7"
456
519
  - changes:
457
- - Register D.S.N. "4.4.312" and "5.4.312" on Office 365 as "networkerror".
458
- - Fix error message pattern in Sisimai::Reason::SecurityError.
459
- - Fix code to get the original Message-Id field which continued to the next
460
- line. Thanks to Andreas Mock.
461
- - Update error message pattern in Sisimai::Reason::SpamDetected.
520
+ - Register D.S.N. `4.4.312` and `5.4.312` on Office 365 as `networkerror`.
521
+ - Fix error message pattern in `Sisimai::Reason::SecurityError`.
522
+ - Fix code to get the original `Message-Id` field which continued to the next line.
523
+ Thanks to Andreas Mock.
524
+ - Update error message pattern in `Sisimai::Reason::SpamDetected`.
462
525
  - Add 15 sample emails for Postfix, Outlook and others.
463
- - Add 3 sample emails for Sisimai::RFC3464.
464
- - Add 2 sample vacation emails for Sisimai::RFC3834.
526
+ - Add 3 sample emails for `Sisimai::RFC3464`.
527
+ - Add 2 sample vacation emails for `Sisimai::RFC3834`.
465
528
 
466
529
  v4.22.6
467
- --------------------------------------------------------------------------------
530
+ ---------------------------------------------------------------------------------------------------
468
531
  - release: "Wed, 23 May 2018 20:00:00 +0900 (JST)"
469
532
  - version: ""
470
533
  - changes:
471
- - #115 Fix bug in Sisimai::MIME.qprintd().
472
- - Error message patterns in Sisimai::Reason::Filtered have been replaced with
473
- fixed strings.
474
- - #116 Remove sample email files listed in sisimai/set-of-emails#6 to clarify
475
- copyrights.
476
- - The value of "softbounce" in the parsed results is always "1" when a reason
477
- is "undefined" or "onhold".
534
+ - #115 Fix bug in `Sisimai::MIME.qprintd()`.
535
+ - Error message patterns in Sisimai::Reason::Filtered have been replaced with fixed strings.
536
+ - #116 Remove sample email files listed in sisimai/set-of-emails#6 to clarify copyrights.
537
+ - The value of `softbounce` in the parsed results is always `1` when a reason is `undefined` or
538
+ `onhold`.
478
539
  - #117 Less regular expression in each class of Sisimai::Bite::Email.
479
540
  - #118 Cool logo for "set-of-emails". Thanks to @batarian71.
480
- - #119 Implement Sisimai::Rhost::KDDI for detecting a bounce reason of au via
481
- msmx.au.com or lsean.ezweb.ne.jp. Thanks to @kokubumotohiro.
482
- - Update sample emails and codes for getting error messages in bounced emails
483
- on Oath(Yahoo!).
484
- - Add many sample emails for "notaccept" and "rejected".
541
+ - #119 Implement `Sisimai::Rhost::KDDI` for detecting a bounce reason of au via msmx.au.com or
542
+ lsean.ezweb.ne.jp. Thanks to @kokubumotohiro.
543
+ - Update sample emails and codes for getting error messages in bounced emails on Oath(Yahoo!).
544
+ - Add many sample emails for `notaccept` and `rejected` reasons.
485
545
 
486
546
  v4.22.5
487
- --------------------------------------------------------------------------------
547
+ ---------------------------------------------------------------------------------------------------
488
548
  - release: "Fri, 30 Mar 2018 12:29:36 +0900 (JST)"
489
549
  - version: "4.22.5"
490
550
  - changes:
491
551
  - #112 The order to load MTA modules improvement.
492
- - Sample emails in set-of-emails/ which are not owned by Sisimai project have
493
- been removed.
552
+ - Sample emails in set-of-emails/ which are not owned by Sisimai project have been removed.
494
553
  - Update error message patterns in Sisimai::Reason::Expired.
495
554
  - Less regular expression in each child class of Sisimai::Reason #113.
496
- - Pre-Updates for au.com, the new domain of EZweb from Apr 2018 announced at
555
+ - Pre-Updates for au.com, the new domain of EZweb from Apr 2018 announced at their site
497
556
  http://news.kddi.com/kddi/corporate/newsrelease/2017/08/22/2637.html #114
498
557
 
499
558
  v4.22.4
500
- --------------------------------------------------------------------------------
559
+ ---------------------------------------------------------------------------------------------------
501
560
  - release: "Wed, 14 Feb 2018 10:44:00 +0900 (JST)"
502
561
  - version: "4.22.4"
503
562
  - changes:
504
- - Import commit sisimai/p5-Sisimai@8c6eb33, Add status code 4.7.25 (RFC-7372)
505
- as "blocked".
563
+ - Import commit sisimai/p5-sisimai@8c6eb33, Add status code 4.7.25 (RFC-7372) as "blocked".
506
564
  - The following performance improvements makes 1.49 times faster.
507
- - It makes rb-Sisimai on JRuby 1.16 times faster.
508
- - #96 String#+ and sprintf replaced with String#<< at Pull-Request #103.
509
- - #98 loop do replaced with while(true) at Pull-Request #104.
510
- - #99 String#=~ and regular expressions /\A...\z/, /\A.../ or /...\z/ have
511
- been replaced with String#start_with?, String#end_with?, String#include?,
512
- Array#include?, or String#== at Pull-Request #105, #107, #108.
513
- - #102 String#sub(/...\z/, '...') has been replaced with String#chomp, or
514
- String#strip, String#lstrip, String#rstrip at Pull-Request #106.
515
- - Import Pull-Request sisimai/p5-Sisimai#258, remove /i modifier from each
516
- regular expressions as possible and call String#downcase before matching.
517
- - Pull-Request #111, Some Array#each have been replaced with Array#shift in
518
- while loop.
565
+ - It makes rb-sisimai on JRuby 1.16 times faster.
566
+ - #96 `String#+` and `sprintf` replaced with `String#<<` at Pull-Request #103.
567
+ - #98 `loop do` replaced with `while(true)` at Pull-Request #104.
568
+ - #99 `String#=~` and regular expressions `/\A...\z/`, `/\A.../` or `/...\z/` have been re-
569
+ placed with `String#start_with?`, `String#end_with?`, `String#include?`, `Array#include?`, or
570
+ `String#==` at Pull-Request #105, #107, #108.
571
+ - #102 `String#sub(/...\z/, '...')` has been replaced with `String#chomp`, or `String#strip`,
572
+ `String#lstrip`, `String#rstrip` at Pull-Request #106.
573
+ - Import sisimai/p5-sisimai#258, remove `/i` modifier from each regular expressions as possible
574
+ and call String#downcase before matching.
575
+ - Pull-Request #111, Some Array#each have been replaced with Array#shift in while loop.
519
576
 
520
577
  v4.22.3
521
- --------------------------------------------------------------------------------
578
+ ---------------------------------------------------------------------------------------------------
522
579
  - release: "Tue, 26 Dec 2017 09:22:22 +0900 (JST)"
523
580
  - version: "4.22.3"
524
581
  - changes:
525
- - Issue #88: Fix codes in Sisimai.DateTime.parse() for setting numeric values
526
- using sprintf(). Thanks to @phuong1492.
527
- - Import Pull-Request sisimai/p5-Sisimai#239, add error message patterns for
528
- laposte.net and orange.fr.
529
- - Import Pull-Req sisimai/p5-Sisimai#244 to follow up sisimai/p5-Sisimai#239.
530
- More support for Orange and La Poste.
531
- - Import Pull-Request sisimai/p5-Sisimai#245, update error message patterns
532
- of SFR and Free.fr.
533
- - Import Pull-Request sisimai/p5-Sisimai#246, large scale updates for Exim
534
- and error message patterns.
535
- - Merge Pull-Request #93 from @subuta to fix issue #92. Sisimai.make() method
536
- passes ActiveSupport::HashWithIndifferentAccess object with `input: "json"`
537
- parameter. Thanks to @subuta.
538
- - Import Pull-Request sisimai/p5-Sisimai#247, Add 100+ error message patterns
539
- into the following reason classes: Blocked, Expired, Filtered, HostUnknown,
540
- PolicyViolation, MailboxFull, NetworkError, NoRelaying, Rejected, Suspend,
541
- SpamDetected, SystemError, TooManyConn, and UserUnknown.
542
- - Fix bug in a regular expression object for concatenating error messages in
543
- Sisimai::Bite::Email::Exim.
544
- - Fix a wrong regular expression for detecting a recipient address and error
545
- messages in Sisiamai::Bite::Email::IMailServer.
546
- - Import Pull-Request sisimai/p5-Sisimai#247: Improved code at Sisimai::Data
547
- to remove string like "550-5.1.1" from an error message for to be matched
548
- exactly with regular expressions defined in each class of Sisimai::Reason.
549
- - Fixed issue #91, Import and convert error messages and reasons table from
550
- Sisimai::Bite::Email::Exchange2007 into Sisimai::Rhost::ExchangeOnline for
551
- detecting an error reason. Thanks to @joaoscotto.
552
- - Fix code to avoid an error with "invalid byte sequence in UTF-8" reported
553
- at https://heartbeats.jp/hbblog/2017/12/sisimai.html .
554
- - Implement Sisimai::Bite::Email::FML to parse bounce mails generated by fml
555
- mailing list server/manager. Thanks to @ttkzw.
582
+ - Issue #88: Fix codes in `Sisimai.DateTime.parse()` for setting numeric values using `sprintf()`
583
+ Thanks to @phuong1492.
584
+ - Import sisimai/p5-sisimai#239, add error message patterns for laposte.net and orange.fr.
585
+ - Import sisimai/p5-sisimai#244 to follow up sisimai/p5-sisimai#239. More support for Orange and
586
+ La Poste.
587
+ - Import sisimai/p5-sisimai#245, update error message patterns of SFR and Free.fr.
588
+ - Import sisimai/p5-sisimai#246, large scale updates for Exim and error message patterns.
589
+ - Merge Pull-Request #93 from @subuta to fix issue #92. `Sisimai.make()` method passes Active-
590
+ Support::HashWithIndifferentAccess object with `input: "json"` parameter. Thanks to @subuta.
591
+ - Import Pull-Request sisimai/p5-sisimai#247, Add 100+ error message patterns into the following
592
+ reason classes: Blocked, Expired, Filtered, HostUnknown, PolicyViolation, MailboxFull, Network-
593
+ Error, NoRelaying, Rejected, Suspend, SpamDetected, SystemError, TooManyConn, and UserUnknown.
594
+ - Fix bug in a regular expression object for concatenating error messages in Sisimai::Bite::Email
595
+ ::Exim.
596
+ - Fix a wrong regular expression for detecting a recipient address and error messages in Sisiamai
597
+ ::Bite::Email::IMailServer.
598
+ - Import sisimai/p5-sisimai#247: Improved code at Sisimai::Data to remove string like `550-5.1.1`
599
+ from an error message for to be matched exactly with regular expressions defined in each class
600
+ of Sisimai::Reason.
601
+ - Fixed issue #91, Import and convert error messages and reasons table from Sisimai::Bite::Email
602
+ ::Exchange2007 into Sisimai::Rhost::ExchangeOnline for detecting an error reason.
603
+ Thanks to @joaoscotto.
604
+ - Fix code to avoid an error with "invalid byte sequence in UTF-8" reported at
605
+ https://heartbeats.jp/hbblog/2017/12/sisimai.html .
606
+ - Implement Sisimai::Bite::Email::FML to parse bounce mails generated by fml mailing list server/
607
+ manager. Thanks to @ttkzw.
556
608
 
557
609
  v4.22.2
558
- --------------------------------------------------------------------------------
610
+ ---------------------------------------------------------------------------------------------------
559
611
  - release: "Fri, 13 Oct 2017 11:59:53 +0900 (JST)"
560
612
  - version: "4.22.2"
561
613
  - changes:
562
- - Apply Pull-Request #84 (issue #83) for setting the value of `softorhard` in
563
- `Sisimai::SMTP::Error.soft_or_hard` method. Thanks to @lunatyq.
564
- - Fix a wrong value assignment, and code for Performance/StartWith reported
565
- from Rubocop in Sisimai::Bite::Email::GSuite.
566
- - Update codes about Lint/AssignmentInCondition, Style/Next, Style/EmptyElse,
614
+ - Apply #84 #83 for setting the value of `softorhard` in `Sisimai::SMTP::Error.soft_or_hard()`
615
+ method. Thanks to @lunatyq.
616
+ - Fix a wrong value assignment, and code for Performance/StartWith reported from Rubocop in
617
+ `Sisimai::Bite::Email::GSuite`.
618
+ - Update codes about Lint/AssignmentInCondition, Style/Next, Style/EmptyElse,
567
619
  Style/UselessAssignment, and others reported from Rubocop.
568
620
  - Fix code for Performance/Casecmp, Performance/LstripRstrip in Sisimai::MIME.
569
621
  - Update code for Style/SymbolProc in Sisimai::Message::Email.
@@ -571,248 +623,227 @@ v4.22.2
571
623
  - Suuport "event": "spamreport" via Feedback Loop on SendGrid Event Webhook.
572
624
  - Implement `Sisimai::Address.is_undisclosed` method.
573
625
  - Import Pull-Request #237: Support parsing bounce mail from GoDaddy.
574
- - Fix bug for setting the value of `date` in Sisimai::Bite::Email::Postfix.
575
- - Remove obsoleted classes: Sisimai::MTA, Sisimai::MSP, and Sisimai::CED.
626
+ - Fix bug for setting the value of `date` in `Sisimai::Bite::Email::Postfix`.
627
+ - Remove obsoleted classes: `Sisimai::MTA`, `Sisimai::MSP`, and `Sisimai::CED`.
576
628
  - Remove obsoleted method: `Sisimai::Address.parse`.
577
629
 
578
630
  v4.22.1
579
- --------------------------------------------------------------------------------
631
+ ---------------------------------------------------------------------------------------------------
580
632
  - release: "Tue, 29 Aug 2017 17:25:22 +0900 (JST)"
581
633
  - version: "4.22.1"
582
634
  - changes:
583
- - Sisimai::Address was born again: import Pull-Request sisimai/p5-Sisimai#231
584
- - Implement new email address parser method: find()
585
- - Implement new constructor: make()
586
- - Implement new writable accessors: name() and comment()
587
- - parse() method was marked as obsoleted
588
- - **Require Oj 3.0.0 or later. Build test fails when the version of installed
589
- Oj is 2.18.* on CRuby.**
635
+ - `Sisimai::Address` was born again: import Pull-Request sisimai/p5-sisimai#231
636
+ - Implement new email address parser method: `find()`
637
+ - Implement new constructor: `make()`
638
+ - Implement new writable accessors: `name()` and `comment()`
639
+ - `parse()` method was marked as obsoleted
640
+ - **Require Oj 3.0.0 or later. Build test fails when the version of installed Oj is 2.18.* on
641
+ CRuby.**
590
642
  - Tested on JRuby 9.1.9.0.
591
- - Fix wrong constant name in Sisimai::Rhost::ExchangeOnline reported at issue
592
- #77. Thanks to @rdeavila.
593
- - Improved code in Sisimai::Message::Email to avoid an exception reported at
594
- issue #82. Thanks to @hiroyuki-sato.
595
- - Fixed wrong bitwise operation in Sisimai::RFC3464 for getting the original
596
- message part Thanks to @hiroyuki-sato.
643
+ - Fix wrong constant name in Sisimai::Rhost::ExchangeOnline reported at #77. Thanks to @rdeavila.
644
+ - Improved code in Sisimai::Message::Email to avoid an exception reported at issue #82.
645
+ Thanks to @hiroyuki-sato.
646
+ - Fixed wrong bitwise operation in `Sisimai::RFC3464` for getting the original message part.
647
+ Thanks to @hiroyuki-sato.
597
648
 
598
649
  v4.22.0
599
- --------------------------------------------------------------------------------
650
+ ---------------------------------------------------------------------------------------------------
600
651
  - release: "Tue, 22 Aug 2017 18:25:55 +0900 (JST)"
601
652
  - version: "4.22.0"
602
653
  - changes:
603
- - Import Pull-Request sisimai/p5-Sisimai#225, bounce reason: "securityerror"
604
- has been divided into the following three reasons:
654
+ - Import sisimai/p5-sisimai#225, bounce reason: `securityerror` has been divided into the follow-
655
+ ing three reasons:
605
656
  - securityerror
606
657
  - virusdetected
607
658
  - policyviolation
608
- - Issue #78 All the MTA modules have been moved to Sisimai::Bite::* and old
609
- MTA modules: Sisimai::MTA, Sisimai::MSP, Sisimai::CED, and all the methods
610
- in these classes have been marked as obsoleted.
611
- - Import Pull-Request sisimai/p5-Sisimai#230 Sisimai::Address.find method has
612
- been implemented experimentaly as bourne again parser for email addresses.
659
+ - #78 All the MTA modules have been moved to Sisimai::Bite::* and old MTA modules: Sisimai::MTA,
660
+ Sisimai::MSP, Sisimai::CED, and all the methods in these classes have been marked as obsoleted.
661
+ - Import sisimai/p5-sisimai#230 `Sisimai::Address.find` method has been implemented experimentaly
662
+ as bourne again parser for email addresses.
613
663
 
614
664
  v4.21.1
615
- --------------------------------------------------------------------------------
665
+ ---------------------------------------------------------------------------------------------------
616
666
  - release: "Mon, 29 May 2017 14:22:22 +0900 (JST)"
617
667
  - version: "4.21.1"
618
668
  - changes:
619
- - Pull-Request #73, Fix codes for initializing a hash element with an empty
620
- string in Sisimai::MTA::Postfix. Thanks to @MichiakiNakaya.
621
- - Import pull-request: https://github.com/sisimai/p5-Sisimai/pull/222 from
622
- p5-Sisimai to improve error message patterns.
623
- - Changes file has been renamed to **ChangeLog.md** and converted to Markdown
624
- format.
625
- - Import Pull-Request https://github.com/sisimai/p5-Sisimai/pull/223 for code
626
- improvement to detect DNS related errors at G Suite.
669
+ - #73, Fix codes for initializing a hash element with an empty string in Sisimai::MTA::Postfix.
670
+ Thanks to @MichiakiNakaya.
671
+ - Import sisimai/p5-sisimai#222 to improve error message patterns.
672
+ - Changes file has been renamed to **ChangeLog.md** and converted to Markdown format.
673
+ - Import sisimai/p5-sisimai#223 for code improvement to detect DNS related errors at G Suite.
627
674
  - Improved code to detect RFC7505 (NullMX) error: sisimai/set-of-emails#4.
628
- - Code improvements for checking and decoding irregular MIME encoded strings
629
- at is_mimeencoded and mimedecode methods in Sisimai::MIME class reported at
630
- issue #75. Thanks to @winebarrel.
675
+ - Code improvements for checking and decoding irregular MIME encoded strings at `is_mimeencoded`
676
+ and `mimedecode` methods in Sisimai::MIME class reported at issue #75. Thanks to @winebarrel.
631
677
  - Add unit test codes to test all the changes at issue #75.
632
678
 
633
679
  v4.21.0 - Support G Suite
634
- --------------------------------------------------------------------------------
680
+ ---------------------------------------------------------------------------------------------------
635
681
  - release: "Mon, 10 Apr 2017 12:17:22 +0900 (JST)"
636
682
  - version: "4.21.0"
637
683
  - changes:
638
- - Experimental implementation: new MTA module Sisimai::MSP::US::GSuite for
639
- parsing a bounce mail returned from G Suite.
640
- - `Sisimai.make()` and `Sisimai::Message.new()` methods check the value of a
641
- `field` argument more strictly.
642
- - Improved `Sisimai::SMTP::Status.find()`. The method checks whether a found
643
- value as D.S.N. is IPv4 address or not.
644
- - Improved code for getting error messages, D.S.N. values, and SMTP reply
645
- codes in `Sisimai::MTA::Postfix.scan()` method.
684
+ - Experimental implementation: new MTA module `Sisimai::MSP::US::GSuite` for parsing a bounce
685
+ mail returned from G Suite.
686
+ - `Sisimai.make` and `Sisimai::Message.new` methods check the value of a `field` argument more
687
+ strictly.
688
+ - Improved `Sisimai::SMTP::Status.find()`. The method checks whether a found value as D.S.N. is
689
+ IPv4 address or not.
690
+ - Improved code for getting error messages, D.S.N. values, and SMTP reply codes in `Sisimai::MTA
691
+ ::Postfix.scan()` method.
646
692
  - Pull-Request #69, Fix some typos. Thanks to @koic.
647
693
  - Pull-Request #71, Fix break statement. Thanks to @MichiakiNakaya.
648
- - Issue #70, All the value of `$PATH` in Makefile have been fixed to build a
649
- gem file for JRuby Platform. Thanks to @MichiakiNakaya, @hiroyuki-sato.
694
+ - Issue #70, All the value of `$PATH` in Makefile have been fixed to build a gem file for JRuby
695
+ Platform. Thanks to @MichiakiNakaya, @hiroyuki-sato.
650
696
 
651
697
  v4.20.2
652
- --------------------------------------------------------------------------------
698
+ ---------------------------------------------------------------------------------------------------
653
699
  - release: "Sat, 11 Mar 2017 16:32:48 +0900 (JST)"
654
700
  - version: "4.20.2"
655
701
  - changes:
656
- - Pull-Request #63 Add some error message patterns for a bounce message from
657
- Amazon SES SMTP endpoint.
658
- - Fix regular expression in `Sisimai::Message::Email.headers()` method for
659
- resolving issue #65 reported from @rdeavila.
660
- - Issue #67, Fix code in `Sisimai.make()` method for reading bounce email data
661
- from STDIN. Thanks to @marine_dayo.
662
- - Callback feature improvement: import pull-request from sisimai/p5-Sisimai
663
- https://github.com/sisimai/p5-Sisimai/pull/210.
702
+ - #63 Add some error message patterns for a bounce message from Amazon SES SMTP endpoint.
703
+ - Fix regular expression in `Sisimai::Message::Email.headers()` method for resolving #65 reported
704
+ from @rdeavila.
705
+ - Issue #67, Fix code in `Sisimai.make()` method for reading bounce email data from STDIN.
706
+ Thanks to @marine_dayo.
707
+ - Callback feature improvement: import pull-request from sisimai/p5-sisimai#210
664
708
 
665
709
  v4.20.1
666
- --------------------------------------------------------------------------------
710
+ ---------------------------------------------------------------------------------------------------
667
711
  - release: "Sat, 31 Dec 2016 20:10:22 +0900 (JST)"
668
712
  - version: "4.20.1"
669
713
  - changes:
670
714
  - Fix the Java version of Gem file.
671
715
 
672
716
  v4.20.0 - Support Bounce Ojbect (JSON)
673
- --------------------------------------------------------------------------------
717
+ ---------------------------------------------------------------------------------------------------
674
718
  - release: "Sat, 31 Dec 2016 13:36:22 +0900 (JST)"
675
719
  - version: "4.20.0"
676
720
  - changes:
677
- - Experimental implementation: New MTA modules for 2 Cloud Email Deliveries.
678
- These modules can parse JSON formatted bounce objects and can convert to
679
- Sisimai::Data object.
721
+ - Experimental implementation: New MTA modules for 2 Cloud Email Deliveries. These modules can
722
+ parse JSON formatted bounce objects and can convert to `Sisimai::Data` object.
680
723
  - Sisimai::CED::US::AmazonSES
681
724
  - Sisimai::CED::US::SendGrid
682
- - Format of `smtpagent` in the parsed result has been changed. It includes the
683
- category name of MTA/MSP modules like `MTA::Sendmail`, `MTA::Postfix`, and
684
- `MSP::US::SendGrid`.
685
- - The Domain part of dummy email address defined in Sisimai::Address module
686
- has been changed from `dummy-domain.invalid` to `libsisimai.org.invalid`.
725
+ - Format of `smtpagent` in the parsed result has been changed. It includes the category name of
726
+ MTA/MSP modules like `MTA::Sendmail`, `MTA::Postfix`, and `MSP::US::SendGrid`.
727
+ - The Domain part of dummy email address defined in `Sisimai::Address` module has been changed
728
+ from `dummy-domain.invalid` to `libsisimai.org.invalid`.
687
729
  - `Sisimai::SMTP.is_softbounce()` method has been deleted.
688
- - Code improvement for avoid `Invalid byte sequence in UTF-8 (ArgumentError)`
689
- error in `Sisimai::String.to_plain()` method reported from M.R.
730
+ - Code improvement for avoid `Invalid byte sequence in UTF-8 (ArgumentError)` error in `Sisimai::
731
+ String.to_plain()` method reported from M.R.
690
732
  - Sisimai works on Ruby 2.4.0.
691
733
 
692
734
  v4.19.0 - Callback Feature
693
- --------------------------------------------------------------------------------
735
+ ---------------------------------------------------------------------------------------------------
694
736
  - release: "Tue, 18 Oct 2016 14:19:10 +0900 (JST)"
695
737
  - version: "4.19.0"
696
738
  - changes:
697
- - Implement a callback feature at `Sisimai.make()` and `Sisimai.dump()` methods.
698
- More imformation about the feature are available at the following pages:
739
+ - Implement a callback feature at `Sisimai.make()` and `Sisimai.dump()` methods. More imformation
740
+ about the feature are available at the following pages:
699
741
  - https://libsisimai.org/en/usage#callback
700
742
  - https://libsisimai.org/ja/usage#callback
701
743
  - Implement `Sisimai.match()` method: issue #52.
702
744
  - Minor bug fix in `Sisimai::MSP::US::AmazonSES.scan()` method.
703
745
 
704
746
  v4.18.1
705
- --------------------------------------------------------------------------------
747
+ ---------------------------------------------------------------------------------------------------
706
748
  - release: "Sun, 11 Sep 2016 20:05:20 +0900 (JST)"
707
749
  - version: "4.18.1"
708
750
  - changes:
709
- - Fix bug in `Sisimai::Mail::STDIN.read()` method reported at issue #61.
710
- Thanks to @yaegassy.
751
+ - Fix bug in `Sisimai::Mail::STDIN.read()` method reported at issue #61. Thanks to @yaegassy.
711
752
  - Fix bug in `Sisimai::MIME.qprintd()` reported at issue #60.
712
753
  - Improved code related to MIME decoding.
713
- - Implement `Sisimai::String.to_plain()` for converting from HTML message to
714
- plain text before parsing. The method and related codes are imported from
715
- pull-request #197 at p5-Sisimai.
754
+ - Implement `Sisimai::String.to_plain()` for converting from HTML message to plain text before
755
+ parsing. The method and related codes are imported from pull-request sisimai/p5-sisimai#197
716
756
 
717
757
  v4.18.0 - Improvements for Microsoft Exchange Servers
718
- --------------------------------------------------------------------------------
758
+ ---------------------------------------------------------------------------------------------------
719
759
  - release: "Mon, 22 Aug 2016 20:40:55 +0900 (JST)"
720
760
  - version: "4.18.0"
721
761
  - changes:
722
- - Import pull-request https://github.com/sisimai/rb-Sisimai/pull/59 (soft
723
- bounce improvement) from Perl version of Sisimai.
724
- - Sisimai::MTA::Exchange has been renamed to Sisimai::MTA::Exchange2003.
725
- - Implement new MTA module Sisimai::MTA::Exchange2007.
762
+ - Import sisimai/rb-sisimai#59 (softbounce improvement) from the Perl version of Sisimai.
763
+ - `Sisimai::MTA::Exchange` has been renamed to `Sisimai::MTA::Exchange2003`.
764
+ - Implement new MTA module `Sisimai::MTA::Exchange2007`.
726
765
 
727
766
  v4.17.2
728
- --------------------------------------------------------------------------------
767
+ ---------------------------------------------------------------------------------------------------
729
768
  - release: "Tue, 26 Jul 2016 21:00:17 +0900 (JST)"
730
769
  - version: "4.17.2"
731
770
  - changes:
732
- - Issue #174, Implement Sisimai::Rhost::ExchangeOnline for the bounce mail
733
- from on-premises Exchange 2013 and Office 365.
771
+ - #174, Implement Sisimai::Rhost::ExchangeOnline for the bounce mail from on-premises Exchange
772
+ 2013 and Office 365.
734
773
  - The reason of status code: `4.4.5` is `systemfull`.
735
774
  - Code improvement at Sisimai::MSP::US::Office365.
736
775
 
737
776
  v4.17.1
738
- --------------------------------------------------------------------------------
777
+ ---------------------------------------------------------------------------------------------------
739
778
  - release: "Wed, 30 Mar 2016 14:00:22 +0900 (JST)"
740
779
  - version: "4.17.1"
741
780
  - changes:
742
- - Ported codes from https://github.com/sisimai/p5-Sisimai/pull/180 for fixing
743
- issue https://github.com/sisimai/p5-Sisimai/issues/179, a variable defined
744
- in `lib/sisimai/mta/exim.rb` is not quoted before passing to `%r//` operator.
745
- - Fixed serious bug in `Sisimai::Mail::Maildir#read` method reported at issue
746
- #55 and #56 by pull-request #57. Thanks to @taku1201.
781
+ - Ported codes from sisimai/p5-sisimai#180 for fixing issue sisimai/p5-sisimai#179, a variable
782
+ defined in `lib/sisimai/mta/exim.rb` is not quoted before passing to `%r//` operator.
783
+ - Fixed a serious bug in `Sisimai::Mail::Maildir#read` method reported at #55 and #56 by #57.
784
+ Thanks to @taku1201.
747
785
 
748
786
  v4.17.0 - New Error Reason "syntaxerror"
749
- --------------------------------------------------------------------------------
787
+ ---------------------------------------------------------------------------------------------------
750
788
  - release: "Wed, 16 Mar 2016 12:22:44 +0900 (JST)"
751
789
  - version: "4.17.0"
752
790
  - changes:
753
- - Implement new reason **syntaxerror**. Sisimai will set `syntaxerror` to the
754
- raeson when the value of `replycode` begins with `50` such as 502, 503,
755
- or 504. Imported from https://github.com/sisimai/p5-Sisimai/pull/170.
756
- - Implement `description()` method at each class in `sisimai/reason/*.rb` and
757
- `Sisimai.reason()` method for getting the list of reasons Sisimai can detect
758
- and its description: issue #48.
791
+ - Implement new reason **syntaxerror**. Sisimai will set `syntaxerror` to the value of `raeson`
792
+ when the value of `replycode` begins with `50` such as `502`, `503`, or `504`. Imported from
793
+ sisimai/p5-sisimai#170.
794
+ - Implement `description()` method at each class in `sisimai/reason/*.rb` and `Sisimai.reason()`
795
+ method for getting the list of reasons Sisimai can detect and its description: issue #48.
759
796
  - Remove unused method `Sisimai::Reason.match()`, issue #49.
760
- - Some methods of Sisimai::Address class allow `postmaster`, `mailer-daemon`
761
- (without a domain part) as an email address.
762
- - `Sisimai::RFC5322.is_mailerdaemon()` method returns true when the argument
763
- includes `postmaster`.
764
- - Merge pull-request #51, new method `Sisimai::RFC5322.weedout()` and code
765
- improvements in all the MTA/MSP modules.
766
-
797
+ - Some methods of `Sisimai::Address` class allow `postmaster`, `mailer-daemon` (without a domain
798
+ part) as an email address.
799
+ - `Sisimai::RFC5322.is_mailerdaemon` method returns true when the argument includes `postmaster`.
800
+ - Merge pull-request #51, new method `Sisimai::RFC5322.weedout` and code improvements in all the
801
+ MTA/MSP modules.
767
802
 
768
803
  v4.16.0 - New Error Reason "delivered"
769
- --------------------------------------------------------------------------------
804
+ ---------------------------------------------------------------------------------------------------
770
805
  - release: "Thu, 18 Feb 2016 13:49:01 +0900 (JST)"
771
806
  - version: "4.16.0"
772
807
  - changes:
773
- - Implement new reason **delivered**. Sisimai set `delivered` to the reason
774
- when the value of `Status:` field in a bounce message begins with `21. This
775
- feature is optional and is not enabled by default.
776
- - Implement new method `Sisimai.engine()`. The method returns the list of MTA
777
- and MSP module list implemented in Sisimai.
778
- - Fix serious bug (`gem install` fails on JRuby environment) in Gemfile and
779
- sisimai.gemspec. This bug is reported at issue #46 and pull-request #47.
780
- Thanks to @hiroyuki-sato and all the people who helped for resolving this
781
- issue on https://github.com/rubygems/rubygems/issues/1492.
808
+ - Implement new reason **delivered**. Sisimai set `delivered` to the reason when the value of
809
+ `Status:` field in a bounce message begins with `21`. This feature is optional and is not ena-
810
+ bled by default.
811
+ - Implement new method `Sisimai.engine()`. The method returns the list of MTA and MSP module list
812
+ implemented in Sisimai.
813
+ - Fix serious bug (`gem install` fails on JRuby environment) in Gemfile and sisimai.gemspec. This
814
+ bug is reported at issue #46 and pull-request #47. Thanks to @hiroyuki-sato and all the people
815
+ who helped for resolving this issue on https://github.com/rubygems/rubygems/issues/1492.
782
816
 
783
817
  v4.15.1
784
- --------------------------------------------------------------------------------
818
+ ---------------------------------------------------------------------------------------------------
785
819
  - release: "Wed, 17 Feb 2016 01:36:45 +0900 (JST)"
786
820
  - version: "4.15.1"
787
821
  - changes:
788
- - Fix serious bug: command `gem install sisimai` fails on JRuby, reported at
789
- issue #46. Thanks to @hiroyuki-sato.
822
+ - Fix serious bug: command `gem install sisimai` fails on JRuby, reported at issue #46. Thanks to
823
+ @hiroyuki-sato.
790
824
  - v4.15.1 exist on Ruby version of Sisimai only.
791
825
 
792
826
  v4.15.0 - Oj or JrJackson Required
793
- --------------------------------------------------------------------------------
827
+ ---------------------------------------------------------------------------------------------------
794
828
  - release: "Sat, 13 Feb 2016 12:40:15 +0900 (JST)"
795
829
  - version: "4.15.0"
796
830
  - changes:
797
- - Beginning with this version, Sisimai requires Oj(MRI) or JrJackson(JRuby)
798
- for encoding parsed data to JSON string more faster (about 10%-20% faster
799
- than before). Implemented at pull-request #44 and discussed in issue #42.
831
+ - Beginning with this version, Sisimai requires Oj(MRI) or JrJackson(JRuby) for encoding parsed
832
+ data to JSON string more faster (about 10%-20% faster than before). Implemented at pull-request
833
+ #44 and discussed in issue #42. Thanks to @hiroyuki-sato.
834
+ - Implement new MTA/MSP module `Sisimai::MSP::US::AmazonWorkMail` for parsing a bounce mail via
835
+ Amazon WorkMail. The module and test codes are imported from sisimai/p5-sisimai#162.
836
+ - Implement new MTA/MSP module Sisimai::MSP::US::Office365 for parsing error mails via Microsoft
837
+ Office 365. The module, test codes, and sample emails are imported from sisimai/p5-sisimai#164.
838
+ - New method `Sisimai::Address#to_s` to get an email address as String, it is implemented at #39.
800
839
  Thanks to @hiroyuki-sato.
801
- - Implement new MTA/MSP module Sisimai::MSP::US::AmazonWorkMail for parsing
802
- a bounce mail via Amazon WorkMail. The module and test codes are imported
803
- from https://github.com/sisimai/p5-Sisimai/pull/162.
804
- - Implement new MTA/MSP module Sisimai::MSP::US::Office365 for parsing error
805
- mails via Microsoft Office 365. The module, test codes, and sample emails
806
- are imported from https://github.com/sisimai/p5-Sisimai/pull/164.
807
- - New method `Sisimai::Address#to_s` to get an email address as String, it is
808
- implemented at pull-request #39. Thanks to @hiroyuki-sato.
809
- - Almost all of the class variables are removed for resolving issue #40 and
810
- merged pull-request #43, thanks to @hiroyuki-sato.
840
+ - Almost all of the class variables are removed for resolving issue #40 and merged pull-request
841
+ #43, thanks to @hiroyuki-sato.
811
842
 
812
843
  v4.14.2 - Ruby Version of Sisimai
813
- --------------------------------------------------------------------------------
844
+ ---------------------------------------------------------------------------------------------------
814
845
  - release: "Wed, 3 Feb 2016 13:29:17 +0900 (JST)"
815
846
  - version: "4.14.2"
816
847
  - changes:
817
- - The first release of rb-Sisimai.
848
+ - The first release of rb-sisimai.
818
849