sisimai 4.22.7 → 4.23.0

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of sisimai might be problematic. Click here for more details.

Files changed (118) hide show
  1. checksums.yaml +4 -4
  2. data/ChangeLog.md +15 -0
  3. data/README-JA.md +13 -8
  4. data/README.md +14 -9
  5. data/lib/sisimai.rb +11 -12
  6. data/lib/sisimai/address.rb +13 -23
  7. data/lib/sisimai/arf.rb +10 -12
  8. data/lib/sisimai/bite/email/activehunter.rb +5 -9
  9. data/lib/sisimai/bite/email/amazonses.rb +12 -18
  10. data/lib/sisimai/bite/email/amazonworkmail.rb +7 -12
  11. data/lib/sisimai/bite/email/aol.rb +10 -16
  12. data/lib/sisimai/bite/email/apachejames.rb +8 -12
  13. data/lib/sisimai/bite/email/bigfoot.rb +10 -15
  14. data/lib/sisimai/bite/email/biglobe.rb +7 -11
  15. data/lib/sisimai/bite/email/courier.rb +11 -15
  16. data/lib/sisimai/bite/email/domino.rb +8 -13
  17. data/lib/sisimai/bite/email/einsundeins.rb +7 -11
  18. data/lib/sisimai/bite/email/exchange2003.rb +11 -15
  19. data/lib/sisimai/bite/email/exchange2007.rb +7 -11
  20. data/lib/sisimai/bite/email/exim.rb +20 -27
  21. data/lib/sisimai/bite/email/ezweb.rb +13 -22
  22. data/lib/sisimai/bite/email/facebook.rb +7 -10
  23. data/lib/sisimai/bite/email/fml.rb +4 -7
  24. data/lib/sisimai/bite/email/gmx.rb +7 -12
  25. data/lib/sisimai/bite/email/google.rb +6 -12
  26. data/lib/sisimai/bite/email/gsuite.rb +11 -18
  27. data/lib/sisimai/bite/email/imailserver.rb +6 -10
  28. data/lib/sisimai/bite/email/interscanmss.rb +7 -11
  29. data/lib/sisimai/bite/email/kddi.rb +10 -16
  30. data/lib/sisimai/bite/email/mailfoundry.rb +6 -9
  31. data/lib/sisimai/bite/email/mailmarshalsmtp.rb +6 -10
  32. data/lib/sisimai/bite/email/mailru.rb +12 -16
  33. data/lib/sisimai/bite/email/mcafee.rb +5 -9
  34. data/lib/sisimai/bite/email/messagelabs.rb +7 -10
  35. data/lib/sisimai/bite/email/messagingserver.rb +8 -14
  36. data/lib/sisimai/bite/email/mfilter.rb +6 -10
  37. data/lib/sisimai/bite/email/mxlogic.rb +11 -17
  38. data/lib/sisimai/bite/email/notes.rb +9 -13
  39. data/lib/sisimai/bite/email/office365.rb +8 -13
  40. data/lib/sisimai/bite/email/opensmtpd.rb +7 -11
  41. data/lib/sisimai/bite/email/outlook.rb +9 -13
  42. data/lib/sisimai/bite/email/postfix.rb +12 -18
  43. data/lib/sisimai/bite/email/qmail.rb +10 -15
  44. data/lib/sisimai/bite/email/receivingses.rb +10 -17
  45. data/lib/sisimai/bite/email/sendgrid.rb +8 -14
  46. data/lib/sisimai/bite/email/sendmail.rb +8 -12
  47. data/lib/sisimai/bite/email/surfcontrol.rb +5 -9
  48. data/lib/sisimai/bite/email/userdefined.rb +5 -8
  49. data/lib/sisimai/bite/email/v5sendmail.rb +7 -11
  50. data/lib/sisimai/bite/email/verizon.rb +14 -28
  51. data/lib/sisimai/bite/email/x1.rb +5 -8
  52. data/lib/sisimai/bite/email/x2.rb +5 -8
  53. data/lib/sisimai/bite/email/x3.rb +5 -9
  54. data/lib/sisimai/bite/email/x4.rb +10 -14
  55. data/lib/sisimai/bite/email/x5.rb +6 -11
  56. data/lib/sisimai/bite/email/yahoo.rb +6 -11
  57. data/lib/sisimai/bite/email/yandex.rb +8 -12
  58. data/lib/sisimai/bite/email/zoho.rb +7 -12
  59. data/lib/sisimai/bite/json/amazonses.rb +6 -12
  60. data/lib/sisimai/bite/json/sendgrid.rb +1 -7
  61. data/lib/sisimai/data.rb +26 -34
  62. data/lib/sisimai/datetime.rb +5 -5
  63. data/lib/sisimai/mail.rb +9 -3
  64. data/lib/sisimai/mail/maildir.rb +1 -3
  65. data/lib/sisimai/mail/mbox.rb +1 -1
  66. data/lib/sisimai/mail/memory.rb +47 -0
  67. data/lib/sisimai/mail/stdin.rb +1 -1
  68. data/lib/sisimai/mda.rb +7 -10
  69. data/lib/sisimai/message.rb +4 -6
  70. data/lib/sisimai/message/email.rb +16 -24
  71. data/lib/sisimai/message/json.rb +3 -5
  72. data/lib/sisimai/mime.rb +13 -18
  73. data/lib/sisimai/order/email.rb +5 -8
  74. data/lib/sisimai/order/json.rb +2 -2
  75. data/lib/sisimai/reason.rb +3 -7
  76. data/lib/sisimai/reason/blocked.rb +0 -4
  77. data/lib/sisimai/reason/contenterror.rb +1 -1
  78. data/lib/sisimai/reason/exceedlimit.rb +2 -5
  79. data/lib/sisimai/reason/expired.rb +1 -1
  80. data/lib/sisimai/reason/filtered.rb +1 -4
  81. data/lib/sisimai/reason/hasmoved.rb +1 -4
  82. data/lib/sisimai/reason/hostunknown.rb +1 -4
  83. data/lib/sisimai/reason/mailboxfull.rb +2 -5
  84. data/lib/sisimai/reason/mesgtoobig.rb +1 -4
  85. data/lib/sisimai/reason/networkerror.rb +1 -1
  86. data/lib/sisimai/reason/norelaying.rb +1 -4
  87. data/lib/sisimai/reason/notaccept.rb +1 -3
  88. data/lib/sisimai/reason/onhold.rb +1 -5
  89. data/lib/sisimai/reason/policyviolation.rb +1 -1
  90. data/lib/sisimai/reason/rejected.rb +2 -6
  91. data/lib/sisimai/reason/spamdetected.rb +1 -5
  92. data/lib/sisimai/reason/suspend.rb +2 -5
  93. data/lib/sisimai/reason/syntaxerror.rb +0 -3
  94. data/lib/sisimai/reason/systemerror.rb +1 -1
  95. data/lib/sisimai/reason/systemfull.rb +1 -1
  96. data/lib/sisimai/reason/toomanyconn.rb +1 -5
  97. data/lib/sisimai/reason/userunknown.rb +1 -4
  98. data/lib/sisimai/reason/vacation.rb +1 -1
  99. data/lib/sisimai/reason/virusdetected.rb +1 -1
  100. data/lib/sisimai/rfc2606.rb +3 -3
  101. data/lib/sisimai/rfc3464.rb +12 -20
  102. data/lib/sisimai/rfc3834.rb +1 -10
  103. data/lib/sisimai/rfc5322.rb +4 -6
  104. data/lib/sisimai/rhost.rb +0 -4
  105. data/lib/sisimai/rhost/exchangeonline.rb +5 -7
  106. data/lib/sisimai/rhost/franceptt.rb +1 -3
  107. data/lib/sisimai/rhost/godaddy.rb +2 -4
  108. data/lib/sisimai/rhost/googleapps.rb +2 -4
  109. data/lib/sisimai/rhost/kddi.rb +0 -3
  110. data/lib/sisimai/smtp/error.rb +0 -3
  111. data/lib/sisimai/smtp/reply.rb +5 -8
  112. data/lib/sisimai/smtp/status.rb +3 -4
  113. data/lib/sisimai/string.rb +13 -20
  114. data/lib/sisimai/version.rb +1 -1
  115. data/set-of-emails/maildir/bsd/email-office365-09.eml +596 -0
  116. data/set-of-emails/maildir/bsd/email-office365-10.eml +594 -0
  117. data/set-of-emails/maildir/bsd/email-postfix-45.eml +76 -0
  118. metadata +6 -2
