sisimai 5.0.2 → 5.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (168) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/codecovio.yml +35 -0
  3. data/.github/workflows/rake-test.yml +27 -24
  4. data/ChangeLog.md +62 -0
  5. data/Gemfile +2 -0
  6. data/README-JA.md +21 -18
  7. data/README.md +23 -20
  8. data/lib/sisimai/arf.rb +27 -8
  9. data/lib/sisimai/fact/json.rb +2 -2
  10. data/lib/sisimai/fact/yaml.rb +2 -2
  11. data/lib/sisimai/fact.rb +4 -19
  12. data/lib/sisimai/lhost/activehunter.rb +4 -3
  13. data/lib/sisimai/lhost/amavis.rb +4 -4
  14. data/lib/sisimai/lhost/amazonses.rb +6 -6
  15. data/lib/sisimai/lhost/amazonworkmail.rb +4 -4
  16. data/lib/sisimai/lhost/aol.rb +4 -4
  17. data/lib/sisimai/lhost/apachejames.rb +4 -4
  18. data/lib/sisimai/lhost/barracuda.rb +4 -4
  19. data/lib/sisimai/lhost/bigfoot.rb +4 -4
  20. data/lib/sisimai/lhost/biglobe.rb +4 -4
  21. data/lib/sisimai/lhost/courier.rb +4 -4
  22. data/lib/sisimai/lhost/domino.rb +4 -4
  23. data/lib/sisimai/lhost/dragonfly.rb +114 -0
  24. data/lib/sisimai/lhost/einsundeins.rb +4 -4
  25. data/lib/sisimai/lhost/exchange2003.rb +4 -3
  26. data/lib/sisimai/lhost/exchange2007.rb +4 -3
  27. data/lib/sisimai/lhost/exim.rb +4 -4
  28. data/lib/sisimai/lhost/ezweb.rb +4 -4
  29. data/lib/sisimai/lhost/facebook.rb +4 -4
  30. data/lib/sisimai/lhost/fml.rb +4 -4
  31. data/lib/sisimai/lhost/gmail.rb +4 -4
  32. data/lib/sisimai/lhost/gmx.rb +4 -4
  33. data/lib/sisimai/lhost/googlegroups.rb +4 -4
  34. data/lib/sisimai/lhost/gsuite.rb +4 -4
  35. data/lib/sisimai/lhost/imailserver.rb +4 -3
  36. data/lib/sisimai/lhost/interscanmss.rb +5 -4
  37. data/lib/sisimai/lhost/kddi.rb +4 -4
  38. data/lib/sisimai/lhost/mailfoundry.rb +4 -4
  39. data/lib/sisimai/lhost/mailmarshalsmtp.rb +6 -5
  40. data/lib/sisimai/lhost/mailru.rb +4 -4
  41. data/lib/sisimai/lhost/mcafee.rb +4 -4
  42. data/lib/sisimai/lhost/messagelabs.rb +4 -3
  43. data/lib/sisimai/lhost/messagingserver.rb +5 -4
  44. data/lib/sisimai/lhost/mfilter.rb +4 -4
  45. data/lib/sisimai/lhost/mxlogic.rb +3 -3
  46. data/lib/sisimai/lhost/notes.rb +4 -4
  47. data/lib/sisimai/lhost/office365.rb +4 -4
  48. data/lib/sisimai/lhost/opensmtpd.rb +9 -7
  49. data/lib/sisimai/lhost/outlook.rb +4 -4
  50. data/lib/sisimai/lhost/postfix.rb +4 -4
  51. data/lib/sisimai/lhost/powermta.rb +4 -4
  52. data/lib/sisimai/lhost/qmail.rb +10 -10
  53. data/lib/sisimai/lhost/receivingses.rb +4 -4
  54. data/lib/sisimai/lhost/sendgrid.rb +4 -4
  55. data/lib/sisimai/lhost/sendmail.rb +4 -4
  56. data/lib/sisimai/lhost/surfcontrol.rb +4 -4
  57. data/lib/sisimai/lhost/v5sendmail.rb +5 -4
  58. data/lib/sisimai/lhost/verizon.rb +4 -4
  59. data/lib/sisimai/lhost/x1.rb +3 -3
  60. data/lib/sisimai/lhost/x2.rb +3 -3
  61. data/lib/sisimai/lhost/x3.rb +3 -3
  62. data/lib/sisimai/lhost/x4.rb +3 -3
  63. data/lib/sisimai/lhost/x5.rb +3 -3
  64. data/lib/sisimai/lhost/x6.rb +3 -3
  65. data/lib/sisimai/lhost/yahoo.rb +4 -4
  66. data/lib/sisimai/lhost/yandex.rb +4 -4
  67. data/lib/sisimai/lhost/zoho.rb +4 -4
  68. data/lib/sisimai/lhost.rb +5 -5
  69. data/lib/sisimai/mail/maildir.rb +1 -1
  70. data/lib/sisimai/mail/stdin.rb +1 -1
  71. data/lib/sisimai/mda.rb +3 -3
  72. data/lib/sisimai/message.rb +9 -9
  73. data/lib/sisimai/order.rb +1 -0
  74. data/lib/sisimai/reason/badreputation.rb +1 -1
  75. data/lib/sisimai/reason/blocked.rb +1 -0
  76. data/lib/sisimai/reason/expired.rb +7 -0
  77. data/lib/sisimai/reason/filtered.rb +1 -0
  78. data/lib/sisimai/reason/mailboxfull.rb +3 -0
  79. data/lib/sisimai/reason/norelaying.rb +2 -0
  80. data/lib/sisimai/reason/rejected.rb +2 -1
  81. data/lib/sisimai/reason/suspend.rb +4 -0
  82. data/lib/sisimai/reason/userunknown.rb +4 -1
  83. data/lib/sisimai/reason.rb +8 -8
  84. data/lib/sisimai/rfc3464.rb +3 -3
  85. data/lib/sisimai/rfc3834.rb +2 -2
  86. data/lib/sisimai/rhost/apple.rb +92 -0
  87. data/lib/sisimai/rhost/cox.rb +81 -32
  88. data/lib/sisimai/rhost/franceptt.rb +84 -81
  89. data/lib/sisimai/rhost/godaddy.rb +205 -43
  90. data/lib/sisimai/rhost/google.rb +85 -72
  91. data/lib/sisimai/rhost/iua.rb +2 -2
  92. data/lib/sisimai/rhost/kddi.rb +6 -5
  93. data/lib/sisimai/rhost/microsoft.rb +12 -5
  94. data/lib/sisimai/rhost/mimecast.rb +15 -4
  95. data/lib/sisimai/rhost/nttdocomo.rb +4 -4
  96. data/lib/sisimai/rhost/spectrum.rb +100 -40
  97. data/lib/sisimai/rhost/tencent.rb +46 -25
  98. data/lib/sisimai/rhost/yahooinc.rb +110 -0
  99. data/lib/sisimai/rhost.rb +28 -35
  100. data/lib/sisimai/smtp/reply.rb +4 -3
  101. data/lib/sisimai/smtp/transcript.rb +3 -3
  102. data/lib/sisimai/version.rb +1 -1
  103. data/lib/sisimai.rb +0 -6
  104. data/set-of-emails/maildir/bsd/arf-26.eml +27 -0
  105. data/set-of-emails/maildir/bsd/lhost-dragonfly-01.eml +36 -0
  106. data/set-of-emails/maildir/bsd/lhost-dragonfly-02.eml +32 -0
  107. data/set-of-emails/maildir/bsd/lhost-dragonfly-03.eml +32 -0
  108. data/set-of-emails/maildir/bsd/lhost-dragonfly-04.eml +31 -0
  109. data/set-of-emails/maildir/bsd/lhost-dragonfly-05.eml +32 -0
  110. data/set-of-emails/maildir/bsd/lhost-dragonfly-06.eml +32 -0
  111. data/set-of-emails/maildir/bsd/lhost-dragonfly-07.eml +32 -0
  112. data/set-of-emails/maildir/bsd/lhost-dragonfly-08.eml +32 -0
  113. data/set-of-emails/maildir/bsd/lhost-dragonfly-09.eml +32 -0
  114. data/set-of-emails/maildir/bsd/lhost-dragonfly-10.eml +32 -0
  115. data/set-of-emails/maildir/bsd/lhost-dragonfly-11.eml +32 -0
  116. data/set-of-emails/maildir/bsd/lhost-dragonfly-12.eml +32 -0
  117. data/set-of-emails/maildir/bsd/lhost-dragonfly-13.eml +32 -0
  118. data/set-of-emails/maildir/bsd/lhost-dragonfly-14.eml +32 -0
  119. data/set-of-emails/maildir/bsd/lhost-dragonfly-15.eml +32 -0
  120. data/set-of-emails/maildir/bsd/lhost-dragonfly-16.eml +32 -0
  121. data/set-of-emails/maildir/bsd/lhost-dragonfly-17.eml +32 -0
  122. data/set-of-emails/maildir/bsd/lhost-dragonfly-18.eml +32 -0
  123. data/set-of-emails/maildir/bsd/lhost-dragonfly-19.eml +32 -0
  124. data/set-of-emails/maildir/bsd/lhost-dragonfly-20.eml +32 -0
  125. data/set-of-emails/maildir/bsd/lhost-dragonfly-21.eml +33 -0
  126. data/set-of-emails/maildir/bsd/lhost-dragonfly-22.eml +32 -0
  127. data/set-of-emails/maildir/bsd/lhost-dragonfly-23.eml +32 -0
  128. data/set-of-emails/maildir/bsd/lhost-dragonfly-24.eml +32 -0
  129. data/set-of-emails/maildir/bsd/lhost-dragonfly-25.eml +33 -0
  130. data/set-of-emails/maildir/bsd/lhost-dragonfly-26.eml +33 -0
  131. data/set-of-emails/maildir/bsd/lhost-dragonfly-27.eml +47 -0
  132. data/set-of-emails/maildir/bsd/lhost-dragonfly-28.eml +47 -0
  133. data/set-of-emails/maildir/bsd/lhost-dragonfly-29.eml +32 -0
  134. data/set-of-emails/maildir/bsd/lhost-dragonfly-30.eml +32 -0
  135. data/set-of-emails/maildir/bsd/lhost-opensmtpd-10.eml +58 -0
  136. data/set-of-emails/maildir/bsd/lhost-opensmtpd-11.eml +58 -0
  137. data/set-of-emails/maildir/bsd/lhost-opensmtpd-12.eml +62 -0
  138. data/set-of-emails/maildir/bsd/lhost-opensmtpd-13.eml +62 -0
  139. data/set-of-emails/maildir/bsd/lhost-opensmtpd-14.eml +58 -0
  140. data/set-of-emails/maildir/bsd/lhost-opensmtpd-15.eml +63 -0
  141. data/set-of-emails/maildir/bsd/lhost-opensmtpd-16.eml +62 -0
  142. data/set-of-emails/maildir/bsd/lhost-opensmtpd-17.eml +63 -0
  143. data/set-of-emails/maildir/bsd/lhost-qmail-11.eml +29 -0
  144. data/set-of-emails/maildir/bsd/lhost-qmail-12.eml +29 -0
  145. data/set-of-emails/maildir/bsd/lhost-qmail-13.eml +29 -0
  146. data/set-of-emails/maildir/bsd/lhost-qmail-14.eml +34 -0
  147. data/set-of-emails/maildir/bsd/lhost-qmail-15.eml +30 -0
  148. data/set-of-emails/maildir/bsd/lhost-qmail-16.eml +31 -0
  149. data/set-of-emails/maildir/bsd/lhost-qmail-17.eml +38 -0
  150. data/set-of-emails/maildir/bsd/lhost-qmail-18.eml +31 -0
  151. data/set-of-emails/maildir/bsd/lhost-qmail-19.eml +31 -0
  152. data/set-of-emails/maildir/bsd/lhost-qmail-20.eml +46 -0
  153. data/set-of-emails/maildir/bsd/lhost-qmail-21.eml +41 -0
  154. data/set-of-emails/maildir/bsd/lhost-qmail-22.eml +42 -0
  155. data/set-of-emails/maildir/bsd/lhost-qmail-23.eml +43 -0
  156. data/set-of-emails/maildir/bsd/lhost-qmail-24.eml +43 -0
  157. data/set-of-emails/maildir/bsd/lhost-qmail-25.eml +54 -0
  158. data/set-of-emails/maildir/bsd/rhost-apple-01.eml +79 -0
  159. data/set-of-emails/maildir/bsd/rhost-apple-02.eml +81 -0
  160. data/set-of-emails/maildir/bsd/rhost-apple-03.eml +75 -0
  161. data/set-of-emails/maildir/bsd/rhost-apple-04.eml +74 -0
  162. data/set-of-emails/maildir/bsd/rhost-microsoft-04.eml +86 -0
  163. data/set-of-emails/maildir/bsd/rhost-microsoft-05.eml +83 -0
  164. data/set-of-emails/maildir/bsd/rhost-yahooinc-01.eml +80 -0
  165. data/set-of-emails/maildir/bsd/rhost-yahooinc-02.eml +83 -0
  166. data/set-of-emails/maildir/bsd/rhost-yahooinc-03.eml +125 -0
  167. metadata +69 -3
  168. data/.travis.yml +0 -23
