sisimai 5.4.1-java → 5.6.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.
- checksums.yaml +4 -4
- data/.github/workflows/codecovio.yml +1 -1
- data/.github/workflows/rake-test.yml +1 -1
- data/ChangeLog.md +56 -0
- data/LICENSE +1 -1
- data/Makefile +2 -4
- data/README-JA.md +29 -23
- data/README.md +30 -24
- data/lib/sisimai/address.rb +92 -44
- data/lib/sisimai/arf.rb +7 -8
- data/lib/sisimai/datetime.rb +2 -2
- data/lib/sisimai/fact/json.rb +1 -2
- data/lib/sisimai/fact/yaml.rb +1 -2
- data/lib/sisimai/fact.rb +76 -36
- data/lib/sisimai/lda.rb +2 -2
- data/lib/sisimai/lhost/activehunter.rb +4 -5
- data/lib/sisimai/lhost/amazonses.rb +4 -5
- data/lib/sisimai/lhost/apachejames.rb +2 -2
- data/lib/sisimai/lhost/biglobe.rb +6 -6
- data/lib/sisimai/lhost/courier.rb +7 -7
- data/lib/sisimai/lhost/domino.rb +6 -6
- data/lib/sisimai/lhost/dragonfly.rb +5 -5
- data/lib/sisimai/lhost/einsundeins.rb +5 -5
- data/lib/sisimai/lhost/exchange2003.rb +7 -7
- data/lib/sisimai/lhost/exchange2007.rb +5 -5
- data/lib/sisimai/lhost/exim.rb +13 -15
- data/lib/sisimai/lhost/ezweb.rb +3 -2
- data/lib/sisimai/lhost/fml.rb +9 -9
- data/lib/sisimai/lhost/gmail.rb +9 -9
- data/lib/sisimai/lhost/gmx.rb +3 -3
- data/lib/sisimai/lhost/googlegroups.rb +6 -7
- data/lib/sisimai/lhost/googleworkspace.rb +5 -6
- data/lib/sisimai/lhost/imailserver.rb +4 -4
- data/lib/sisimai/lhost/kddi.rb +4 -4
- data/lib/sisimai/lhost/mailfoundry.rb +3 -3
- data/lib/sisimai/lhost/{mailmarshalsmtp.rb → mailmarshal.rb} +5 -5
- data/lib/sisimai/lhost/messagingserver.rb +8 -8
- data/lib/sisimai/lhost/mfilter.rb +8 -4
- data/lib/sisimai/lhost/mimecast.rb +105 -0
- data/lib/sisimai/lhost/notes.rb +5 -5
- data/lib/sisimai/lhost/opensmtpd.rb +5 -5
- data/lib/sisimai/lhost/postfix.rb +38 -32
- data/lib/sisimai/lhost/qmail.rb +11 -11
- data/lib/sisimai/lhost/sendmail.rb +13 -13
- data/lib/sisimai/lhost/{interscanmss.rb → trendmicro.rb} +8 -9
- data/lib/sisimai/lhost/v5sendmail.rb +7 -7
- data/lib/sisimai/lhost/verizon.rb +3 -3
- data/lib/sisimai/lhost/x1.rb +7 -4
- data/lib/sisimai/lhost/x2.rb +40 -12
- data/lib/sisimai/lhost/x3.rb +3 -3
- data/lib/sisimai/lhost/x6.rb +2 -2
- data/lib/sisimai/lhost/zoho.rb +5 -5
- data/lib/sisimai/lhost.rb +18 -17
- data/lib/sisimai/mail/maildir.rb +4 -4
- data/lib/sisimai/mail/mbox.rb +4 -4
- data/lib/sisimai/mail/memory.rb +1 -1
- data/lib/sisimai/mail/stdin.rb +2 -2
- data/lib/sisimai/message.rb +36 -34
- data/lib/sisimai/order.rb +5 -4
- data/lib/sisimai/reason/authfailure.rb +10 -14
- data/lib/sisimai/reason/badreputation.rb +8 -8
- data/lib/sisimai/reason/blocked.rb +58 -83
- data/lib/sisimai/reason/contenterror.rb +15 -10
- data/lib/sisimai/reason/{mesgtoobig.rb → emailtoolarge.rb} +23 -26
- data/lib/sisimai/reason/expired.rb +17 -24
- data/lib/sisimai/reason/failedstarttls.rb +1 -1
- data/lib/sisimai/reason/filtered.rb +14 -18
- data/lib/sisimai/reason/hasmoved.rb +3 -2
- data/lib/sisimai/reason/hostunknown.rb +18 -21
- data/lib/sisimai/reason/mailboxfull.rb +28 -50
- data/lib/sisimai/reason/mailererror.rb +1 -1
- data/lib/sisimai/reason/networkerror.rb +17 -17
- data/lib/sisimai/reason/norelaying.rb +20 -20
- data/lib/sisimai/reason/notaccept.rb +7 -10
- data/lib/sisimai/reason/notcompliantrfc.rb +6 -10
- data/lib/sisimai/reason/policyviolation.rb +12 -28
- data/lib/sisimai/reason/ratelimited.rb +62 -0
- data/lib/sisimai/reason/rejected.rb +46 -58
- data/lib/sisimai/reason/requireptr.rb +14 -26
- data/lib/sisimai/reason/securityerror.rb +14 -20
- data/lib/sisimai/reason/spamdetected.rb +52 -102
- data/lib/sisimai/reason/suspend.rb +27 -24
- data/lib/sisimai/reason/systemerror.rb +20 -24
- data/lib/sisimai/reason/systemfull.rb +2 -2
- data/lib/sisimai/reason/userunknown.rb +82 -114
- data/lib/sisimai/reason/vacation.rb +1 -1
- data/lib/sisimai/reason/virusdetected.rb +7 -9
- data/lib/sisimai/reason.rb +26 -26
- data/lib/sisimai/rfc1123.rb +58 -18
- data/lib/sisimai/rfc1894.rb +6 -8
- data/lib/sisimai/rfc2045.rb +25 -13
- data/lib/sisimai/rfc3464/thirdparty.rb +2 -3
- data/lib/sisimai/rfc3464.rb +6 -6
- data/lib/sisimai/rfc3834.rb +18 -8
- data/lib/sisimai/rfc5322.rb +9 -9
- data/lib/sisimai/rfc791.rb +2 -2
- data/lib/sisimai/rhost/aol.rb +4 -1
- data/lib/sisimai/rhost/apple.rb +15 -11
- data/lib/sisimai/rhost/cloudflare.rb +2 -0
- data/lib/sisimai/rhost/cox.rb +31 -25
- data/lib/sisimai/rhost/facebook.rb +24 -18
- data/lib/sisimai/rhost/franceptt.rb +92 -38
- data/lib/sisimai/rhost/godaddy.rb +34 -7
- data/lib/sisimai/rhost/google.rb +69 -70
- data/lib/sisimai/rhost/gsuite.rb +1 -1
- data/lib/sisimai/rhost/iua.rb +1 -1
- data/lib/sisimai/rhost/kddi.rb +1 -1
- data/lib/sisimai/rhost/messagelabs.rb +160 -2
- data/lib/sisimai/rhost/microsoft.rb +154 -107
- data/lib/sisimai/rhost/mimecast.rb +64 -55
- data/lib/sisimai/rhost/nttdocomo.rb +70 -90
- data/lib/sisimai/rhost/outlook.rb +1 -1
- data/lib/sisimai/rhost/spectrum.rb +8 -8
- data/lib/sisimai/rhost/tencent.rb +12 -13
- data/lib/sisimai/rhost/yahooinc.rb +9 -10
- data/lib/sisimai/rhost/zoho.rb +72 -0
- data/lib/sisimai/rhost.rb +4 -3
- data/lib/sisimai/smtp/command.rb +4 -2
- data/lib/sisimai/smtp/reply.rb +11 -4
- data/lib/sisimai/smtp/status.rb +67 -98
- data/lib/sisimai/smtp/transcript.rb +3 -3
- data/lib/sisimai/string.rb +4 -23
- data/lib/sisimai/version.rb +1 -1
- data/lib/sisimai.rb +1 -1
- data/set-of-emails/maildir/bsd/lhost-exim-56.eml +40 -40
- data/set-of-emails/maildir/bsd/lhost-mfilter-05.eml +41 -0
- data/set-of-emails/maildir/bsd/lhost-mimecast-01.eml +46 -0
- data/set-of-emails/maildir/bsd/lhost-mimecast-02.eml +59 -0
- data/set-of-emails/maildir/bsd/lhost-postfix-79.eml +81 -0
- data/set-of-emails/maildir/bsd/lhost-postfix-80.eml +84 -0
- data/set-of-emails/maildir/bsd/lhost-x1-03.eml +26 -0
- data/set-of-emails/maildir/bsd/lhost-x1-04.eml +45 -0
- data/set-of-emails/maildir/bsd/lhost-x2-07.eml +30 -0
- data/set-of-emails/maildir/bsd/rfc3464-66.eml +170 -0
- data/set-of-emails/maildir/bsd/rfc3834-06.eml +59 -0
- data/set-of-emails/maildir/bsd/rhost-zoho-01.eml +88 -0
- data/set-of-emails/maildir/bsd/rhost-zoho-02.eml +86 -0
- data/set-of-emails/maildir/bsd/rhost-zoho-03.eml +87 -0
- data/set-of-emails/maildir/bsd/rhost-zoho-04.eml +86 -0
- data/set-of-emails/maildir/not/rb-issue-368-bug.eml +39 -0
- data/sisimai-java.gemspec +1 -1
- data/sisimai.gemspec +1 -1
- metadata +28 -13
- data/lib/sisimai/reason/exceedlimit.rb +0 -47
- data/lib/sisimai/reason/speeding.rb +0 -47
- data/lib/sisimai/reason/toomanyconn.rb +0 -59
- /data/set-of-emails/maildir/bsd/{lhost-mailmarshalsmtp-02.eml → lhost-mailmarshal-02.eml} +0 -0
- /data/set-of-emails/maildir/bsd/{lhost-interscanmss-01.eml → lhost-trendmicro-01.eml} +0 -0
- /data/set-of-emails/maildir/bsd/{lhost-interscanmss-02.eml → lhost-trendmicro-02.eml} +0 -0
- /data/set-of-emails/maildir/bsd/{lhost-interscanmss-03.eml → lhost-trendmicro-03.eml} +0 -0
data/lib/sisimai/rfc791.rb
CHANGED
|
@@ -31,13 +31,13 @@ module Sisimai
|
|
|
31
31
|
ipv4a = []
|
|
32
32
|
%w|( ) [ ] ,|.each do |e|
|
|
33
33
|
# Rewrite: "mx.example.jp[192.0.2.1]" => "mx.example.jp 192.0.2.1"
|
|
34
|
-
p0 = given.index(e); next
|
|
34
|
+
p0 = given.index(e); next if p0.nil?
|
|
35
35
|
given[p0, 1] = ' '
|
|
36
36
|
end
|
|
37
37
|
|
|
38
38
|
given.split(' ').each do |e|
|
|
39
39
|
# Find string including an IPv4 address
|
|
40
|
-
next
|
|
40
|
+
next if e.index('.').nil? # IPv4 address must include "." character
|
|
41
41
|
|
|
42
42
|
lx = e.size; next if lx < 7 || lx > 17 # 0.0.0.0 = 7, [255.255.255.255] = 17
|
|
43
43
|
cu = 0 # Cursor for seeking each octet of an IPv4 address
|
data/lib/sisimai/rhost/aol.rb
CHANGED
|
@@ -14,6 +14,9 @@ module Sisimai
|
|
|
14
14
|
# @param [Sisimai::Fact] argvs Decoded email object
|
|
15
15
|
# @return [String] The bounce reason for Aol
|
|
16
16
|
# @since v5.2.0
|
|
17
|
+
# @see
|
|
18
|
+
# - Y!Sender Hub/SMTP Error Codes: https://senders.yahooinc.com/smtp-error-codes/
|
|
19
|
+
# - The MX record of Aol points "mx-aol.mail.gm0.yahoodns.net".
|
|
17
20
|
def find(argvs)
|
|
18
21
|
return "" if argvs["diagnosticcode"].empty?
|
|
19
22
|
issuedcode = argvs["diagnosticcode"]
|
|
@@ -21,7 +24,7 @@ module Sisimai
|
|
|
21
24
|
|
|
22
25
|
MessagesOf.each_key do |e|
|
|
23
26
|
# Try to match the error message with message patterns defined in $MessagesOf
|
|
24
|
-
next
|
|
27
|
+
next if MessagesOf[e].none? { |a| issuedcode.include?(a) }
|
|
25
28
|
reasontext = e
|
|
26
29
|
break
|
|
27
30
|
end
|
data/lib/sisimai/rhost/apple.rb
CHANGED
|
@@ -44,19 +44,23 @@ module Sisimai
|
|
|
44
44
|
# Please visit https://support.apple.com/en-us/HT204137
|
|
45
45
|
'due to local policy',
|
|
46
46
|
],
|
|
47
|
+
'ratelimited' => [
|
|
48
|
+
# - 421 4.7.1 Messages to ****@icloud.com deferred due to excessive volume.
|
|
49
|
+
# Try again later - https://support.apple.com/en-us/HT204137
|
|
50
|
+
'due to excessive volume',
|
|
51
|
+
],
|
|
47
52
|
'rejected' => [
|
|
48
53
|
# - 450 4.1.8 <kijitora@example.jp>: Sender address rejected: Domain not found
|
|
49
54
|
'sender address rejected',
|
|
50
55
|
],
|
|
51
|
-
'
|
|
52
|
-
# -
|
|
53
|
-
#
|
|
54
|
-
|
|
56
|
+
'suspend' => [
|
|
57
|
+
# - https://support.apple.com/guide/icloud/stop-using-or-reactivate-addresses-mm3adb030cbf/icloud
|
|
58
|
+
# - 550 5.1.1 <****@icloud.com>: inactive email address (in reply to RCPT TO command)
|
|
59
|
+
"inactive email address",
|
|
55
60
|
],
|
|
56
61
|
'userunknown' => [
|
|
57
62
|
# - 550 5.1.1 <****@icloud.com>: inactive email address (in reply to RCPT TO command)
|
|
58
63
|
# - 550 5.1.1 unknown or illegal alias: ****@icloud.com
|
|
59
|
-
'inactive email address',
|
|
60
64
|
'user does not exist',
|
|
61
65
|
'unknown or illegal alias',
|
|
62
66
|
],
|
|
@@ -65,20 +69,20 @@ module Sisimai
|
|
|
65
69
|
# Detect bounce reason from Apple iCloud Mail
|
|
66
70
|
# @param [Sisimai::Fact] argvs Decoded email object
|
|
67
71
|
# @return [String] The bounce reason for Apple
|
|
68
|
-
# @see
|
|
69
|
-
#
|
|
70
|
-
#
|
|
72
|
+
# @see
|
|
73
|
+
# - Postmaster information for iCloud Mail: https://support.apple.com/en-us/102322
|
|
74
|
+
# - https://www.postmastery.com/icloud-postmastery-page/
|
|
75
|
+
# - https://smtpfieldmanual.com/provider/apple
|
|
71
76
|
# @since v5.1.0
|
|
72
77
|
def find(argvs)
|
|
73
|
-
return ''
|
|
74
|
-
return '' unless argvs['diagnosticcode'].size > 0
|
|
78
|
+
return '' if argvs.nil? || argvs['diagnosticcode'].size == 0
|
|
75
79
|
|
|
76
80
|
issuedcode = argvs['diagnosticcode'].downcase
|
|
77
81
|
reasontext = ''
|
|
78
82
|
|
|
79
83
|
MessagesOf.each_key do |e|
|
|
80
84
|
MessagesOf[e].each do |f|
|
|
81
|
-
next
|
|
85
|
+
next if issuedcode.include?(f) == false
|
|
82
86
|
reasontext = e
|
|
83
87
|
break
|
|
84
88
|
end
|
|
@@ -6,6 +6,8 @@ module Sisimai
|
|
|
6
6
|
module Cloudflare
|
|
7
7
|
class << self
|
|
8
8
|
MessagesOf = {
|
|
9
|
+
# - 554 <YOUR_IP_ADDRESS> found on one or more RBLs (abusixip). Refer to
|
|
10
|
+
# https://developers.cloudflare.com/email-routing/postmaster/#spam-and-abusive-traffic/
|
|
9
11
|
"blocked" => ["found on one or more DNSBLs"],
|
|
10
12
|
"systemerror" => ["Upstream error"],
|
|
11
13
|
}.freeze
|
data/lib/sisimai/rhost/cox.rb
CHANGED
|
@@ -37,13 +37,13 @@ module Sisimai
|
|
|
37
37
|
# - There is a limit to the number of concurrent SMTP connections per IP address to
|
|
38
38
|
# protect the systems against attack. Ensure that the sending email server is not
|
|
39
39
|
# opening more than 10 concurrent connections to avoid reaching this limit.
|
|
40
|
-
'CXCNCT' => '
|
|
40
|
+
'CXCNCT' => 'ratelimited',
|
|
41
41
|
|
|
42
42
|
# CXMXRT
|
|
43
43
|
# - The sender has sent email to too many recipients and needs to wait before sending
|
|
44
44
|
# more email.
|
|
45
45
|
# - The email sender has exceeded the maximum number of sent email allowed.
|
|
46
|
-
'CXMXRT' => '
|
|
46
|
+
'CXMXRT' => 'ratelimited',
|
|
47
47
|
|
|
48
48
|
# CDRBL
|
|
49
49
|
# - The sending IP address has been temporarily blocked by Cox due to exhibiting spam-like
|
|
@@ -61,7 +61,7 @@ module Sisimai
|
|
|
61
61
|
'IPBL0101' => 'blocked', # The sending IP is in the Spamhaus Zen and Invaluement ivmSIP DNSBLs.
|
|
62
62
|
'IPBL0110' => 'blocked', # The sending IP is in the Return Path and Invaluement ivmSIP DNSBLs.
|
|
63
63
|
'IPBL0111' => 'blocked', # The sending IP is in the Spamhaus Zen, Return Path and Invaluement ivmSIP DNSBLs.
|
|
64
|
-
'IPBL1000' => 'blocked', # The sending IP address is listed on a CSI blacklist.
|
|
64
|
+
'IPBL1000' => 'blocked', # The sending IP address is listed on a CSI blacklist.
|
|
65
65
|
'IPBL1001' => 'blocked', # The sending IP is listed in the Cloudmark CSI and Spamhaus Zen DNSBLs.
|
|
66
66
|
'IPBL1010' => 'blocked', # The sending IP is listed in the Cloudmark CSI and Return Path DNSBLs.
|
|
67
67
|
'IPBL1011' => 'blocked', # The sending IP is in the Cloudmark CSI, Spamhaus Zen and Return Path DNSBLs.
|
|
@@ -69,12 +69,12 @@ module Sisimai
|
|
|
69
69
|
'IPBL1101' => 'blocked', # The sending IP is in the Cloudmark CSI, Spamhaus Zen and Invaluement IVMsip DNSBLs.
|
|
70
70
|
'IPBL1110' => 'blocked', # The sending IP is in the Cloudmark CSI, Return Path and Invaluement ivmSIP DNSBLs.
|
|
71
71
|
'IPBL1111' => 'blocked', # The sending IP is in the Cloudmark CSI, Spamhaus Zen, Return Path and Invaluement ivmSIP DNSBLs.
|
|
72
|
-
'IPBL00001' => 'blocked', # The sending IP address is listed on a Spamhaus blacklist.
|
|
72
|
+
'IPBL00001' => 'blocked', # The sending IP address is listed on a Spamhaus blacklist.
|
|
73
73
|
|
|
74
74
|
'URLBL011' => 'spamdetected', # A URL within the body of the message was found on blocklists SURBL and Spamhaus DBL.
|
|
75
75
|
'URLBL101' => 'spamdetected', # A URL within the body of the message was found on blocklists SURBL and ivmURI.
|
|
76
76
|
'URLBL110' => 'spamdetected', # A URL within the body of the message was found on blocklists Spamhaus DBL and ivmURI.
|
|
77
|
-
'URLBL1001' => 'spamdetected', # The URL is listed on a Spamhaus blacklist.
|
|
77
|
+
'URLBL1001' => 'spamdetected', # The URL is listed on a Spamhaus blacklist.
|
|
78
78
|
}.freeze
|
|
79
79
|
MessagesOf = {
|
|
80
80
|
'blocked' => [
|
|
@@ -82,34 +82,23 @@ module Sisimai
|
|
|
82
82
|
# a three-hour block of the client's IP address.
|
|
83
83
|
# - The sending IP address has exceeded the threshold of invalid recipients and has
|
|
84
84
|
# been blocked.
|
|
85
|
+
# - Cox enforces various rate limits to protect our platform. The sending IP address
|
|
86
|
+
# has exceeded one of these rate limits and has been temporarily blocked.
|
|
85
87
|
'cox too many bad commands from',
|
|
86
88
|
'too many invalid recipients',
|
|
87
89
|
],
|
|
88
|
-
'
|
|
89
|
-
# - The reverse DNS check of the sending server IP address has failed.
|
|
90
|
-
# - Cox requires that all connecting email servers contain valid reverse DNS PTR records.
|
|
91
|
-
'dns check failure - try again later',
|
|
92
|
-
'rejected - no rdns',
|
|
93
|
-
],
|
|
94
|
-
'policyviolation' => [
|
|
95
|
-
# - The sending server has attempted to communicate too soon within the SMTP transaction
|
|
90
|
+
'contenterror' => [
|
|
96
91
|
# - The message has been rejected because it contains an attachment with one of the
|
|
97
92
|
# following prohibited file types, which commonly contain viruses: .shb, .shs, .vbe,
|
|
98
93
|
# .vbs, .wsc, .wsf, .wsh, .pif, .msc, .msi, .msp, .reg, .sct, .bat, .chm, .isp, .cpl,
|
|
99
94
|
# .js, .jse, .scr, .exe.
|
|
100
|
-
'esmtp no data before greeting',
|
|
101
95
|
'attachment extension is forbidden',
|
|
102
96
|
],
|
|
103
|
-
'
|
|
104
|
-
#
|
|
105
|
-
'
|
|
106
|
-
],
|
|
107
|
-
'systemerror' => [
|
|
108
|
-
# - Our systems are experiencing an issue which is causing a temporary inability to
|
|
109
|
-
# accept new email.
|
|
110
|
-
'esmtp server temporarily not available',
|
|
97
|
+
'policyviolation' => [
|
|
98
|
+
# - The sending server has attempted to communicate too soon within the SMTP transaction
|
|
99
|
+
'esmtp no data before greeting',
|
|
111
100
|
],
|
|
112
|
-
'
|
|
101
|
+
'ratelimited' => [
|
|
113
102
|
# - The sending IP address has exceeded the five maximum concurrent connection limit.
|
|
114
103
|
# - The SMTP connection has exceeded the 100 email message threshold and was disconnected.
|
|
115
104
|
# - The sending IP address has exceeded one of these rate limits and has been temporarily
|
|
@@ -118,6 +107,21 @@ module Sisimai
|
|
|
118
107
|
'requested action aborted: try again later',
|
|
119
108
|
'message threshold exceeded',
|
|
120
109
|
],
|
|
110
|
+
'rejected' => [
|
|
111
|
+
# Cox requires that all sender domains resolve to a valid MX or A-record within DNS.
|
|
112
|
+
'sender rejected',
|
|
113
|
+
],
|
|
114
|
+
'requireptr' => [
|
|
115
|
+
# - The reverse DNS check of the sending server IP address has failed.
|
|
116
|
+
# - Cox requires that all connecting email servers contain valid reverse DNS PTR records.
|
|
117
|
+
'dns check failure - try again later',
|
|
118
|
+
'rejected - no rdns',
|
|
119
|
+
],
|
|
120
|
+
'systemerror' => [
|
|
121
|
+
# - Our systems are experiencing an issue which is causing a temporary inability to
|
|
122
|
+
# accept new email.
|
|
123
|
+
'esmtp server temporarily not available',
|
|
124
|
+
],
|
|
121
125
|
'userunknown' => [
|
|
122
126
|
# - The intended recipient is not a valid Cox Email account.
|
|
123
127
|
'recipient rejected',
|
|
@@ -127,7 +131,9 @@ module Sisimai
|
|
|
127
131
|
# Detect bounce reason from https://cox.com/
|
|
128
132
|
# @param [Sisimai::Fact] argvs Decoded email object
|
|
129
133
|
# @return [String, Nil] The bounce reason at Cox
|
|
130
|
-
# @see
|
|
134
|
+
# @see
|
|
135
|
+
# - Email Error Codes: https://www.cox.com/business/support/email-error-codes.html
|
|
136
|
+
# - Feedback Loop Service https://www.cox.com/business/support/feedback-loop-service.html
|
|
131
137
|
# @since v4.25.8
|
|
132
138
|
def find(argvs)
|
|
133
139
|
return "" if argvs["diagnosticcode"].empty?
|
|
@@ -145,7 +151,7 @@ module Sisimai
|
|
|
145
151
|
# The error code was not found in ErrorCodes
|
|
146
152
|
MessagesOf.each_key do |e|
|
|
147
153
|
# Try to find with each error message defined in MessagesOf
|
|
148
|
-
next
|
|
154
|
+
next if MessagesOf[e].none? { |a| issuedcode.include?(a) }
|
|
149
155
|
reasontext = e
|
|
150
156
|
break
|
|
151
157
|
end
|
|
@@ -15,25 +15,38 @@ module Sisimai
|
|
|
15
15
|
"POL-P1", # Your mail server's IP Address is listed on the Spamhaus PBL.
|
|
16
16
|
"POL-P2", # Facebook will no longer accept mail from your mail server's IP Address.
|
|
17
17
|
"POL-P3", # Facebook is not accepting messages from your mail server. This will persist for 4 to 8 hours.
|
|
18
|
-
"POL-P4", #
|
|
19
|
-
"POL-T1", #
|
|
20
|
-
"POL-T2", #
|
|
21
|
-
"POL-T3", #
|
|
18
|
+
"POL-P4", # ". This will persist for 24 to 48 hours.
|
|
19
|
+
"POL-T1", # ", but they may be retried later. This will persist for 1 to 2 hours.
|
|
20
|
+
"POL-T2", # ", but they may be retried later. This will persist for 4 to 8 hours.
|
|
21
|
+
"POL-T3", # ", but they may be retried later. This will persist for 24 to 48 hours.
|
|
22
22
|
],
|
|
23
23
|
"contenterror" => [
|
|
24
24
|
"MSG-P2", # The message contains an attachment type that Facebook does not accept.
|
|
25
25
|
],
|
|
26
|
+
"emailtoolarge" => [
|
|
27
|
+
"MSG-P1", # The message exceeds Facebook's maximum allowed size.
|
|
28
|
+
"INT-P2", # The message exceeds Facebook's maximum allowed size.
|
|
29
|
+
],
|
|
26
30
|
"filtered" => [
|
|
27
31
|
"RCP-P2", # The attempted recipient's preferences prevent messages from being delivered.
|
|
28
32
|
"RCP-P3", # The attempted recipient's privacy settings blocked the delivery.
|
|
29
33
|
],
|
|
30
|
-
"
|
|
31
|
-
"
|
|
32
|
-
"INT-P2", # The message exceeds Facebook's maximum allowed size.
|
|
34
|
+
"mailboxfull" => [
|
|
35
|
+
"INT-P7", # The attempted recipient has exceeded their storage quota.
|
|
33
36
|
],
|
|
34
37
|
"notcompliantrfc" => [
|
|
35
38
|
"MSG-P3", # The message contains multiple instances of a header field that can only be present once.
|
|
36
39
|
],
|
|
40
|
+
"policyviolation" => [
|
|
41
|
+
"POL-P8", # The message does not comply with Facebook's abuse policies and will not be accepted.
|
|
42
|
+
],
|
|
43
|
+
"ratelimited" => [
|
|
44
|
+
"CON-T1", # Facebook's mail server currently has too many connections open to allow another one.
|
|
45
|
+
"CON-T2", # Your mail server currently has too many connections open to Facebook's mail servers.
|
|
46
|
+
"CON-T3", # Your mail server has opened too many new connections to Facebook's mail servers in a short period of time.
|
|
47
|
+
"CON-T4", # Your mail server has exceeded the maximum number of recipients for its current connection.
|
|
48
|
+
"MSG-T1", # The number of recipients on the message exceeds Facebook's allowed maximum.
|
|
49
|
+
],
|
|
37
50
|
"rejected" => [
|
|
38
51
|
"DNS-P1", # Your SMTP MAIL FROM domain does not exist.
|
|
39
52
|
"DNS-P2", # Your SMTP MAIL FROM domain does not have an MX record.
|
|
@@ -45,25 +58,18 @@ module Sisimai
|
|
|
45
58
|
],
|
|
46
59
|
"spamdetected" => [
|
|
47
60
|
"POL-P6", # The message contains a url that has been blocked by Facebook.
|
|
48
|
-
"POL-P7", # The message does not comply with Facebook's abuse policies and will not be accepted.
|
|
49
61
|
],
|
|
50
62
|
"suspend" => [
|
|
51
63
|
"RCP-T4", # The attempted recipient address is currently deactivated. The user may or may not reactivate it.
|
|
52
64
|
],
|
|
53
65
|
"systemerror" => [
|
|
54
|
-
"RCP-T1", # The attempted recipient address is not currently available due to an internal system issue.
|
|
55
|
-
|
|
56
|
-
"toomanyconn" => [
|
|
57
|
-
"CON-T1", # Facebook's mail server currently has too many connections open to allow another one.
|
|
58
|
-
"CON-T2", # Your mail server currently has too many connections open to Facebook's mail servers.
|
|
59
|
-
"CON-T3", # Your mail server has opened too many new connections to Facebook's mail servers in a short period of time.
|
|
60
|
-
"CON-T4", # Your mail server has exceeded the maximum number of recipients for its current connection.
|
|
61
|
-
"MSG-T1", # The number of recipients on the message exceeds Facebook's allowed maximum.
|
|
66
|
+
"RCP-T1", # The attempted recipient address is not currently available due to an internal system issue.
|
|
67
|
+
"INT-Tx", # These codes indicate a temporary issue internal to Facebook's system.
|
|
62
68
|
],
|
|
63
69
|
"userunknown" => [
|
|
64
70
|
"RCP-P1", # The attempted recipient address does not exist.
|
|
65
71
|
"INT-P1", # The attempted recipient address does not exist.
|
|
66
|
-
"INT-P3", # The attempted
|
|
72
|
+
"INT-P3", # The attempted recipient group address does not exist.
|
|
67
73
|
"INT-P4", # The attempted recipient address does not exist.
|
|
68
74
|
],
|
|
69
75
|
"virusdetected" => [
|
|
@@ -85,7 +91,7 @@ module Sisimai
|
|
|
85
91
|
|
|
86
92
|
ErrorCodes.each_key do |e|
|
|
87
93
|
# The key is a bounce reason name
|
|
88
|
-
next
|
|
94
|
+
next if ErrorCodes[e].none? { |a| errorlabel == a }
|
|
89
95
|
reasontext = e
|
|
90
96
|
break
|
|
91
97
|
end
|
|
@@ -6,6 +6,12 @@ module Sisimai
|
|
|
6
6
|
module FrancePTT
|
|
7
7
|
class << self
|
|
8
8
|
ErrorCodes = {
|
|
9
|
+
# - Your sending IP is listed on Abusix RBL
|
|
10
|
+
# Please visit: https://lookup.abusix.com/search?q=$IP
|
|
11
|
+
"100" => 'blocked',
|
|
12
|
+
|
|
13
|
+
# - Your sending IP is listed by SpamHaus RBL
|
|
14
|
+
# Please visit: https://check.spamhaus.org/listed/?searchterm=$IP
|
|
9
15
|
# - 550 5.7.1 Service unavailable; client [192.0.2.1] blocked using Spamhaus
|
|
10
16
|
# Les emails envoyes vers la messagerie Laposte.net ont ete bloques par nos services.
|
|
11
17
|
# Afin de regulariser votre situation, nous vous invitons a cliquer sur le lien ci-dessous
|
|
@@ -15,6 +21,8 @@ module Sisimai
|
|
|
15
21
|
# https://www.spamhaus.org/lookup/ LPNAAA_101 (in reply to RCPT TO command))
|
|
16
22
|
'101' => 'blocked',
|
|
17
23
|
|
|
24
|
+
# - Your sending IP is listed by Cloudmark RBL
|
|
25
|
+
# Please visit: https://csi.cloudmark.com/reset-request/?ip=$IP#
|
|
18
26
|
# - 550 mwinf5c04 ME Adresse IP source bloquee pour incident de spam.
|
|
19
27
|
# - Client host blocked for spamming issues. OFR006_102 Ref http://csi.cloudmark.com ...
|
|
20
28
|
# - 550 5.5.0 Les emails envoyes vers la messagerie Laposte.net ont ete bloques par nos
|
|
@@ -25,6 +33,9 @@ module Sisimai
|
|
|
25
33
|
# https://senderscore.org/blacklistlookup/ LPN007_102
|
|
26
34
|
'102' => 'blocked',
|
|
27
35
|
|
|
36
|
+
# - Your sending IP has been blacklisted by Orange
|
|
37
|
+
# Please contact Orange by using our contact form and select option
|
|
38
|
+
# "Un problème d'envoi d'emails vers les adresses Orange ou Wanadoo (deliverability issue)"
|
|
28
39
|
# - 550 mwinf5c10 ME Service refuse. Veuillez essayer plus tard.
|
|
29
40
|
# - Service refused, please try later. OFR006_103 192.0.2.1 [103]
|
|
30
41
|
'103' => 'blocked',
|
|
@@ -32,33 +43,52 @@ module Sisimai
|
|
|
32
43
|
# - 421 mwinf5c79 ME Trop de connexions, veuillez verifier votre configuration.
|
|
33
44
|
# - Too many connections, slow down. OFR005_104 [104]
|
|
34
45
|
# - Too many connections, slow down. LPN105_104
|
|
35
|
-
'104' => '
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
'
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
#
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
#
|
|
53
|
-
|
|
54
|
-
|
|
46
|
+
'104' => 'ratelimited',
|
|
47
|
+
|
|
48
|
+
# - Your IP address is missing a DNS PTR record, it also called a rDNS (reverse DNS)
|
|
49
|
+
# Please set up a valid DNS PTR record for your IP address that point to your domain,
|
|
50
|
+
# It's important that the sending IP address must match the IP address of the hostname
|
|
51
|
+
# defined in the PTR record
|
|
52
|
+
# - Service refused, please try later. LPN006_107
|
|
53
|
+
"107" => 'requireptr',
|
|
54
|
+
|
|
55
|
+
# - You are sending too many messages per SMTP connection
|
|
56
|
+
# Please reduce the number of messages per connection, recommended value is 100
|
|
57
|
+
# messages per connections
|
|
58
|
+
# - Veuillez essayer plus tard. LPN003_109
|
|
59
|
+
"109" => 'ratelimited',
|
|
60
|
+
|
|
61
|
+
# - Invalid HELO/EHLO
|
|
62
|
+
# Please set up a valid HELO/EHLO, it must be fully qualified domain name (FQDN) and
|
|
63
|
+
# should resolve (DNS record needed). E.g.: "mail.yourdomain.com"
|
|
64
|
+
# - Veuillez essayer plus tard. OFR004_201
|
|
65
|
+
"201" => 'blocked',
|
|
66
|
+
"20X" => 'blocked',
|
|
67
|
+
|
|
68
|
+
# - Sender's Domain name SPF Error
|
|
69
|
+
# Please verify your mail from domain name DNS/TXT configuration for your SPF
|
|
70
|
+
# configuration. Please visit https://mxtoolbox.com/supertool3?action=spf:$YOUR_DOMAIN
|
|
71
|
+
# to check your domain. (replace $YOUR_DOMAIN by your sender domain name)
|
|
72
|
+
# Please note:
|
|
73
|
+
# If you have changed your DNS record recently, please let DNS caches expire (TTL)
|
|
74
|
+
"39X" => 'authfailure',
|
|
75
|
+
|
|
76
|
+
# - Sender's Domain DNS Error
|
|
77
|
+
# Please verify your mail from domain name DNS configuration. Your domain name must
|
|
78
|
+
# have valid A or MX records. You can check your DNS configuration on MxToolBox
|
|
79
|
+
# Please note:
|
|
80
|
+
# If you have changed your DNS record recently, please let DNS caches expire (TTL)
|
|
55
81
|
# - 5.0.1 Emetteur invalide. Invalid Sender. LPN105_405
|
|
56
82
|
# - 501 5.1.0 Emetteur invalide. Invalid Sender. OFR004_405 [405] (in reply to MAIL FROM command))
|
|
57
83
|
'405' => 'rejected',
|
|
58
84
|
|
|
59
|
-
#
|
|
60
|
-
|
|
85
|
+
# - Your Sender has been rejected
|
|
86
|
+
# Please contact Orange by using our contact form and select option
|
|
87
|
+
# "Un problème d'envoi d'emails vers les adresses Orange ou Wanadoo (deliverability issue)"
|
|
88
|
+
"406" => 'rejected',
|
|
61
89
|
|
|
90
|
+
# - User doesn't exist here
|
|
91
|
+
# Please remove this email address from your distribution list, it does not exist
|
|
62
92
|
# - 550 5.1.1 Adresse d au moins un destinataire invalide.
|
|
63
93
|
# - Invalid recipient. LPN416 (in reply to RCPT TO command)
|
|
64
94
|
# - Invalid recipient. OFR_416 [416] (in reply to RCPT TO command)
|
|
@@ -68,17 +98,15 @@ module Sisimai
|
|
|
68
98
|
# - Recipient overquota. OFR_417 [417] (in reply to RCPT TO command))
|
|
69
99
|
'417' => 'mailboxfull',
|
|
70
100
|
|
|
71
|
-
# - Adresse d au moins un destinataire invalide
|
|
72
|
-
|
|
73
101
|
# - 550 5.5.0 Boite du destinataire archivee.
|
|
74
102
|
# - Archived recipient. LPN007_420 (in reply to RCPT TO command)
|
|
75
103
|
'420' => 'suspend',
|
|
76
104
|
|
|
77
|
-
# -
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
105
|
+
# - Your sender domain name has been blacklisted
|
|
106
|
+
# Your sender domain name has been blacklisted by Abusix OR SpamHaus, Please visit:
|
|
107
|
+
# - https://lookup.abusix.com/search?q=$YOUR_DOMAIN
|
|
108
|
+
# - https://check.spamhaus.org/listed/?searchterm=$YOUR_DOMAIN
|
|
109
|
+
"425" => 'rejected',
|
|
82
110
|
|
|
83
111
|
# - 550 5.5.0 Le compte du destinataire est bloque. The recipient account isblocked.
|
|
84
112
|
# LPN007_426 (in reply to RCPT TO command)
|
|
@@ -90,6 +118,9 @@ module Sisimai
|
|
|
90
118
|
# LPN007_505 (in reply to end of DATA command)
|
|
91
119
|
'505' => 'systemerror',
|
|
92
120
|
|
|
121
|
+
# - Your message has been blocked by Orange, suspected spam
|
|
122
|
+
# Please contact Orange by using our contact form and select option
|
|
123
|
+
# "Un problème d'envoi d'emails vers les adresses Orange ou Wanadoo (deliverability issue)"
|
|
93
124
|
# - Mail rejete. Mail rejected. OFR_506 [506]
|
|
94
125
|
'506' => 'spamdetected',
|
|
95
126
|
|
|
@@ -97,21 +128,43 @@ module Sisimai
|
|
|
97
128
|
# LPN005_510 (in reply to end of DATA command)
|
|
98
129
|
'510' => 'blocked',
|
|
99
130
|
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
#
|
|
103
|
-
|
|
131
|
+
# - DMARC authentication failed, message rejected as defined by your DMARC policy
|
|
132
|
+
# Please check your SPF/DKIM/DMARC configuration. Please visit MxToolBox DMARC to
|
|
133
|
+
# check your domain configuration
|
|
134
|
+
"515" => 'authfailure',
|
|
104
135
|
|
|
105
136
|
# - 571 5.7.1 Message refused, DMARC verification Failed.
|
|
106
137
|
# - Message refuse, verification DMARC en echec LPN007_517
|
|
107
138
|
'517' => 'authfailure',
|
|
108
139
|
|
|
109
|
-
# -
|
|
110
|
-
'
|
|
140
|
+
# - The sending IP address is not authorized to send messages for your domain as defined
|
|
141
|
+
# in the sender's Domain name SPF configuration (DNS/TXT)
|
|
142
|
+
# Please verify your mail from domain name DNS/TXT configuration for your SPF configuration.
|
|
143
|
+
# Please visit https://mxtoolbox.com/supertool3?action=spf:$YOUR_DOMAIN to check your
|
|
144
|
+
# domain. (replace $YOUR_DOMAIN by your sender domain name)
|
|
145
|
+
"519" => 'authfailure',
|
|
111
146
|
|
|
147
|
+
# - Due to bad behavior you have been rate limited, please try again later
|
|
148
|
+
# Due to inappropriate behavior, you have been rate limited. Please check what you
|
|
149
|
+
# are trying to send
|
|
112
150
|
# - 421 mwinf5c77 ME Service refuse. Veuillez essayer plus tard. Service refused, please try
|
|
113
151
|
# later. OFR_999 [999]
|
|
114
|
-
|
|
152
|
+
"99X" => 'ratelimited',
|
|
153
|
+
|
|
154
|
+
# Other undocumented or old error codes
|
|
155
|
+
"105" => "", # Veuillez essayer plus tard.
|
|
156
|
+
"108" => "", # service refused, please try later. LPN001_108
|
|
157
|
+
"305" => "securityerror", # 550 5.7.0 Code d'authentification invalide OFR_305
|
|
158
|
+
"401" => "authfailure", # 550 5.5.0 SPF: *** is not allowed to send mail. LPN004_401
|
|
159
|
+
"402" => "securityerror", # 550 5.5.0 Authentification requise. Authentication Required. LPN105_402
|
|
160
|
+
"403" => "rejected", # 5.0.1 Emetteur invalide. Invalid Sender.
|
|
161
|
+
"415" => "rejected", # Emetteur invalide. Invalid Sender. OFR_415
|
|
162
|
+
"421" => "rejected", # 5.5.3 Mail from not owned by user. LPN105_421.
|
|
163
|
+
"423" => "", # Service refused, please try later. LPN105_423
|
|
164
|
+
"424" => "", # Veuillez essayer plus tard. LPN105_424
|
|
165
|
+
"513" => "", # Mail rejete. Mail rejected. OUK_513
|
|
166
|
+
"514" => "messagetoobig", # Taille limite du message atteinte
|
|
167
|
+
"630" => "policyviolation", # 554 5.7.1 Client host rejected LPN000_630
|
|
115
168
|
}.freeze
|
|
116
169
|
MessagesOf = {
|
|
117
170
|
'authfailure' => [
|
|
@@ -135,14 +188,15 @@ module Sisimai
|
|
|
135
188
|
if cv = issuedcode.match(/\b(LPN|LPNAAA|OFR|OUK)(_[0-9]{3}|[0-9]{3}[-_][0-9]{3})\b/i)
|
|
136
189
|
# OUK_513, LPN105-104, OFR102-104, ofr_506
|
|
137
190
|
v = sprintf("%03d", (cv[1] + cv[2])[-3, 3])
|
|
138
|
-
|
|
191
|
+
x = v.clone; x[-1] = "X"
|
|
192
|
+
reasontext = ErrorCodes[v] || ErrorCodes[x] || ''
|
|
139
193
|
end
|
|
140
194
|
return reasontext if reasontext.size > 0
|
|
141
195
|
|
|
142
196
|
issuedcode = issuedcode.downcase
|
|
143
197
|
MessagesOf.each_key do |e|
|
|
144
198
|
MessagesOf[e].each do |f|
|
|
145
|
-
next
|
|
199
|
+
next if issuedcode.include?(f) == false
|
|
146
200
|
reasontext = e
|
|
147
201
|
break
|
|
148
202
|
end
|
|
@@ -69,19 +69,19 @@ module Sisimai
|
|
|
69
69
|
# retry. IB605
|
|
70
70
|
# - The message has attempted to mail too many recipients.
|
|
71
71
|
# - Reduce the number of recipients and try again.
|
|
72
|
-
'IB605' => '
|
|
72
|
+
'IB605' => 'ratelimited',
|
|
73
73
|
|
|
74
74
|
# - 421 Connection refused, too many sessions from This IP. Lower the number of concurrent
|
|
75
75
|
# sessions. IB007
|
|
76
76
|
# - This IP address currently has too many sessions open.
|
|
77
77
|
# - Check with your email provider to reduce the number of open sessions on your IP
|
|
78
78
|
# address and then try again.
|
|
79
|
-
'IB007' => '
|
|
79
|
+
'IB007' => 'ratelimited',
|
|
80
80
|
|
|
81
81
|
# - 421 Server temporarily unavailable. Try again later. IB101
|
|
82
82
|
# - The email queue is experiencing higher than normal email volume.
|
|
83
83
|
# - Try again later.
|
|
84
|
-
'IB101' => '
|
|
84
|
+
'IB101' => 'ratelimited',
|
|
85
85
|
|
|
86
86
|
# - 554 This IP has been temporarily blocked for attempting to send too many messages
|
|
87
87
|
# containing content judged to be spam by the Internet community. IB110
|
|
@@ -112,16 +112,16 @@ module Sisimai
|
|
|
112
112
|
|
|
113
113
|
# - 550 This IP has sent too many messages this hour. IB504
|
|
114
114
|
# - This IP address has reached the maximum allowed messages for that hour.
|
|
115
|
-
'IB504' => '
|
|
115
|
+
'IB504' => 'ratelimited',
|
|
116
116
|
|
|
117
117
|
# - 550 This message has exceeded the max number of messages per session. Open a new
|
|
118
118
|
# session and try again. IB510
|
|
119
119
|
# - This IP address has reached the maximum allowed messages for that session.
|
|
120
|
-
'IB510' => '
|
|
120
|
+
'IB510' => 'ratelimited',
|
|
121
121
|
|
|
122
122
|
# - 550 This IP has sent too many to too many recipients this hour. IB607
|
|
123
123
|
# - This IP address has reached the maximum allowed recipients for that hour.
|
|
124
|
-
'IB607' => '
|
|
124
|
+
'IB607' => 'ratelimited',
|
|
125
125
|
|
|
126
126
|
# Remote block list (RBL) bounces
|
|
127
127
|
# ---------------------------------------------------------------------------------------
|
|
@@ -143,6 +143,14 @@ module Sisimai
|
|
|
143
143
|
'IB106' => 'blocked',
|
|
144
144
|
}.freeze
|
|
145
145
|
MessagesOf = {
|
|
146
|
+
'authfailure' => [
|
|
147
|
+
# - 550 SPF Sender Invalid - envelope rejected
|
|
148
|
+
# - 550 5.7.9: This mail has been blocked because the sender is unauthenticated
|
|
149
|
+
# - 550-5.7.26 DKIM = did not pass
|
|
150
|
+
"spf sender invalid - envelope rejected",
|
|
151
|
+
"this mail has been blocked because the sender is unauthenticated",
|
|
152
|
+
"dkim = did not pass",
|
|
153
|
+
],
|
|
146
154
|
'blocked' => [
|
|
147
155
|
# - 554 RBL Reject.
|
|
148
156
|
# - This IP address was blocked from our internal RBL.
|
|
@@ -169,6 +177,25 @@ module Sisimai
|
|
|
169
177
|
# make space for more email.
|
|
170
178
|
'account storage limit',
|
|
171
179
|
],
|
|
180
|
+
'norelaying' => [
|
|
181
|
+
# - 550 5.7.1: Relay access denied
|
|
182
|
+
"relay access denied",
|
|
183
|
+
],
|
|
184
|
+
'ratelimited' => [
|
|
185
|
+
# - 550 5.7.232 Your message can't be sent because your trial tenant has exceeded
|
|
186
|
+
# its daily limit for sending email to external recipients (tenant external recipient rate limit)
|
|
187
|
+
# - 550 5.7.233 - Your message can't be sent because your tenant exceeded its daily
|
|
188
|
+
# limit for sending email to external recipients (tenant external recipient rate limit)
|
|
189
|
+
"exceeded its daily limit",
|
|
190
|
+
],
|
|
191
|
+
'rejected' => [
|
|
192
|
+
# - 550 5.1.8 Access denied, bad outbound sender AS (42004)
|
|
193
|
+
"bad outbound sender as (42004)",
|
|
194
|
+
],
|
|
195
|
+
'securityerror' => [
|
|
196
|
+
# - 550 Please turn on SMTP Authentication in your mail client
|
|
197
|
+
"turn on smtp authentication in your mail client",
|
|
198
|
+
],
|
|
172
199
|
'spamdetected' => [
|
|
173
200
|
# - 552 Message rejected for spam or virus content
|
|
174
201
|
# - The email message contains a link, attachment, or pattern caught by our filters as spam.
|
|
@@ -218,7 +245,7 @@ module Sisimai
|
|
|
218
245
|
issuedcode = issuedcode.downcase
|
|
219
246
|
MessagesOf.each_key do |e|
|
|
220
247
|
MessagesOf[e].each do |f|
|
|
221
|
-
next
|
|
248
|
+
next if issuedcode.include?(f) == false
|
|
222
249
|
reasontext = e
|
|
223
250
|
break
|
|
224
251
|
end
|