@@ -160,7 +160,7 @@ module Sisimai
160
160
  # @param [String] group Group name for "ORDER BY"
161
161
  # @return [Hash] Pattern table for the group
162
162
  def by(group = '')
163
- return {} unless group.size > 0
163
+ return {} if group.empty?
164
164
  return PatternTable[group] if PatternTable.key?(group)
165
165
  return {}
166
166
  end
@@ -169,12 +169,9 @@ module Sisimai
169
169
  # @return [Array] Ordered module list
170
170
  def another
171
171
  rv = []
172
- rv.concat(EngineOrder1)
173
- rv.concat(EngineOrder2)
174
- rv.concat(EngineOrder3)
175
- rv.concat(EngineOrder4)
176
- rv.concat(EngineOrder5)
177
- rv.concat(EngineOrder9)
172
+ [EngineOrder1, EngineOrder2, EngineOrder3, EngineOrder4, EngineOrder5, EngineOrder9].each do |e|
173
+ rv += e
174
+ end
178
175
  return rv
179
176
  end
180
177
 
@@ -185,7 +182,7 @@ module Sisimai
185
182
  table = {}
186
183
  skips = { 'return-path' => 1, 'x-mailer' => 1 }
187
184
 
188
- order.each do |e|
185
+ while e = order.shift do
189
186
  # Load email headers from each MTA module