@@ -15,16 +15,16 @@ module Sisimai
15
15
  # - 550 5.7.24 The SPF record of the sending domain has one or more suspicious entries.
16
16
  # For more information, go to Email sender guidelines.
17
17
  # - https://support.google.com/mail/answer/81126#authentication
18
- ['451', '4.7.24', 'the spf record of the sending domain has one or more suspicious entries'],
19
- ['550', '5.7.24', 'the spf record of the sending domain has one or more suspicious entries'],
18
+ ['451', '4.7.24', 'the spf record of the sending domain'],
19
+ ['550', '5.7.24', 'the spf record of the sending domain'],
20
20
 
21
21
  # - 421 4.7.26 This mail has been rate limited because it is unauthenticated.
22
22
  # Gmail requires all senders to authenticate with either SPF or DKIM.
23
23
  # Authentication results: DKIM = did not pass SPF domain-name with ip: ip-address =
24
24
  # did not pass. To resolve this issue, go to Email sender guidelines.
25
25
  # - https://support.google.com/mail/answer/81126#authentication
26
- ['421', '4.7.26', 'gmail requires all senders to authenticate with either spf or dkim'],
27
- ['550', '5.7.26', 'gmail requires all senders to authenticate with either spf or dkim'],
26
+ ['421', '4.7.26', 'senders to authenticate with either spf or dkim'],
27
+ ['550', '5.7.26', 'senders to authenticate with either spf or dkim'],
28
28
 
