sisimai 4.25.17 → 5.0.0

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