190
187
  require e.gsub('::', '/').downcase
191
188
 
@@ -15,7 +15,7 @@ module Sisimai
15
15
  # Make default order of MTA(JSON) modules to be loaded
16
16
  rv = []
17
17
  begin
18
- rv.concat(Sisimai::Bite::JSON.index.map { |e| 'Sisimai::Bite::JSON::' << e })
18
+ rv += Sisimai::Bite::JSON.index.map { |e| 'Sisimai::Bite::JSON::' << e }
19
19
  rescue
20
20
  # Failed to load MTA(JSON) module
21
21
  next
@@ -40,7 +40,7 @@ module Sisimai
40
40
  # @param [String] group Group name for "ORDER BY"
41
41
  # @return [Hash] Pattern table for the group
42
42
  def by(group = '')
43
- return {} unless group.size > 0
43
+ return {} if group.empty?
44
44
  return PatternTable[group] if PatternTable.key?(group)
45
45
  return {}
46
46
  end
@@ -52,7 +52,7 @@ module Sisimai
52
52
  unless GetRetried.index(argvs.reason)
53
53
  # Return reason text already decided except reason match with the
54
54
  # regular expression of ->retry() method.
55
- return argvs.reason if argvs.reason.size > 0
55
+ return argvs.reason unless argvs.reason.empty?
56
56
  end
57
57
 
58
58
  statuscode = argvs.deliverystatus || ''
@@ -92,7 +92,7 @@ module Sisimai
92
92
  require 'sisimai/reason/vacation'
93
93
  reasontext = 'vacation' if Sisimai::Reason::Vacation.match(argvs.diagnosticcode.downcase)
94
94
  end
95
- reasontext ||= 'onhold' if argvs.diagnosticcode.size > 0
95
+ reasontext ||= 'onhold' unless argvs.diagnosticcode.empty?
96
96
  end
97
97
  reasontext ||= 'undefined'