29
29
  # - 550 5.7.26 This message fails to pass SPF checks for an SPF record with a hard fail
30
30
  # policy (-all). To best protect our users from spam and phishing, the message has
@@ -36,7 +36,7 @@ module Sisimai
36
36
  # protect our users from spam and phishing, the message has been blocked. For more
37
37
  # information, go to Email sender guidelines.
38
38
  # - https://support.google.com/mail/answer/81126#authentication
39
- ['550', '5.7.26', 'this message fails to pass spf checks for an spf record with a hard fail'],
39
+ ['550', '5.7.26', 'fails to pass spf checks for an spf record with a hard fail'],
40
40
  ['550', '5.7.26', 'has an spf record with a hard fail policy'],
41
41
 
42
42
  # - 451 4.7.26 Unauthenticated email from domain-name is not accepted due to domain's
@@ -61,27 +61,36 @@ module Sisimai
61
61
  ['550', '5.7.1', 'fails to pass authentication checks'],
62
62
  ['550', '5.7.26', 'fails to pass authentication checks'],
63
63
 
64
- # - 421 4.7.27 This mail has been rate limited because SPF does not pass.
65
- # Gmail requires all large senders to authenticate with SPF. Authentication results:
66
- # SPF domain-name with ip: ip-address = did not pass. To resolve this issue, go to
67
- # Define your SPF record窶韮asic setup. https://support.google.com/a/answer/10685031
68
- ['421', '4.7.27', 'gmail requires all large senders to authenticate with spf'],
69
- ['550', '5.7.27', 'gmail requires all large senders to authenticate with spf'],
70
-
71
- # - 421 4.7.28 This mail has been rate limited because DKIM does not pass.
72
- # Gmail requires all large senders to authenticate with DKIM. Authentication results:
73
- # DKIM = did not pass. For instructions on setting up DKIM authentication, go to Turn
74
- # on DKIM for your domain. https://support.google.com/a/answer/180504
75
- ['421', '4.7.28', 'gmail requires all large senders to authenticate with dkim'],
76
- ['550', '5.7.28', 'gmail requires all large senders to authenticate with dkim'],
64
+ # - 421 4.7.27 Your email has been rate limited because SPF authentication didn't pass
65
+ # for this message. Gmail requires all bulk email senders to authenticate their emaili
66
+ # with SPF. Authentication results: SPF domain-name with IP address: ip-address = Did
67
+ # not pass.
68
+ ['421', '4.7.27', 'senders to authenticate with spf'],
69
+ ['421', '4.7.27', 'senders to authenticate their email with spf'],
70
+ ['550', '5.7.27', 'senders to authenticate with spf'],
71
+
72
+ # - 421 4.7.30 Your email has been rate limited because DKIM authentication didn't pass
73
+ # for this message. Gmail requires all email bulk senders to authenticate their email
74
+ # with DKIM. Authentication results: DKIM = Did not pass.
75
+ ['421', '4.7.30', 'senders to authenticate their email with dkim'],
76
+
77
+ # - 550 5.7.30 This mail has been blocked because DKIM does not pass. Gmail requires all
78
+ # large senders to authenticate with DKIM. Authentication results: DKIM = did not pass.
79
+ # For instructions on setting up DKIM authentication, go to Turn on DKIM for your domain.
80
+ ['550', '5.7.30', 'senders to authenticate with dkim'],
81
+
82
+ # - 421 4.7.32 Your email has been rate limited because the From: header (RFC5322) in
83
+ # this message isn't aligned with either the authenticated SPF or DKIM organizational
84
+ # domain.
85
+ ['421', '4.7.32', 'aligned with either the authenticated spf or dkim'],
77
86
  ],
