sisimai 4.25.16-java → 5.0.0-java

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