98
98
  end
@@ -105,17 +105,13 @@ module Sisimai
105
105
  # is missing or invalid object
106
106
  # @see get
107
107
  def anotherone(argvs)
108
- return nil unless argvs
109
108
  return nil unless argvs.is_a? Sisimai::Data
110
- return argvs.reason if argvs.reason.size > 0
109
+ return argvs.reason unless argvs.reason.empty?
111
110
 
112
111
  statuscode = argvs.deliverystatus || ''
113
112
  diagnostic = argvs.diagnosticcode.downcase || ''
114
113
  commandtxt = argvs.smtpcommand || ''
115
114
  trytomatch = nil
116
- reasontext = ''
117
-
118
- require 'sisimai/smtp/status'
119
115
  reasontext = Sisimai::SMTP::Status.name(statuscode)
120
116
 
121
117
  catch :TRY_TO_MATCH do
@@ -159,11 +159,7 @@ module Sisimai
159
159
  # false: is not blocked by the client
160
160
  # @see http://www.ietf.org/rfc/rfc2822.txt
161
161
  def true(argvs)
162
- return nil unless argvs
163
- return nil unless argvs.is_a? Sisimai::Data
164
162
  return true if argvs.reason == 'blocked'
165
-
166
- require 'sisimai/smtp/status'
167
163
  return true if Sisimai::SMTP::Status.name(argvs.deliverystatus) == 'blocked'
168
164
  return true if match(argvs.diagnosticcode.downcase)
169
165
  return false
@@ -28,7 +28,7 @@ module Sisimai
28
28
  'this message contain improperly-formatted binary content',
29
29
  'this message contain text that uses unnecessary base64 encoding',
30
30
  ]
31
- return true if index.find { |a| argv1.include?(a) }
31
+ return true if index.any? { |a| argv1.include?(a) }
32
32
  return false
33
33
  end
34
34
 
@@ -20,7 +20,7 @@ module Sisimai
20
20
  return nil unless argv1
21
21
  index = ['message too large']
22
22
 
23
- return true if index.find { |a| argv1.include?(a) }
23
+ return true if index.any? { |a| argv1.include?(a) }
24
24
  return false
25
25
  end
26
26
 
@@ -30,15 +30,12 @@ module Sisimai
30
30
  # false: Did not exceed the limit
31
31
  # @see http://www.ietf.org/rfc/rfc2822.txt
32
32
  def true(argvs)
33
- return nil unless argvs
34
- return nil unless argvs.is_a? Sisimai::Data
35
- return nil unless argvs.deliverystatus.size > 0
33
+ return nil if argvs.deliverystatus.empty?
36
34
  return true if argvs.reason == 'exceedlimit'
37
35
 
38
36
  # Delivery status code points exceedlimit.
39
37
  # Status: 5.2.3
40
38
  # Diagnostic-Code: SMTP; 552 5.2.3 Message size exceeds fixed maximum message size
41
- require 'sisimai/smtp/status'
42
39
  return true if Sisimai::SMTP::Status.name(argvs.deliverystatus) == 'exceedlimit'
43
40
 
44
41
  # Check the value of Diagnosic-Code: header with patterns
@@ -37,7 +37,7 @@ module Sisimai
37
37
  'your message could not be delivered for more than',
38
38
  ]
39
39
 
40
- return true if index.find { |a| argv1.include?(a) }
40
+ return true if index.any? { |a| argv1.include?(a) }
41
41
  return false
42
42
  end
43
43
 
@@ -36,7 +36,7 @@ module Sisimai
36
36
  'you have been blocked by the recipient',
37
37
  ]
38
38
 
39
- return true if index.find { |a| argv1.include?(a) }
39
+ return true if index.any? { |a| argv1.include?(a) }
40
40
  return false
41
41
  end
42
42
 
@@ -46,11 +46,8 @@ module Sisimai
46
46
  # false: is not filtered
47
47
  # @see http://www.ietf.org/rfc/rfc2822.txt