78
87
  'badreputation' => [
79
88
  # - 421 4.7.0 This message is suspicious due to the very low reputation of the sending
80
89
  # IP address/domain. To protect our users from spam, mail sent from your IP address
81
90
  # has been temporarily rate limited. For more information, go to Why has Gmail blocked
82
91
  # my messages?. https://support.google.com/mail/answer/188131
83
- ['421', '4.7.0', 'this message is suspicious due to the very low reputation of the sending ip address'],
84
- ['421', '4.7.0', 'this message is suspicious due to the very low reputation of the sending domain'],
92
+ ['421', '4.7.0', 'very low reputation of the sending ip address'],
93
+ ['421', '4.7.0', 'very low reputation of the sending domain'],
85
94
 
86
95
  # - 550 5.7.1 Our system has detected that this message is likely suspicious due to the
87
96
  # very low reputation of the sending IP address/domain. To best protect our users
@@ -94,7 +103,7 @@ module Sisimai
94
103
  # - 421 4.7.0 IP not in whitelist for RCPT domain, closing connection.
95
104
  # For more information, go to Allowlists, denylists, and approved senders.
96
105
  # https://support.google.com/a/answer/60752
97
- ['421', '4.7.0', 'ip not in whitelist for rcpt domain, closing connection.'],
106
+ ['421', '4.7.0', 'ip not in whitelist for rcpt domain'],
98
107
 
99
108
  # - 421 4.7.0 Try again later, closing connection. This usually indicates a Denial of
100
109
  # Service (DoS) for the SMTP relay at the HELO stage.
@@ -105,7 +114,7 @@ module Sisimai
105
114
  ['501', '5.5.4', 'empty helo/ehlo argument not allowed'],
106
115
  ['501', '5.5.4', 'helo/ehlo argument is invalid'],
107
116
 
108
- # - 421 4.7.28 Gmail has detected an unusual rate of unsolicited mail.
117
+ # - 421 4.7.28 Gmail has detected an unusual rate of mail
109
118
  # (originating from)
110
119
  # - your IP address 192.0.2.25
111
120
  # - your IP Netblock 192.0.2.0/24 (?)
@@ -117,7 +126,7 @@ module Sisimai
117
126
  # our bulk email senders guidelines, go to Email sender guidelines.
118
127
  # https://support.google.com/mail/?p=UnsolicitedRateLimitError
119
128
  ['421', '4.7.0', 'an unusual rate of unsolicited mail'],
120
- ['421', '4.7.28', 'an unusual rate of unsolicited mail'],
129
+ ['421', '4.7.28', 'an unusual rate of mail'],
121
130
 
122
131
  # - 550 5.7.1 Our system has detected an unusual rate of unsolicited mail originating
123
132
  # from your IP address. To protect our users from spam, mail sent from your IP ad-
@@ -126,8 +135,8 @@ module Sisimai
126
135
  # - 550 5.7.28 There is an unusual rate of unsolicited mail originating from your IP
127
136
  # address. To protect our users from spam, mail sent from your IP address has been
128
137
  # blocked. To review our bulk email senders guidelines, go to Email sender guidelines.
129
- ['550', '5.7.1', 'an unusual rate of unsolicited mail originating from your ip address'],
130
- ['550', '5.7.28', 'an unusual rate of unsolicited mail originating from your ip address'],
138
+ ['550', '5.7.1', 'an unusual rate of unsolicited mail'],
139
+ ['550', '5.7.28', 'an unusual rate of unsolicited mail'],
131
140
  ],
132
141
  'exceedlimit' => [
133
142
  # - 552 5.2.3 Your message exceeded Google's message size limits. For more information,
@@ -144,8 +153,8 @@ module Sisimai
144
153
  ['552', '5.3.4', "exceeds google's limit of limit attachments."],
145
154
  ['552', '5.3.4', "your message exceeded google's message header size limits"],
146
155
  ['552', '5.3.4', 'bytes per individual header size'],
147
- ['552', '5.3.4', "exceeds google窶冱 header name limit of"],
148
- ['552', '5.3.4', "your message has a subject: header that exceeds google's message header size limit"]
156
+ ['552', '5.3.4', "exceeds google's header name limit of"],
157
+ ['552', '5.3.4', "exceeds google's message header size limit"]
149
158
  ],
150
159
  'expired' => [
151
160
  # - 421 4.7.0 Connection expired, try reconnecting. For more information, go to About
@@ -165,15 +174,15 @@ module Sisimai
165
174
 
166
175
  # - 452 4.2.2 The email account that you tried to reach is over quota. Please direct
167
176
  # the recipient to Clear Google Drive space & increase storage.
168
- ['452', '4.2.2', 'the email account that you tried to reach is over quota'],
169
- ['552', '5.2.2', 'the email account that you tried to reach is over quota'],
177
+ ['452', '4.2.2', 'is over quota'],
178
+ ['552', '5.2.2', 'is over quota'],
170
179
  ['550', '5.7.1', 'email quota exceeded'],
171
180
  ],
