sisimai 5.0.2-java → 5.1.0-java

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (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
@@ -7,59 +7,221 @@ module Sisimai
7
7
  class << self
8
8
  # https://www.godaddy.com/help/what-does-my-email-bounceback-mean-3568
9
9
  ErrorCodes = {
10
- 'IB103' => 'badreputation', # 554 Connection refused. This IP has a poor reputation on Cloudmark Sender Intelligence (CSI). IB103
11
- 'IB104' => 'blocked', # 554 Connection refused. This IP is listed on the Spamhaus Block List (SBL). IB104
12
- 'IB105' => 'blocked', # 554 Connection refused. This IP is listed on the Exploits Block List (XBL). IB105
13
- 'IB106' => 'blocked', # 554 Connection refused. This IP is listed on the Policy Block List (PBL). IB106
14
- 'IB007' => 'toomanyconn', # 421 Connection refused, too many sessions from This IP. Please lower the number of concurrent sessions. IB007
15
- 'IB101' => 'expired', # 421 Server temporarily unavailable. Try again later. IB101
16
- 'IB108' => 'blocked', # 421 Temporarily rejected. Reverse DNS for this IP failed. IB108
17
- 'IB110' => 'blocked', # 554 This IP has been temporarily blocked for attempting to send too many messages containing content judged to be spam by the Internet community. IB110
18
- 'IB111' => 'blocked', # 554 This IP has been blocked for the day, for attempting to send too many messages containing content judged to be spam by the Internet community. IB111
19
- 'IB112' => 'blocked', # 554 This IP has been temporarily blocked for attempting to mail too many invalid recipients. IB112
20
- 'IB113' => 'blocked', # 554 This IP has been blocked for the day, for attempting to mail too many invalid recipients. IB113
21
- 'IB212' => 'spamdetected', # 552 This message has been rejected due to content judged to be spam by the Internet community. IB212
22
- 'IB401' => 'securityerror', # 535 Authentication not allowed on IBSMTP Servers. IB401
23
- 'IB501' => 'rejected', # 550 holly@coolexample.com Blank From: addresses are not allowed. Please provide a valid From. IB501
24
- 'IB502' => 'rejected', # 550 holly@coolexample.com IP addresses are not allowed as a From: Address. Please provide a valid From. IB502
25
- 'IB504' => 'toomanyconn', # 550 This IP has sent too many messages this hour. IB504
26
- 'IB506' => 'rejected', # 550 coolexample.com From: Domain is invalid. Please provide a valid From: IB506
27
- 'IB508' => 'rejected', # 550 holly@coolexample.com Invalid SPF record. Please inspect your SPF settings, and try again. IB508
28
- 'IB510' => 'toomanyconn', # 550 This message has exceeded the max number of messages per session. Please open a new session and try again. IB510
29
- 'IB607' => 'toomanyconn', # 550 This IP has sent too many to too many recipients this hour. IB607
30
- 'IB705' => 'virusdetected', # 552 Virus infected message rejected. IB705
10
+ # Sender bounces
11
+ # ---------------------------------------------------------------------------------------
12
+ # - 535 Authentication not allowed on IBSMTP Servers. IB401
13
+ # - Authentication is not allowed on inbound mail. This happens when you have incorrect
14
+ # outgoing SMTP server settings set up in your email client, like Outlook or Gmail.
15
+ # - Set up your email client using the SMTP server setting smtpout.secureserver.net.
16
+ 'IB401' => 'securityerror',
17
+
18
+ # - 550 jane@coolexample.com Blank From: addresses are not allowed. Provide a valid From.
19
+ # IB501
20
+ # - The email message "from" field is blank.
21
+ # - Add a valid "from" address and try to send the email again.
22
+ 'IB501' => 'notcompliantrfc',
23
+
24
+ # - 550 jane@coolexample.com IP addresses are not allowed as a From: Address. Provide a
25
+ # valid From. IB502
26
+ # - Email messages can't be sent "from" an IP address.
27
+ # - Add a valid "from" address and try to send the email again.
28
+ 'IB502' => 'notcompliantrfc',
29
+
30
+ # - 550 coolexample.com From: Domain is invalid. Provide a valid From: IB506
31
+ # - The domain doesn't have valid MX Records, an IP address, or there were issues during
32
+ # the DNS lookup when the email was sent.
33
+ # - Verify that you're sending from a valid domain. Then verify that the domain has valid
34
+ # DNS records by checking your zone file. If the DNS isn't valid, it must be fixed
35
+ # before you resend the email.
36
+ 'IB506' => 'rejected',
37
+
38
+ # - 550 jane@coolexample.com Invalid SPF record. Inspect your SPF settings, and try again.
39
+ # IB508
40
+ # - The sending email address's domain has an SPF record that does not authorize the
41
+ # sending email server to send email from the domain.
42
+ # - Modify the SPF record to include the server you're trying to send from or remove the
43
+ # SPF record from the domain.
44
+ 'IB508' => 'authfailure',
45
+
46
+ # - 421 Temporarily rejected. Reverse DNS for this IP failed. IB108
47
+ # - The IP address attempting to send mail does not have reverse DNS setup, or the DNS
48
+ # lookup failed.
49
+ # - Verify the sending IP address has reverse DNS set up before resending the email.
50
+ # GoDaddy manages reverse DNS when using our email services. We do not support custom
51
+ # reverse DNS.
52
+ 'IB108' => 'requireptr',
53
+
54
+ # Content bounces
55
+ # ---------------------------------------------------------------------------------------
56
+ # - 552 This message has been rejected due to content judged to be spam by the internet
57
+ # community. IB212
58
+ # - The email message contains a link, attachment or pattern caught by our filters as spam.
59
+ 'IB212' => 'spamdetected',
60
+
61
+ # - 552 Virus infected message rejected. IB705
62
+ # - The email message containing a link, attachment or pattern caught by our filters as a
63
+ # possible virus.
64
+ 'IB705' => 'virusdetected',
65
+
66
+ # Rate limiting bounces
67
+ # ---------------------------------------------------------------------------------------
68
+ # - 452 This message contains too many recipients. Reduce the number of recipients and
69
+ # retry. IB605
70
+ # - The message has attempted to mail too many recipients.
71
+ # - Reduce the number of recipients and try again.
72
+ 'IB605' => 'toomanyconn',
73
+
74
+ # - 421 Connection refused, too many sessions from This IP. Lower the number of concurrent
75
+ # sessions. IB007
76
+ # - This IP address currently has too many sessions open.
77
+ # - Check with your email provider to reduce the number of open sessions on your IP
78
+ # address and then try again.
79
+ 'IB007' => 'toomanyconn',
80
+
81
+ # - 421 Server temporarily unavailable. Try again later. IB101
82
+ # - The email queue is experiencing higher than normal email volume.
83
+ # - Try again later.
84
+ 'IB101' => 'speeding',
85
+
86
+ # - 554 This IP has been temporarily blocked for attempting to send too many messages
87
+ # containing content judged to be spam by the Internet community. IB110
88
+ # - This IP address has attempted to send too many messages containing content judged to
89
+ # be spam and has been blocked for an hour.
90
+ # - If you're not sending spam, you'll need to contact your Internet Service Provider
91
+ # (ISP) to see why your IP address is sending so many emails. Something in your system
92
+ # is causing the issue, and you'll need to troubleshoot.
93
+ 'IB110' => 'blocked',
94
+
95
+ # - 554 This IP has been blocked for the day, for attempting to send too many messages
96
+ # containing content judged to be spam by the Internet community. IB111
97
+ # - This IP address has attempted to send too many messages containing content judged to
98
+ # be spam and has been blocked for the remainder of the day.
99
+ 'IB111' => 'blocked',
100
+
101
+ # - 554 This IP has been temporarily blocked for attempting to mail too many invalid
102
+ # recipients. IB112
103
+ # - This IP address has attempted to email too many invalid recipients and has been
104
+ # blocked for an hour.
105
+ 'IB112' => 'blocked',
106
+
107
+ # - 554 This IP has been blocked for the day, for attempting to mail too many invalid
108
+ # recipients. IB113
109
+ # - This IP address has attempted to email too many invalid recipients and has been
110
+ # blocked for the remainder of the day.
111
+ 'IB113' => 'blocked',
112
+
113
+ # - 550 This IP has sent too many messages this hour. IB504
114
+ # - This IP address has reached the maximum allowed messages for that hour.
115
+ 'IB504' => 'speeding',
116
+
117
+ # - 550 This message has exceeded the max number of messages per session. Open a new
118
+ # session and try again. IB510
119
+ # - This IP address has reached the maximum allowed messages for that session.
120
+ 'IB510' => 'speeding',
121
+
122
+ # - 550 This IP has sent too many to too many recipients this hour. IB607
123
+ # - This IP address has reached the maximum allowed recipients for that hour.
124
+ 'IB607' => 'speeding',
125
+
126
+ # Remote block list (RBL) bounces
127
+ # ---------------------------------------------------------------------------------------
128
+ # - 554 Connection refused. This IP has a poor reputation on Cloudmark Sender Intelligence
129
+ # (CSI). IB103
130
+ # - This IP address has a poor reputation on Cloudmark Sender Intelligence (CSI).
131
+ 'IB103' => 'badreputation',
132
+
133
+ # - 554 Connection refused. This IP address is listed on the Spamhaus Block List (SBL). IB104
134
+ # - This IP address is listed on the Spamhaus Block List.
135
+ 'IB104' => 'blocked',
136
+
137
+ # - 554 Connection refused. This IP address is listed on the Exploits Block List (XBL). IB105
138
+ # - This IP address is listed on the Spamhaus Exploits Block List.
139
+ 'IB105' => 'blocked',
140
+
141
+ # - 554 Connection refused. This IP address is listed on the Policy Block List (PBL). IB106
142
+ # - This IP address is listed on the Spamhaus Policy Block List.
143
+ 'IB106' => 'blocked',
31
144
  }.freeze
32
145
  MessagesOf = {
33
- 'blocked' => ['www.spamhaus.org/query/bl?ip=', '554 RBL Reject.'],
34
- 'expired' => ['Delivery timeout', "451 Sorry, I wasn't able to establish an SMTP connection."],
35
- 'suspend' => ['Account disabled'],
36
- 'mailboxfull' => ['Account storage limit'],
37
- 'userunknown' => ['Account does not exist', '550 Recipient not found.'],
146
+ 'blocked' => [
147
+ # - 554 RBL Reject.
148
+ # - This IP address was blocked from our internal RBL.
149
+ # - Use the link provided in the bounceback to submit a request to remove this IP address.
150
+ 'rbl reject',
151
+ 'www.spamhaus.org/query/bl?ip='
152
+ ],
153
+ 'expired' => [
154
+ # - 451 Sorry, I wasn't able to establish an SMTP connection.
155
+ # I'm not going to try again; this message has been in the queue too long.
156
+ # - The recipient's email address has been misspelled or the recipient's email provider
157
+ # has blocked sending from your address.
158
+ 'has been in the queue too long',
159
+
160
+ # - Delivery timeout
161
+ # - This could happen for several reasons.
162
+ 'delivery timeout',
163
+ ],
164
+ 'mailboxfull' => [
165
+ # - Account storage limit
166
+ # - The recipient's account has reached its storage limit and can't receive email right
167
+ # now.
168
+ # - The recipient needs to delete messages from their inbox or the receiving folder to
169
+ # make space for more email.
170
+ 'account storage limit',
171
+ ],
172
+ 'spamdetected' => [
173
+ # - 552 Message rejected for spam or virus content
174
+ # - The email message contains a link, attachment, or pattern caught by our filters as spam.
175
+ 'message rejected for spam or virus content',
176
+ ],
177
+ 'suspend' => [
178
+ # - Account disabled
179
+ # - The recipient account exists but its ability to receive mail was disabled.
180
+ # - Typically, these accounts remain permanently disabled, but you can try sending the
181
+ # email again later.
182
+ 'account disabled',
183
+ ],
184
+ 'systemerror' => [
185
+ # - This message is looping: it already has my Delivered-To line. (#5.4.6)
186
+ # - The recipient account is forwarding the message in a loop.
187
+ # - This is oftentimes because the receiver has two addresses that forward to each
188
+ # other. They need to correct their forwarding settings.
189
+ 'message is looping',
190
+ ],
191
+ 'userunknown' => [
192
+ # - 550 Recipient not found
193
+ # - The recipient is not a valid email address.
194
+ # - Remove the invalid recipient from your email.
195
+ 'recipient not found',
196
+
197
+ # - Account does not exist
198
+ # - The email address that you sent to does not exist.
199
+ # - Verify that the recipient email address was entered correctly.
200
+ 'account does not exist'
201
+ ],
38
202
  }.freeze
39
203
 
40
204
  # Detect bounce reason from GoDaddy
41
- # @param [Sisimai::Fact] argvs Parsed email object
205
+ # @param [Sisimai::Fact] argvs Decoded email object
42
206
  # @return [String] The bounce reason for GoDaddy
43
- # @see https://www.godaddy.com/help/what-does-my-email-bounceback-mean-3568
207
+ # @see https://ca.godaddy.com/help/fix-rejected-email-with-a-bounce-error-40685
208
+ # @since v4.22.2
44
209
  def get(argvs)
45
- return argvs['reason'] unless argvs['reason'].empty?
46
-
47
- statusmesg = argvs['diagnosticcode']
48
- positionib = statusmesg.index(' IB') || -1
210
+ issuedcode = argvs['diagnosticcode']
211
+ positionib = issuedcode.index(' IB') || -1
49
212
  reasontext = ''
50
213
 
51
- # 192.0.2.22 has sent to too many recipients this hour. IB607 ...
52
- reasontext = ErrorCodes[statusmesg[positionib + 1, 5]] || '' if positionib > 1
53
- if reasontext.empty?
54
- # 553 http://www.spamhaus.org/query/bl?ip=192.0.0.222
55
- MessagesOf.each_key do |e|
56
- MessagesOf[e].each do |f|
57
- next unless statusmesg.include?(f)
58
- reasontext = e
59
- break
60
- end
61
- break unless reasontext.empty?
214
+ reasontext = ErrorCodes[issuedcode[positionib + 1, 5]] || '' if positionib > 1
215
+ return reasontext if reasontext.size > 0
216
+
217
+ issuedcode = issuedcode.downcase
218
+ MessagesOf.each_key do |e|
219
+ MessagesOf[e].each do |f|
220
+ next unless issuedcode.include?(f)
221
+ reasontext = e
222
+ break
62
223
  end
224
+ break if reasontext.size > 0
63
225
  end
64
226
 
65
227
  return reasontext