48
48
  def true(argvs)
49
- return nil unless argvs
50
- return nil unless argvs.is_a? Sisimai::Data
51
49
  return true if argvs.reason == 'filtered'
52
50
 
53
- require 'sisimai/smtp/status'
54
51
  require 'sisimai/reason/userunknown'
55
52
  commandtxt = argvs.smtpcommand || ''
56
53
  diagnostic = argvs.diagnosticcode.downcase || ''
@@ -20,7 +20,7 @@ module Sisimai
20
20
  return nil unless argv1
21
21
  index = [' has been replaced by ']
22
22
 
23
- return true if index.find { |a| argv1.include?(a) }
23
+ return true if index.any? { |a| argv1.include?(a) }
24
24
  return false
25
25
  end
26
26
 
@@ -30,9 +30,6 @@ module Sisimai
30
30
  # false: Has not moved
31
31
  # @see http://www.ietf.org/rfc/rfc2822.txt
32
32
  def true(argvs)
33
- return nil unless argvs
34
- return nil unless argvs.is_a? Sisimai::Data
35
-
36
33
  return true if argvs.reason == 'hasmoved'
37
34
  return true if match(argvs.diagnosticcode.downcase)
38
35
  return false
@@ -35,7 +35,7 @@ module Sisimai
35
35
  'unrouteable address',
36
36
  ]
37
37
 
38
- return true if index.find { |a| argv1.include?(a) }
38
+ return true if index.any? { |a| argv1.include?(a) }
39
39
  return false
40
40
  end
41
41
 
@@ -45,11 +45,8 @@ module Sisimai
45
45
  # false: is not unknown host.
46
46
  # @see http://www.ietf.org/rfc/rfc2822.txt
47
47
  def true(argvs)
48
- return nil unless argvs
49
- return nil unless argvs.is_a? Sisimai::Data
50
48
  return true if argvs.reason == 'hostunknown'
51
49
 
52
- require 'sisimai/smtp/status'
53
50
  diagnostic = argvs.diagnosticcode.downcase || ''
54
51
  statuscode = argvs.deliverystatus || ''
55
52
 
@@ -65,7 +65,7 @@ module Sisimai
65
65
  'would be over the allowed quota',
66
66
  ]
67
67
 
68
- return true if index.find { |a| argv1.include?(a) }
68
+ return true if index.any? { |a| argv1.include?(a) }
69
69
  return false
70
70
  end
71
71
 
@@ -75,15 +75,12 @@ module Sisimai
75
75
  # false: is not mailbox full
76
76
  # @see http://www.ietf.org/rfc/rfc2822.txt
77
77
  def true(argvs)
78
- return nil unless argvs
79
- return nil unless argvs.is_a? Sisimai::Data
80
- return nil unless argvs.deliverystatus.size > 0
78
+ return nil if argvs.deliverystatus.empty?
81
79
  return true if argvs.reason == 'mailboxfull'
82
80
 
83
81
  # Delivery status code points "mailboxfull".
84
82
  # Status: 4.2.2
85
83
  # Diagnostic-Code: SMTP; 450 4.2.2 <***@example.jp>... Mailbox Full
86
- require 'sisimai/smtp/status'
87
84
  return true if Sisimai::SMTP::Status.name(argvs.deliverystatus) == 'mailboxfull'
88
85
 
89
86
  # Check the value of Diagnosic-Code: header with patterns
@@ -32,7 +32,7 @@ module Sisimai
32
32
  'taille limite du message atteinte',
33
33
  ]
34
34
 
35
- return true if index.find { |a| argv1.include?(a) }
35
+ return true if index.any? { |a| argv1.include?(a) }
36
36
  return false
37
37
  end
38
38
 
@@ -42,11 +42,8 @@ module Sisimai
42
42
  # false: is not big
43
43
  # @see http://www.ietf.org/rfc/rfc2822.txt
44
44
  def true(argvs)