172
181
  'mesgtoobig' => [
173
182
  # - 552 5.3.4 Your message exceeded Google's message size limits. To view our message
174
183
  # size guidelines, go to Send attachments with your Gmail message.
175
184
  # - https://support.google.com/mail/?p=MaxSizeError
176
- ['552', '5.3.4', "your message exceeded google's message size limits"],
185
+ ['552', '5.3.4', "exceeded google's message size limits"],
177
186
 
178
187
  # - 552 5.3.4 The size of your message (size bytes) exceeded Google's message size
179
188
  # limits of limit bytes. To view our message size guidelines, go to Gmail receiving
@@ -184,8 +193,8 @@ module Sisimai
184
193
  'networkerror' => [
185
194
  # - 554 5.4.6 Message exceeded 50 hops, this may indicate a mail loop.
186
195
  # For more information, go to Gmail Help. https://support.google.com/mail/?p=MailLoop
187
- ['554', '5.4.6', 'message exceeded 50 hops, this may indicate a mail loop'],
188
- ['554', '5.6.0', 'message exceeded 50 hops, this may indicate a mail loop'],
196
+ ['554', '5.4.6', 'message exceeded 50 hops'],
197
+ ['554', '5.6.0', 'message exceeded 50 hops'],
189
198
  ],
190
199
  'norelaying' => [
191
200
  # - 550 5.7.0 Mail relay denied <ip-address>. Invalid credentials for relay for one of
@@ -211,37 +220,37 @@ module Sisimai
211
220
  # to our servers. Use the SMTP relay at your service provider instead. For more
212
221
  # information, go to 'The IP you're using to send email is not authorized...'.
213
222
  # - https://support.google.com/mail/?p=NotAuthorizedError
214
- ['550', '5.7.1', "the ip you're using to send mail is not authorized to send email directly to our servers"],
223
+ ['550', '5.7.1', 'is not authorized to send email directly to our servers'],
215
224
  ],
216
225
  'notcompliantrfc' => [
217
226
  # - 550 5.7.1 Messages missing a valid address in the From: header, or having no From:
218
227
  # header, are not accepted. For more information, go to Email sender guidelines and
219
228
  # review RFC 5322 specifications.
220
229
  # - https://support.google.com/mail/?p=RfcMessageNonCompliant
221
- ['550', '5.7.1', 'messages missing a valid address in the from: header'],
222
- ['550', '5.7.1', 'messages with multiple addresses in from: header are not accepted'],
230
+ ['550', '5.7.1', 'missing a valid address in the from: header'],
231
+ ['550', '5.7.1', 'multiple addresses in from: header are not accepted'],
223
232
 
224
233
  # - 550 5.7.1 This message is not RFC 5322 compliant because it has duplicate headers.
225
234
  # To reduce the amount of spam sent to Gmail, this message has been blocked. For more
226
235
  # information, go to Email sender guidelines and review RFC 5322 specifications.
227
236
  # - https://support.google.com/mail/?p=RfcMessageNonCompliant
228
- ['550', '5.7.1', 'this message is not rfc 5322 compliant'],
237
+ ['550', '5.7.1', 'is not rfc 5322 compliant'],
229
238
 
230
239
  # - 550 5.7.1 Messages missing a valid Message-ID: header are not accepted. For more
231
240
  # information, go to Email sender guidelines and review RFC 5322 specifications.
232
241
  # - https://support.google.com/mail/?p=RfcMessageNonCompliant
233
- ['550', '5.7.1', 'messages missing a valid message-id: header are not accepted'],
242
+ ['550', '5.7.1', 'missing a valid message-id: header'],
234
243
 
235
244
  # - 550 5.7.1 The message contains a unicode character in a disallowed header.
236
245
  # To review our message and header content guidelines, go to File types blocked in
237
246
  # Gmail. https://support.google.com/mail/?p=BlockedMessage
238
- ['550', '5.7.1', 'the message contains a unicode character in a disallowed header'],
247
+ ['550', '5.7.1', 'contains a unicode character in a disallowed header'],
239
248
 
240
249
  # - 550 5.7.1 Encoded-word syntax is not permitted in message header header-name. To
241
250
  # reduce the amount of spam sent to Gmail, this message has been blocked. For more
242
251
  # information, go to Email sender guidelines and review RFC 5322 specifications.
243
252
  # - https://support.google.com/mail/?p=RfcMessageNonCompliant
244
- ['550', '5.7.1', 'encoded-word syntax is not permitted in message header'],
253
+ ['550', '5.7.1', 'encoded-word syntax is not permitted'],
245
254
 
246
255
  # - 553 5.1.7 The sender address address is not a valid RFC 5321 address. For more
247
256
  # information, go to About SMTP error messages and review RFC 5321 specifications.
@@ -251,49 +260,55 @@ module Sisimai
251
260
  # - 554 5.6.0 Mail message is malformed. Not accepted. For more information, go to
252
261
  # Email sender guidelines and review RFC 5322 specifications.
253
262
  # - https://support.google.com/mail/?p=RfcMessageNonCompliant
254
- ['554', '5.6.0', 'mail message is malformed. not accepted'],
263
+ ['554', '5.6.0', 'mail message is malformed'],
255
264
  ],
256
265
  'policyviolation' => [
257
266
  # - 552 5.7.0 Our system detected an illegal attachment on your message. Please visit
258
267
  # http://mail.google.com/support/bin/answer.py?answer=6590 to review our attachment
259
268
  # guidelines.
260
- ['552', '5.7.0', 'detected an illegal attachment on your message'],
269
+ ['552', '5.7.0', 'illegal attachment on your message'],
261
270
 
262
271
  # - 552 5.7.0 This message was blocked because its content presents a potential securi-
263
272
  # ty issue. Please visit https://support.google.com/mail/?p=BlockedMessage to review
264
273
  # our message content and attachment content guidelines.
265
- ['552', '5.7.0', 'this message was blocked because its content presents a potential security issue'],
274
+ ['552', '5.7.0', 'blocked because its content presents a potential security issue'],
266
275
 
267
276
  # - 550 5.7.1 The user or domain that you are sending to (or from) has a policy that
268
277
  # prohibited the mail that you sent. Please contact your domain administrator for
269
278
  # further details.
270
279
  # For more information, visit https://support.google.com/a/answer/172179
271
- ['550', '5.7.1', 'the user or domain that you are sending to (or from) has a policy that prohibited'],
280
+ ['550', '5.7.1', 'you are sending to (or from) has a policy that prohibited'],
272
281
 
273
282
  # - 421 4.7.28 Gmail has detected this message exceeded its quota for sending messages
274
283
  # with the same Message-ID:. To best protect our users, the message has been tempo-
275
284
  # rarily rejected. For more information, go to Why has Gmail blocked my messages?.
276
285
  # https://support.google.com/mail/answer/188131
277
- ['421', '4.7.28', 'has detected this message exceeded its quota for sending messages with the same message-id:'],
286
+ ['421', '4.7.28', 'sending messages with the same message-id:'],
278
287
  ],
279
288
  'rejected' => [
280
289
  # - 550 5.7.0, Mail Sending denied. This error occurs if the sender account is disabled
281
290
  # or not registered within your Google Workspace domain.
282
291
  # - https://support.google.com/a/answer/6140680#maildenied
283
292
  ['550', '5.7.0', 'mail sending denied'],
284
- ['550', '5.7.1', 'unauthenticated email is not accepted from this domain'],
293
+ ['550', '5.7.1', 'unauthenticated email is not accepted'],
285
294
  ],
286
295
  'requireptr' => [
287
296
  # - 550 5.7.1 This message does not meet IPv6 sending guidelines regarding PTR records
288
297
  # and authentication. For more information, go to Email sender guidelines.
289
298
  # https://support.google.com/mail/?p=IPv6AuthError
290
- ['550', '5.7.1', 'this message does not meet ipv6 sending guidelines regarding ptr records and authentication'],
299
+ ['550', '5.7.1', 'does not meet ipv6 sending guidelines regarding ptr records and authentication'],
291
300
 
292
301
  # - 421 4.7.0 The IP address sending this message does not have a PTR record, or the
293
302
  # corresponding forward DNS entry does not point to the sending IP. To protect our
294
303
  # users from spam, mail sent from your IP address has been temporarily rate limited.
295
304
  # For more information, go to Email sender guidelines.
296
- #
305
+ ['421', '4.7.0', 'does not have a ptr record'],
306
+
307
+ # - 421 4.7.23 The sending IP address for this message doesn't have a PTR record, or
308
+ # the PTR record's forward DNS entry doesn't match the sending IP address. To protect
309
+ # users from spam, your email has been temporarily rate limited.
310
+ ['421', '4.7.23', ' have a ptr record, or the ptr record'],
311
+
297
312
  # - 550 5.7.25 The IP address sending this message does not have a PTR record setup, or
298
313
  # the corresponding forward DNS entry does not point to the sending IP. As a policy,
299
314
  # Gmail does not accept messages from IPs with missing PTR records.
@@ -303,9 +318,8 @@ module Sisimai
303
318
  # - 550 5.7.25 The sending IP does not match the IP address of the hostname specified
304
319
  # in the pointer (PTR) record. For more information, go to Email sender guidelines.
305
320
  # - https://support.google.com/mail/answer/81126#ip-practices
306
- ['421', '4.7.0', 'the ip address sending this message does not have a ptr record'],
307
- ['550', '5.7.25', 'the ip address sending this message does not have a ptr record'],
308
- ['550', '5.7.25', 'the sending ip does not match the ip address of the hostname'],
321
+ ['550', '5.7.25', 'does not have a ptr record'],
322
+ ['550', '5.7.25', 'does not match the ip address of the hostname'],
309
323
  ],
310
324
  'securityerror' => [
311
325
  # - 421 4.7.0 TLS required for RCPT domain, closing connection. For more information,
@@ -313,7 +327,7 @@ module Sisimai
313
327
  #
314
328
  # - 454 4.7.0 Too many login attempts, please try again later. For more information, go
315
329
  # to Add Gmail to another email client. https://support.google.com/mail/answer/7126229
316
- ['421', '4.7.0', 'tls required for rcpt domain, closing connection'],
330
+ ['421', '4.7.0', 'tls required for rcpt domain'],
317
331
  ['454', '4.7.0', 'too many login attempts'],
318
332
 
319
333
  # - 503 5.7.0 No identity changes permitted. For more information, go to About SMTP
@@ -334,32 +348,33 @@ module Sisimai
334
348
 
335
349
  # - 535 5.7.1 Please log in with your web browser and then try again. For more infor-
336
350
  # mation, visit https://support.google.com/mail/bin/accounts/answer/78754
337
- ['535', '5.7.1', 'please log in with your web browser and then try again'],
338
- ['534', '5.7.9', 'please log in with your web browser and then try again'],
339
- ['534', '5.7.14', 'please log in through your web browser and then try again'],
351
+ ['535', '5.7.1', 'please log in with your web browser'],
352
+ ['534', '5.7.9', 'please log in with your web browser'],
353
+ ['534', '5.7.14', 'please log in through your web browser'],
340
354
 
341
355
  # - 535 5.7.1 Username and Password not accepted. For more information, visit
342
356
  # https://support.google.com/accounts/troubleshooter/2402620
343
357
  ['535', '5.7.1', 'username and password not accepted'],
344
358
  ['535', '5.7.8', 'username and password not accepted'],
345
359
 
346
- # - 421 4.7.29 This mail has been rate limited because TLS wasn't used. Gmail requires
347
- # all large senders to use TLS/SSL during SMTP. For instructions on using TLS, go to
348
- # TLS & SSL connections. https://support.google.com/a/answer/100181
349
- ['421', '4.7.29', 'gmail requires all large senders to use tls/ssl during smtp'],
360
+ # - 421 4.7.29 Your email has been rate limited because this message wasn't sent over a
361
+ # TLS connection. Gmail requires all bulk email senders to use TLS/SSL for SMTP conn-
362
+ # ections.
363
+ ['421', '4.7.29', 'senders to use tls/ssl for smtp'],
364
+ ['550', '5.7.29', 'senders to use tls/ssl for smtp'],
350
365
  ],
351
366
  'spamdetected' => [
352
367
  # - 421 4.7.0 This message is suspicious due to the nature of the content or the links
353
368
  # within. To best protect our users from spam, the message has been blocked. For more
354
369
  # information, go to Why has Gmail blocked my messages?.
355
370
  # https://support.google.com/mail/answer/188131
356
- ['421', '4.7.0', 'this message is suspicious due to the nature of the content or the links within'],
371
+ ['421', '4.7.0', 'due to the nature of the content or the links within'],
357
372
 
358
373
  # - 550 5.7.1 Our system has detected that this message is likely unsolicited mail. To
359
374
  # reduce the amount of spam sent to Gmail, this message has been blocked.
360
375
  # For more information, visit https://support.google.com/mail/answer/188131
361
376
  # - https://support.google.com/mail/?p=UnsolicitedMessageError
362
- ['550', '5.7.1', 'this message is likely unsolicited mail'],
377
+ ['550', '5.7.1', 'likely unsolicited mail'],
363
378
  ],
364
379
  'speeding' => [
365
380
  # - 450 4.2.1 The user you are trying to contact is receiving mail too quickly. Please
@@ -378,8 +393,8 @@ module Sisimai
378
393
  # later time. If the user is able to receive mail at that time, your message will be
379
394
  # delivered. For more information, visit https://support.google.com/mail/answer/6592
380
395
  # - https://support.google.com/mail/?p=ReceivingRatePerm
381
- ['450', '4.2.1', 'is receiving mail at a rate that prevents additional messages from being delivered'],
382
- ['550', '5.2.1', 'is receiving mail at a rate that prevents additional messages from being delivered'],
396
+ ['450', '4.2.1', 'rate that prevents additional messages from being delivered'],
397
+ ['550', '5.2.1', 'rate that prevents additional messages from being delivered'],
383
398
 
384
399
  # - 550 5.4.5 Daily SMTP relay limit exceeded for user. For more information on SMTP
385
400
  # relay sending limits please contact your administrator or visit SMTP relay service
@@ -396,17 +411,17 @@ module Sisimai
396
411
  'suspend' => [
397
412
  # - 550 5.2.1 The email account that you tried to reach is inactive.
398
413
  # For more information, go to https://support.google.com/mail/?p=DisabledUser
399
- ['550', '5.2.1', 'the email account that you tried to reach is disabled'],
400
- ['550', '5.2.1', 'the email account that you tried to reach is inactive'],
414
+ ['550', '5.2.1', 'account that you tried to reach is disabled'],
415
+ ['550', '5.2.1', 'account that you tried to reach is inactive'],
401
416
  ],
402
417
  'syntaxerror' => [
403
418
  # - 523 5.7.10 SMTP protocol violation, no commands allowed to pipeline after STARTTLS.
404
419
  # For more information, go to About SMTP error messages and review RFC 3207
405
420
  # specifications.
406
421
  ['451', '4.5.0', 'smtp protocol violation'],
407
- ['454', '4.5.0', 'smtp protocol violation, no commands allowed to pipeline after starttls'],
408
- ['525', '5.7.10', 'smtp protocol violation, no commands allowed to pipeline after starttls'],
409
- ['535', '5.5.4', 'optional argument not permitted for that auth mode'],
422
+ ['454', '4.5.0', 'smtp protocol violation'],
423
+ ['525', '5.7.10', 'smtp protocol violation'],
424
+ ['535', '5.5.4', 'optional argument not permitted'],
410
425
  ['454', '5.5.1', 'starttls may not be repeated'],
411
426
 
412
427
  # - 501 5.5.2 Syntax error, cannot decode response. For more information, go to About
@@ -494,25 +509,23 @@ module Sisimai
494
509
  }.freeze
495
510
 
496
511
  # Detect bounce reason from Google Workspace
497
- # @param [Sisimai::Fact] argvs Parsed email object
512
+ # @param [Sisimai::Fact] argvs Decoded email object
498
513
  # @return [String] The bounce reason for Google Workspace
499
514
  # @see https://support.google.com/a/answer/3726730?hl=en
500
515
  def get(argvs)
501
- return argvs['reason'] unless argvs['reason'].empty?
502
- return '' if argvs['diagnosticcode'].empty?
503
516
  return '' unless Sisimai::SMTP::Reply.test(argvs['replycode'])
504
517
  return '' unless Sisimai::SMTP::Status.test(argvs['deliverystatus'])
505
518
 
506
519
  statuscode = argvs['deliverystatus'][2,6]
507
520
  esmtpreply = argvs['replycode'][1,2]
508
- esmtperror = argvs['diagnosticcode'].downcase
521
+ issuedcode = argvs['diagnosticcode'].downcase
509
522
  reasontext = ''
510
523
 
511
524
  MessagesOf.each_key do |e|
512
525
  # Each key is a reason name
513
526
  MessagesOf[e].each do |f|
514
527
  # Try to match an SMTP reply code, a D.S.N, and an error message
515
- next unless esmtperror.include?(f[2])
528
+ next unless issuedcode.include?(f[2])
516
529
  next unless f[0].end_with?(esmtpreply)
517
530
  next unless f[1].end_with?(statuscode)
518
531
  reasontext = e
@@ -6,7 +6,7 @@ module Sisimai
6
6
  module IUA
7
7
  class << self
8
8
  ErrorCodes = {
9
- # http://mail.i.ua/err/$(CODE)
9
+ # https://mail.i.ua/err/$(CODE)
10
10
  '1' => 'norelaying', # The use of SMTP as mail gate is forbidden.
11
11
  '2' => 'userunknown', # User is not found.
12
12
  '3' => 'suspend', # Mailbox was not used for more than 3 months
@@ -20,7 +20,7 @@ module Sisimai
20
20
  }.freeze
21
21
 
22
22
  # Detect bounce reason from https://www.i.ua/
23
- # @param [Sisimai::Fact] argvs Parsed email object
23
+ # @param [Sisimai::Fact] argvs Decoded email object
24
24
  # @return [String] The bounce reason at https://www.i.ua/
25
25
  def get(argvs)
26
26
  return argvs['reason'] unless argvs['reason'].empty?
@@ -6,20 +6,21 @@ module Sisimai
6
6
  module KDDI
7
7
  class << self
8
8
  MessagesOf = {
9
- 'filtered' => '550 : User unknown', # The response was: 550 : User unknown
10
- 'userunknown' => '>: User unknown', # The response was: 550 <...>: User unknown
9
+ 'filtered' => '550 : user unknown', # The response was: 550 : User unknown
10
+ 'userunknown' => '>: user unknown', # The response was: 550 <...>: User unknown
11
11
  }.freeze
12
12
 
13
13
  # Detect bounce reason from au (KDDI)
14
- # @param [Sisimai::Fact] argvs Parsed email object
14
+ # @param [Sisimai::Fact] argvs Decoded email object
15
15
  # @return [String] The bounce reason for au.com or ezweb.ne.jp
16
+ # @since v4.22.6
16
17
  def get(argvs)
17
- statusmesg = argvs['diagnosticcode']
18
+ issuedcode = argvs['diagnosticcode'].downcase
18
19
  reasontext = ''
19
20
 
20
21
  MessagesOf.each_key do |e|
21
22
  # Try to match the error message with message patterns defined in $MessagesOf
22
- next unless statusmesg.include?(MessagesOf[e])
23
+ next unless issuedcode.include?(MessagesOf[e])
23
24
  reasontext = e
24
25
  break
25
26
  end
@@ -455,6 +455,9 @@ module Sisimai
455
455
  # - This message usually indicates an issue on the destination email server. Check the
456
456
  # validity of the recipient address. Determine if the destination server is configur-
457
457
  # ed correctly to receive the messages.
458
+ ['4.4.317', 0, 0, 'starttls is required to send mail'],
459
+ ['5.4.317', 0, 0, 'starttls is required to send mail'],
460
+
458
461
  ['4.7.321', 0, 0, 'starttls-not-supported: destination mail server must support tls to receive mail'],
459
462
  ['5.7.321', 0, 0, 'starttls-not-supported: destination mail server must support tls to receive mail'],
460
463
 
@@ -599,6 +602,11 @@ module Sisimai
599
602
  ['4.4.25', 0, 0, 'message failed to be replicated: no healthy secondary server available to accept replica at this time.'],
600
603
  ['4.4.28', 0, 0, 'message failed to be replicated: the operation was canceled'],
601
604
 
605
+ # 550 5.4.318 Message expired, connection reset (SuspiciousRemoteServerError)
606
+ # 450 4.4.318 Connection was closed abruptly (SuspiciousRemoteServerError)
607
+ ['4.4.318', 0, 0, '(suspiciousremoteservererror)'],
608
+ ['5.4.318', 0, 0, '(suspiciousremoteservererror)'],
609
+
602
610
  # - status=deferred (host hotmail-com.olc.protection.outlook.com[192.0.2.1] said:
603
611
  # 451 4.7.500 Server busy. Please try again later from [192.0.2.2]. (AS761) (in reply
604
612
  # to RCPT TO command))
@@ -703,16 +711,15 @@ module Sisimai
703
711
  }.freeze
704
712
 
705
713
  # Detect bounce reason from Exchange Server 2019 or older and Exchange Online
706
- # @param [Sisimai::Fact] argvs Parsed email object
714
+ # @param [Sisimai::Fact] argvs Decoded email object
707
715
  # @return [String] The bounce reason for Exchange Online
716
+ # @since v4.17.2
708
717
  def get(argvs)
709
- return argvs['reason'] unless argvs['reason'].empty?
710
- return '' if argvs['diagnosticcode'].empty?
711
718
  return '' if argvs['deliverystatus'].empty?
712
719
  return '' unless Sisimai::SMTP::Status.test(argvs['deliverystatus'])
713
720
 
714
721
  statuscode = argvs['deliverystatus']
715
- esmtperror = argvs['diagnosticcode'].downcase
722
+ issuedcode = argvs['diagnosticcode'].downcase
716
723
  thirddigit = statuscode.split('.')[-1].to_i
717
724
  reasontext = ''
718
725
 
@@ -730,7 +737,7 @@ module Sisimai
730
737
  next if thirddigit > f[2]
731
738
  end
732
739
 
733
- next unless esmtperror.include?(f[3])
740
+ next unless issuedcode.include?(f[3])
734
741
  reasontext = e
735
742
  break
736
743
  end
@@ -67,6 +67,15 @@ module Sisimai
67
67
  # the associated IP address from the RBL.
68
68
  #[550, '< details of RBL >'], NEED AN ACTUAL ERROR MESSAGE STRING
69
69
  ],
