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.
- checksums.yaml +4 -4
- data/ChangeLog.md +15 -0
- data/README-JA.md +13 -8
- data/README.md +14 -9
- data/lib/sisimai.rb +11 -12
- data/lib/sisimai/address.rb +13 -23
- data/lib/sisimai/arf.rb +10 -12
- data/lib/sisimai/bite/email/activehunter.rb +5 -9
- data/lib/sisimai/bite/email/amazonses.rb +12 -18
- data/lib/sisimai/bite/email/amazonworkmail.rb +7 -12
- data/lib/sisimai/bite/email/aol.rb +10 -16
- data/lib/sisimai/bite/email/apachejames.rb +8 -12
- data/lib/sisimai/bite/email/bigfoot.rb +10 -15
- data/lib/sisimai/bite/email/biglobe.rb +7 -11
- data/lib/sisimai/bite/email/courier.rb +11 -15
- data/lib/sisimai/bite/email/domino.rb +8 -13
- data/lib/sisimai/bite/email/einsundeins.rb +7 -11
- data/lib/sisimai/bite/email/exchange2003.rb +11 -15
- data/lib/sisimai/bite/email/exchange2007.rb +7 -11
- data/lib/sisimai/bite/email/exim.rb +20 -27
- data/lib/sisimai/bite/email/ezweb.rb +13 -22
- data/lib/sisimai/bite/email/facebook.rb +7 -10
- data/lib/sisimai/bite/email/fml.rb +4 -7
- data/lib/sisimai/bite/email/gmx.rb +7 -12
- data/lib/sisimai/bite/email/google.rb +6 -12
- data/lib/sisimai/bite/email/gsuite.rb +11 -18
- data/lib/sisimai/bite/email/imailserver.rb +6 -10
- data/lib/sisimai/bite/email/interscanmss.rb +7 -11
- data/lib/sisimai/bite/email/kddi.rb +10 -16
- data/lib/sisimai/bite/email/mailfoundry.rb +6 -9
- data/lib/sisimai/bite/email/mailmarshalsmtp.rb +6 -10
- data/lib/sisimai/bite/email/mailru.rb +12 -16
- data/lib/sisimai/bite/email/mcafee.rb +5 -9
- data/lib/sisimai/bite/email/messagelabs.rb +7 -10
- data/lib/sisimai/bite/email/messagingserver.rb +8 -14
- data/lib/sisimai/bite/email/mfilter.rb +6 -10
- data/lib/sisimai/bite/email/mxlogic.rb +11 -17
- data/lib/sisimai/bite/email/notes.rb +9 -13
- data/lib/sisimai/bite/email/office365.rb +8 -13
- data/lib/sisimai/bite/email/opensmtpd.rb +7 -11
- data/lib/sisimai/bite/email/outlook.rb +9 -13
- data/lib/sisimai/bite/email/postfix.rb +12 -18
- data/lib/sisimai/bite/email/qmail.rb +10 -15
- data/lib/sisimai/bite/email/receivingses.rb +10 -17
- data/lib/sisimai/bite/email/sendgrid.rb +8 -14
- data/lib/sisimai/bite/email/sendmail.rb +8 -12
- data/lib/sisimai/bite/email/surfcontrol.rb +5 -9
- data/lib/sisimai/bite/email/userdefined.rb +5 -8
- data/lib/sisimai/bite/email/v5sendmail.rb +7 -11
- data/lib/sisimai/bite/email/verizon.rb +14 -28
- data/lib/sisimai/bite/email/x1.rb +5 -8
- data/lib/sisimai/bite/email/x2.rb +5 -8
- data/lib/sisimai/bite/email/x3.rb +5 -9
- data/lib/sisimai/bite/email/x4.rb +10 -14
- data/lib/sisimai/bite/email/x5.rb +6 -11
- data/lib/sisimai/bite/email/yahoo.rb +6 -11
- data/lib/sisimai/bite/email/yandex.rb +8 -12
- data/lib/sisimai/bite/email/zoho.rb +7 -12
- data/lib/sisimai/bite/json/amazonses.rb +6 -12
- data/lib/sisimai/bite/json/sendgrid.rb +1 -7
- data/lib/sisimai/data.rb +26 -34
- data/lib/sisimai/datetime.rb +5 -5
- data/lib/sisimai/mail.rb +9 -3
- data/lib/sisimai/mail/maildir.rb +1 -3
- data/lib/sisimai/mail/mbox.rb +1 -1
- data/lib/sisimai/mail/memory.rb +47 -0
- data/lib/sisimai/mail/stdin.rb +1 -1
- data/lib/sisimai/mda.rb +7 -10
- data/lib/sisimai/message.rb +4 -6
- data/lib/sisimai/message/email.rb +16 -24
- data/lib/sisimai/message/json.rb +3 -5
- data/lib/sisimai/mime.rb +13 -18
- data/lib/sisimai/order/email.rb +5 -8
- data/lib/sisimai/order/json.rb +2 -2
- data/lib/sisimai/reason.rb +3 -7
- data/lib/sisimai/reason/blocked.rb +0 -4
- data/lib/sisimai/reason/contenterror.rb +1 -1
- data/lib/sisimai/reason/exceedlimit.rb +2 -5
- data/lib/sisimai/reason/expired.rb +1 -1
- data/lib/sisimai/reason/filtered.rb +1 -4
- data/lib/sisimai/reason/hasmoved.rb +1 -4
- data/lib/sisimai/reason/hostunknown.rb +1 -4
- data/lib/sisimai/reason/mailboxfull.rb +2 -5
- data/lib/sisimai/reason/mesgtoobig.rb +1 -4
- data/lib/sisimai/reason/networkerror.rb +1 -1
- data/lib/sisimai/reason/norelaying.rb +1 -4
- data/lib/sisimai/reason/notaccept.rb +1 -3
- data/lib/sisimai/reason/onhold.rb +1 -5
- data/lib/sisimai/reason/policyviolation.rb +1 -1
- data/lib/sisimai/reason/rejected.rb +2 -6
- data/lib/sisimai/reason/spamdetected.rb +1 -5
- data/lib/sisimai/reason/suspend.rb +2 -5
- data/lib/sisimai/reason/syntaxerror.rb +0 -3
- data/lib/sisimai/reason/systemerror.rb +1 -1
- data/lib/sisimai/reason/systemfull.rb +1 -1
- data/lib/sisimai/reason/toomanyconn.rb +1 -5
- data/lib/sisimai/reason/userunknown.rb +1 -4
- data/lib/sisimai/reason/vacation.rb +1 -1
- data/lib/sisimai/reason/virusdetected.rb +1 -1
- data/lib/sisimai/rfc2606.rb +3 -3
- data/lib/sisimai/rfc3464.rb +12 -20
- data/lib/sisimai/rfc3834.rb +1 -10
- data/lib/sisimai/rfc5322.rb +4 -6
- data/lib/sisimai/rhost.rb +0 -4
- data/lib/sisimai/rhost/exchangeonline.rb +5 -7
- data/lib/sisimai/rhost/franceptt.rb +1 -3
- data/lib/sisimai/rhost/godaddy.rb +2 -4
- data/lib/sisimai/rhost/googleapps.rb +2 -4
- data/lib/sisimai/rhost/kddi.rb +0 -3
- data/lib/sisimai/smtp/error.rb +0 -3
- data/lib/sisimai/smtp/reply.rb +5 -8
- data/lib/sisimai/smtp/status.rb +3 -4
- data/lib/sisimai/string.rb +13 -20
- data/lib/sisimai/version.rb +1 -1
- data/set-of-emails/maildir/bsd/email-office365-09.eml +596 -0
- data/set-of-emails/maildir/bsd/email-office365-10.eml +594 -0
- data/set-of-emails/maildir/bsd/email-postfix-45.eml +76 -0
- metadata +6 -2
data/lib/sisimai/order/email.rb
CHANGED
@@ -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 {}
|
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
|
-
|
173
|
-
|
174
|
-
|
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.
|
185
|
+
while e = order.shift do
|
189
186
|
# Load email headers from each MTA module
|
190
187
|
require e.gsub('::', '/').downcase
|
191
188
|
|
data/lib/sisimai/order/json.rb
CHANGED
@@ -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
|
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 {}
|
43
|
+
return {} if group.empty?
|
44
44
|
return PatternTable[group] if PatternTable.key?(group)
|
45
45
|
return {}
|
46
46
|
end
|
data/lib/sisimai/reason.rb
CHANGED
@@ -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
|
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'
|
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
|
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.
|
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.
|
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
|
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
|
@@ -36,7 +36,7 @@ module Sisimai
|
|
36
36
|
'you have been blocked by the recipient',
|
37
37
|
]
|
38
38
|
|
39
|
-
return true if index.
|
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.
|
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.
|
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.
|
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
|
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.
|
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
|
|
@@ -37,7 +37,7 @@ module Sisimai
|
|
37
37
|
'unable to relay for',
|
38
38
|
]
|
39
39
|
|
40
|
-
return true if index.
|
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.
|
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
|
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
|
@@ -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.
|
73
|
-
return true if index.
|
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
|
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.
|
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
|
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
|
@@ -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.
|
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
|