45
- return nil unless argvs
46
- return nil unless argvs.is_a? Sisimai::Data
47
45
  return true if argvs.reason == 'mesgtoobig'
48
46
 
49
- require 'sisimai/smtp/status'
50
47
  statuscode = argvs.deliverystatus || ''
51
48
  tempreason = Sisimai::SMTP::Status.name(statuscode)
52
49
 
@@ -40,7 +40,7 @@ module Sisimai
40
40
  'unrouteable mail domain',
41
41
  ]
42
42
 
43
- return true if index.find { |a| argv1.include?(a) }
43
+ return true if index.any? { |a| argv1.include?(a) }
44
44
  return false
45
45
  end
46
46
 
@@ -37,7 +37,7 @@ module Sisimai
37
37
  'unable to relay for',
38
38
  ]
39
39
 
40
- return true if index.find { |a| argv1.include?(a) }
40
+ return true if index.any? { |a| argv1.include?(a) }
41
41
  return false
42
42
  end
43
43
 
@@ -47,9 +47,6 @@ module Sisimai
47
47
  # false: is not
48
48
  # @see http://www.ietf.org/rfc/rfc2822.txt
49
49
  def true(argvs)
50
- return nil unless argvs
51
- return nil unless argvs.is_a? Sisimai::Data
52
-
53
50
  r = argvs.reason || ''
54
51
  if r.size > 0
55
52
  # Do not overwrite the reason
@@ -29,7 +29,7 @@ module Sisimai
29
29
  'smtp protocol returned a permanent error',
30
30
  ]
31
31
 
32
- return true if index.find { |a| argv1.include?(a) }
32
+ return true if index.any? { |a| argv1.include?(a) }
33
33
  return false
34
34
  end
35
35
 
@@ -39,8 +39,6 @@ module Sisimai
39
39
  # false: Accept
40
40
  # @see http://www.ietf.org/rfc/rfc2822.txt
41
41
  def true(argvs)
42
- return nil unless argvs
43
- return nil unless argvs.is_a? Sisimai::Data
44
42
  return true if argvs.reason == 'notaccept'
45
43
 
46
44
  # SMTP Reply Code is 554 or 556
@@ -25,12 +25,8 @@ module Sisimai
25
25
  # false: is not "onhold"
26
26
  # @see http://www.ietf.org/rfc/rfc2822.txt
27
27
  def true(argvs)
28
- return nil unless argvs
29
- return nil unless argvs.is_a? Sisimai::Data
30
- return nil unless argvs.deliverystatus.size > 0
28
+ return nil if argvs.deliverystatus.empty?
31
29
  return true if argvs.reason == 'onhold'
32
-
33
- require 'sisimai/smtp/status'
34
30
  return true if Sisimai::SMTP::Status.name(argvs.deliverystatus) == 'onhold'
35
31
  return false
36
32
  end
@@ -45,7 +45,7 @@ module Sisimai
45
45
  'you have exceeded the the allowable number of posts without solving a captcha',
46
46
  ]
47
47
 
48
- return true if index.find { |a| argv1.include?(a) }
48
+ return true if index.any? { |a| argv1.include?(a) }
49
49
  return false
50
50
  end
51
51
 
@@ -69,8 +69,8 @@ module Sisimai
69
69
  'you are sending to/from an address that has been blacklisted',
70
70
  ]
71
71
 
72
- return false if isnot.find { |a| argv1.include?(a) }
73
- return true if index.find { |a| argv1.include?(a) }
72
+ return false if isnot.any? { |a| argv1.include?(a) }
73
+ return true if index.any? { |a| argv1.include?(a) }
74
74
  return false
75
75
  end
76
76
 
@@ -80,10 +80,6 @@ module Sisimai
80
80
  # false: is not rejected by the sender
81
81
  # @see http://www.ietf.org/rfc/rfc2822.txt
82
82
  def true(argvs)
83
- return nil unless argvs
84
- return nil unless argvs.is_a? Sisimai::Data
85
-
86
- require 'sisimai/smtp/status'
87
83
  tempreason = Sisimai::SMTP::Status.name(argvs.deliverystatus)