70
+ 'expired' => [
71
+ # - Journal messages past the expiration
72
+ # - Attempts are being made to journal mail past the set expiry threshold.
73
+ # A retry response will replace the failure because the message is marked for retry
74
+ # if rejected, causing the journal queue to grow.
75
+ # - Check to confirm there are no significant time discrepancies on the mail server.
76
+ # Discontinue journaling old messages past the expiry threshold.
77
+ [550, 'Journal messages past the expiration'],
78
+ ],
70
79
  'mesgtoobig' => [
71
80
  # - The email size either exceeds an Email Size Limit policy or is larger than the
72
81
  # Mimecast service limit. The default is 100 MB for the Legacy MTA, and 200 MB for
@@ -96,6 +105,7 @@ module Sisimai
96
105
  # - Mimecast customers should contact Mimecast Support to add the Authorized Outbound
97
106
  # address, or to take other remedial action.
98
107
  [451, 'open relay not allowed'],
108
+ [451, 'open relay is not allowed'],
99
109
  ],
100
110
  'notaccept' => [
101
111
  # - The customer account Inbound emails are disabled in the Administration Console.
@@ -133,6 +143,7 @@ module Sisimai
133
143
  # - The message has triggered a Geographical Restriction policy.
134
144
  # - Delete or amend the policy.
135
145
  [554, 'host network not allowed'],
146
+ [554, 'host network, not allowed'],
136
147
  ],