88
84
  tempreason = 'undefined' if tempreason.empty?
89
85
  diagnostic = argvs.diagnosticcode.downcase
@@ -160,12 +160,8 @@ module Sisimai
160
160
  # false: is not rejected due to spam
161
161
  # @see http://www.ietf.org/rfc/rfc2822.txt
162
162
  def true(argvs)
163
- return nil unless argvs
164
- return nil unless argvs.is_a? Sisimai::Data
165
- return nil unless argvs.deliverystatus.size > 0
163
+ return nil if argvs.deliverystatus.empty?
166
164
  return true if argvs.reason == 'spamdetected'
167
-
168
- require 'sisimai/smtp/status'
169
165
  return true if Sisimai::SMTP::Status.name(argvs.deliverystatus) == 'spamdetected'
170
166
  return true if match(argvs.diagnosticcode.downcase)
171
167
  return false
@@ -33,7 +33,7 @@ module Sisimai
33
33
  'vdelivermail: account is locked email bounced',
34
34
  ]
35
35
 
36
- return true if index.find { |a| argv1.include?(a) }
36
+ return true if index.any? { |a| argv1.include?(a) }
37
37
  return false
38
38
  end
39
39
 
@@ -43,10 +43,7 @@ module Sisimai
43
43
  # false: is not suspended
44
44
  # @see http://www.ietf.org/rfc/rfc2822.txt
45
45
  def true(argvs)
46
- return nil unless argvs
47
- return nil unless argvs.is_a? Sisimai::Data
48
- return nil unless argvs.deliverystatus.size > 0
49
-
46
+ return nil if argvs.deliverystatus.empty?
50
47
  return true if argvs.reason == 'suspend'
51
48
  return true if match(argvs.diagnosticcode.downcase)
52
49
  return false
@@ -26,9 +26,6 @@ module Sisimai
26
26
  # @since 4.1.25
27
27
  # @see http://www.ietf.org/rfc/rfc2822.txt
28
28
  def true(argvs)
29
- return nil unless argvs
30
- return nil unless argvs.is_a? Sisimai::Data
31
-
32
29
  return true if argvs.reason == 'syntaxerror'
33
30
  return true if argvs.replycode =~ /\A[45]0[0-7]\z/
34
31
  return false
@@ -41,7 +41,7 @@ module Sisimai
41
41
  'timeout waiting for input',
42
42
  ]
43
43
 
44
- return true if index.find { |a| argv1.include?(a) }
44
+ return true if index.any? { |a| argv1.include?(a) }
45
45
  return false
46
46
  end
47
47
 
@@ -23,7 +23,7 @@ module Sisimai
23
23
  'requested mail action aborted: exceeded storage allocation', # MS Exchange
24
24
  ]
25
25
 
26
- return true if index.find { |a| argv1.include?(a) }
26
+ return true if index.any? { |a| argv1.include?(a) }
27
27
  return false
28
28
  end
29
29
 
@@ -37,7 +37,7 @@ module Sisimai
37
37
  'we have already made numerous attempts to deliver this message',
38
38
  ]
39
39
 
40
- return true if index.find { |a| argv1.include?(a) }
40
+ return true if index.any? { |a| argv1.include?(a) }
41
41
  return false
42
42
  end
43
43
 
@@ -47,11 +47,7 @@ module Sisimai
47
47
  # false: is not filtered
48
48
  # @see http://www.ietf.org/rfc/rfc2822.txt
49
49
  def true(argvs)
50
- return nil unless argvs
51
- return nil unless argvs.is_a? Sisimai::Data
52
50
  return true if argvs.reason == 'toomanyconn'
53
-
54
- require 'sisimai/smtp/status'
55
51
  return true if Sisimai::SMTP::Status.name(argvs.deliverystatus) == 'toomanyconn'
56
52
  return true if match(argvs.diagnosticcode.downcase)
57
53
  return false