137
148
  'rejected' => [
138
149
  # - The sender's email address or domain has triggered a Blocked Senders Policy or
@@ -160,6 +171,7 @@ module Sisimai
160
171
  # sage on SMTP port 25.
161
172
  [535, 'incorrect authentication data'],
162
173
  [550, 'submitter failed to disabled'],
174
+ [550, 'submitter failed to authenticate'],
163
175
 
164
176
  # - This email has been sent using SMTP, but TLS is required by policy.
165
177
  # - Delete or change the Secure Receipt or Secure Delivery policy enforcing TLS.
@@ -267,13 +279,12 @@ module Sisimai
267
279
  }.freeze
268
280
 
269
281
  # Detect bounce reason from Mimecast
270
- # @param [Sisimai::Fact] argvs Parsed email object
282
+ # @param [Sisimai::Fact] argvs Decoded email object
271
283
  # @return [String] The bounce reason for mimecast.com
272
284
  def get(argvs)
273
285
  return '' unless Sisimai::SMTP::Reply.test(argvs['replycode'])
274
- return '' unless argvs['diagnosticcode']
275
286
 
276
- esmtperror = argvs['diagnosticcode'].downcase || ''
287
+ issuedcode = argvs['diagnosticcode'].downcase || ''
277
288
  esmtpreply = argvs['replycode'].to_i
278
289
  reasontext = ''
279
290
 
@@ -282,7 +293,7 @@ module Sisimai
282
293
  MessagesOf[e].each do |f|
283
294
  # Find an error reason
284
295
  next unless esmtpreply == f[0]
285
- next unless esmtperror.include?(f[1])
296
+ next unless issuedcode.include?(f[1])
286
297
  reasontext = e
287
298
  break
288
299
  end
@@ -12,7 +12,7 @@ module Sisimai
12
12
  }.freeze
13
13
 
14
14
  # Detect bounce reason from NTT DOCOMO
15
- # @param [Sisimai::Fact] argvs Parsed email object
15
+ # @param [Sisimai::Fact] argvs Decoded email object
16
16
  # @return [String] The bounce reason for docomo.ne.jp
17
17
  def get(argvs)
18
18
  statuscode = argvs['deliverystatus'] || ''
@@ -93,15 +93,15 @@ module Sisimai
93
93
  else
94
94
  # Rejected by other SMTP commands: AUTH, MAIL,
95
95
  # もしもこのブロックを通過するNTTドコモからのエラーメッセージを見つけたら
96
- # https://github.com/sisimai/p5-sisimai/issues からご連絡ねがいます。
96
+ # https://github.com/sisimai/rb-sisimai/issues からご連絡ねがいます。
97
97
  #
98
98
  # If you found a error message from mfsmax.docomo.ne.jp which passes this block,
99
- # please open an issue at https://github.com/sisimai/p5-sisimai/issues .
99
+ # please open an issue at https://github.com/sisimai/rb-sisimai/issues .
100
100
  end
101
101
  else
102
102
  # Status: field is neither 5.0.0 nor values defined in code above
103
103
  # もしもこのブロックを通過するNTTドコモからのエラーメッセージを見つけたら
104
- # https://github.com/sisimai/p5-sisimai/issues からご連絡ねがいます。
104
+ # https://github.com/sisimai/rb-sisimai/issues からご連絡ねがいます。
105
105
  #
106
106
  # If you found a error message from mfsmax.docomo.ne.jp which passes this block,
107
107
  #