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.
Files changed (150) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/codecovio.yml +1 -1
  3. data/.github/workflows/rake-test.yml +1 -1
  4. data/ChangeLog.md +56 -0
  5. data/LICENSE +1 -1
  6. data/Makefile +2 -4
  7. data/README-JA.md +29 -23
  8. data/README.md +30 -24
  9. data/lib/sisimai/address.rb +92 -44
  10. data/lib/sisimai/arf.rb +7 -8
  11. data/lib/sisimai/datetime.rb +2 -2
  12. data/lib/sisimai/fact/json.rb +1 -2
  13. data/lib/sisimai/fact/yaml.rb +1 -2
  14. data/lib/sisimai/fact.rb +76 -36
  15. data/lib/sisimai/lda.rb +2 -2
  16. data/lib/sisimai/lhost/activehunter.rb +4 -5
  17. data/lib/sisimai/lhost/amazonses.rb +4 -5
  18. data/lib/sisimai/lhost/apachejames.rb +2 -2
  19. data/lib/sisimai/lhost/biglobe.rb +6 -6
  20. data/lib/sisimai/lhost/courier.rb +7 -7
  21. data/lib/sisimai/lhost/domino.rb +6 -6
  22. data/lib/sisimai/lhost/dragonfly.rb +5 -5
  23. data/lib/sisimai/lhost/einsundeins.rb +5 -5
  24. data/lib/sisimai/lhost/exchange2003.rb +7 -7
  25. data/lib/sisimai/lhost/exchange2007.rb +5 -5
  26. data/lib/sisimai/lhost/exim.rb +13 -15
  27. data/lib/sisimai/lhost/ezweb.rb +3 -2
  28. data/lib/sisimai/lhost/fml.rb +9 -9
  29. data/lib/sisimai/lhost/gmail.rb +9 -9
  30. data/lib/sisimai/lhost/gmx.rb +3 -3
  31. data/lib/sisimai/lhost/googlegroups.rb +6 -7
  32. data/lib/sisimai/lhost/googleworkspace.rb +5 -6
  33. data/lib/sisimai/lhost/imailserver.rb +4 -4
  34. data/lib/sisimai/lhost/kddi.rb +4 -4
  35. data/lib/sisimai/lhost/mailfoundry.rb +3 -3
  36. data/lib/sisimai/lhost/{mailmarshalsmtp.rb → mailmarshal.rb} +5 -5
  37. data/lib/sisimai/lhost/messagingserver.rb +8 -8
  38. data/lib/sisimai/lhost/mfilter.rb +8 -4
  39. data/lib/sisimai/lhost/mimecast.rb +105 -0
  40. data/lib/sisimai/lhost/notes.rb +5 -5
  41. data/lib/sisimai/lhost/opensmtpd.rb +5 -5
  42. data/lib/sisimai/lhost/postfix.rb +38 -32
  43. data/lib/sisimai/lhost/qmail.rb +11 -11
  44. data/lib/sisimai/lhost/sendmail.rb +13 -13
  45. data/lib/sisimai/lhost/{interscanmss.rb → trendmicro.rb} +8 -9
  46. data/lib/sisimai/lhost/v5sendmail.rb +7 -7
  47. data/lib/sisimai/lhost/verizon.rb +3 -3
  48. data/lib/sisimai/lhost/x1.rb +7 -4
  49. data/lib/sisimai/lhost/x2.rb +40 -12
  50. data/lib/sisimai/lhost/x3.rb +3 -3
  51. data/lib/sisimai/lhost/x6.rb +2 -2
  52. data/lib/sisimai/lhost/zoho.rb +5 -5
  53. data/lib/sisimai/lhost.rb +18 -17
  54. data/lib/sisimai/mail/maildir.rb +4 -4
  55. data/lib/sisimai/mail/mbox.rb +4 -4
  56. data/lib/sisimai/mail/memory.rb +1 -1
  57. data/lib/sisimai/mail/stdin.rb +2 -2
  58. data/lib/sisimai/message.rb +36 -34
  59. data/lib/sisimai/order.rb +5 -4
  60. data/lib/sisimai/reason/authfailure.rb +10 -14
  61. data/lib/sisimai/reason/badreputation.rb +8 -8
  62. data/lib/sisimai/reason/blocked.rb +58 -83
  63. data/lib/sisimai/reason/contenterror.rb +15 -10
  64. data/lib/sisimai/reason/{mesgtoobig.rb → emailtoolarge.rb} +23 -26
  65. data/lib/sisimai/reason/expired.rb +17 -24
  66. data/lib/sisimai/reason/failedstarttls.rb +1 -1
  67. data/lib/sisimai/reason/filtered.rb +14 -18
  68. data/lib/sisimai/reason/hasmoved.rb +3 -2
  69. data/lib/sisimai/reason/hostunknown.rb +18 -21
  70. data/lib/sisimai/reason/mailboxfull.rb +28 -50
  71. data/lib/sisimai/reason/mailererror.rb +1 -1
  72. data/lib/sisimai/reason/networkerror.rb +17 -17
  73. data/lib/sisimai/reason/norelaying.rb +20 -20
  74. data/lib/sisimai/reason/notaccept.rb +7 -10
  75. data/lib/sisimai/reason/notcompliantrfc.rb +6 -10
  76. data/lib/sisimai/reason/policyviolation.rb +12 -28
  77. data/lib/sisimai/reason/ratelimited.rb +62 -0
  78. data/lib/sisimai/reason/rejected.rb +46 -58
  79. data/lib/sisimai/reason/requireptr.rb +14 -26
  80. data/lib/sisimai/reason/securityerror.rb +14 -20
  81. data/lib/sisimai/reason/spamdetected.rb +52 -102
  82. data/lib/sisimai/reason/suspend.rb +27 -24
  83. data/lib/sisimai/reason/systemerror.rb +20 -24
  84. data/lib/sisimai/reason/systemfull.rb +2 -2
  85. data/lib/sisimai/reason/userunknown.rb +82 -114
  86. data/lib/sisimai/reason/vacation.rb +1 -1
  87. data/lib/sisimai/reason/virusdetected.rb +7 -9
  88. data/lib/sisimai/reason.rb +26 -26
  89. data/lib/sisimai/rfc1123.rb +58 -18
  90. data/lib/sisimai/rfc1894.rb +6 -8
  91. data/lib/sisimai/rfc2045.rb +25 -13
  92. data/lib/sisimai/rfc3464/thirdparty.rb +2 -3
  93. data/lib/sisimai/rfc3464.rb +6 -6
  94. data/lib/sisimai/rfc3834.rb +18 -8
  95. data/lib/sisimai/rfc5322.rb +9 -9
  96. data/lib/sisimai/rfc791.rb +2 -2
  97. data/lib/sisimai/rhost/aol.rb +4 -1
  98. data/lib/sisimai/rhost/apple.rb +15 -11
  99. data/lib/sisimai/rhost/cloudflare.rb +2 -0
  100. data/lib/sisimai/rhost/cox.rb +31 -25
  101. data/lib/sisimai/rhost/facebook.rb +24 -18
  102. data/lib/sisimai/rhost/franceptt.rb +92 -38
  103. data/lib/sisimai/rhost/godaddy.rb +34 -7
  104. data/lib/sisimai/rhost/google.rb +69 -70
  105. data/lib/sisimai/rhost/gsuite.rb +1 -1
  106. data/lib/sisimai/rhost/iua.rb +1 -1
  107. data/lib/sisimai/rhost/kddi.rb +1 -1
  108. data/lib/sisimai/rhost/messagelabs.rb +160 -2
  109. data/lib/sisimai/rhost/microsoft.rb +154 -107
  110. data/lib/sisimai/rhost/mimecast.rb +64 -55
  111. data/lib/sisimai/rhost/nttdocomo.rb +70 -90
  112. data/lib/sisimai/rhost/outlook.rb +1 -1
  113. data/lib/sisimai/rhost/spectrum.rb +8 -8
  114. data/lib/sisimai/rhost/tencent.rb +12 -13
  115. data/lib/sisimai/rhost/yahooinc.rb +9 -10
  116. data/lib/sisimai/rhost/zoho.rb +72 -0
  117. data/lib/sisimai/rhost.rb +4 -3
  118. data/lib/sisimai/smtp/command.rb +4 -2
  119. data/lib/sisimai/smtp/reply.rb +11 -4
  120. data/lib/sisimai/smtp/status.rb +67 -98
  121. data/lib/sisimai/smtp/transcript.rb +3 -3
  122. data/lib/sisimai/string.rb +4 -23
  123. data/lib/sisimai/version.rb +1 -1
  124. data/lib/sisimai.rb +1 -1
  125. data/set-of-emails/maildir/bsd/lhost-exim-56.eml +40 -40
  126. data/set-of-emails/maildir/bsd/lhost-mfilter-05.eml +41 -0
  127. data/set-of-emails/maildir/bsd/lhost-mimecast-01.eml +46 -0
  128. data/set-of-emails/maildir/bsd/lhost-mimecast-02.eml +59 -0
  129. data/set-of-emails/maildir/bsd/lhost-postfix-79.eml +81 -0
  130. data/set-of-emails/maildir/bsd/lhost-postfix-80.eml +84 -0
  131. data/set-of-emails/maildir/bsd/lhost-x1-03.eml +26 -0
  132. data/set-of-emails/maildir/bsd/lhost-x1-04.eml +45 -0
  133. data/set-of-emails/maildir/bsd/lhost-x2-07.eml +30 -0
  134. data/set-of-emails/maildir/bsd/rfc3464-66.eml +170 -0
  135. data/set-of-emails/maildir/bsd/rfc3834-06.eml +59 -0
  136. data/set-of-emails/maildir/bsd/rhost-zoho-01.eml +88 -0
  137. data/set-of-emails/maildir/bsd/rhost-zoho-02.eml +86 -0
  138. data/set-of-emails/maildir/bsd/rhost-zoho-03.eml +87 -0
  139. data/set-of-emails/maildir/bsd/rhost-zoho-04.eml +86 -0
  140. data/set-of-emails/maildir/not/rb-issue-368-bug.eml +39 -0
  141. data/sisimai-java.gemspec +1 -1
  142. data/sisimai.gemspec +1 -1
  143. metadata +28 -13
  144. data/lib/sisimai/reason/exceedlimit.rb +0 -47
  145. data/lib/sisimai/reason/speeding.rb +0 -47
  146. data/lib/sisimai/reason/toomanyconn.rb +0 -59
  147. /data/set-of-emails/maildir/bsd/{lhost-mailmarshalsmtp-02.eml → lhost-mailmarshal-02.eml} +0 -0
  148. /data/set-of-emails/maildir/bsd/{lhost-interscanmss-01.eml → lhost-trendmicro-01.eml} +0 -0
  149. /data/set-of-emails/maildir/bsd/{lhost-interscanmss-02.eml → lhost-trendmicro-02.eml} +0 -0
  150. /data/set-of-emails/maildir/bsd/{lhost-interscanmss-03.eml → lhost-trendmicro-03.eml} +0 -0
@@ -150,7 +150,18 @@ module Sisimai
150
150
  ['550', '5.7.1', 'an unusual rate of unsolicited mail'],
151
151
  ['550', '5.7.28', 'an unusual rate of unsolicited mail'],
152
152
  ],
153
- 'exceedlimit' => [
153
+ 'contenterror' => [
154
+ # - 552 5.7.0 Our system detected an illegal attachment on your message. Please visit
155
+ # http://mail.google.com/support/bin/answer.py?answer=6590 to review our attachment
156
+ # guidelines.
157
+ ['552', '5.7.0', 'illegal attachment on your message'],
158
+
159
+ # - 552 5.7.0 This message was blocked because its content presents a potential securi-
160
+ # ty issue. Please visit https://support.google.com/mail/?p=BlockedMessage to review
161
+ # our message content and attachment content guidelines.
162
+ ['552', '5.7.0', 'blocked because its content presents a potential security issue'],
163
+ ],
164
+ 'emailtoolarge' => [
154
165
  # - 552 5.2.3 Your message exceeded Google's message size limits. For more information,
155
166
  # visit https://support.google.com/mail/answer/6584
156
167
  ['552', '5.2.3', "your message exceeded google's message size limits"],
@@ -162,11 +173,22 @@ module Sisimai
162
173
  # - 552 5.3.4 The size of the <header name> header value (size bytes) exceeds Google's
163
174
  # limit of limit bytes per individual header size. To view our header size guidelines,
164
175
  # go to Gmail message header limits https://support.google.com/a?p=header-limits
165
- ['552', '5.3.4', "exceeds google's limit of limit attachments."],
176
+ #
177
+ # - 552 5.3.4 Your message exceeded Google's message size limits. To view our message
178
+ # size guidelines, go to Send attachments with your Gmail message.
179
+ # - https://support.google.com/mail/?p=MaxSizeError
180
+ #
181
+ # - 552 5.3.4 The size of your message (size bytes) exceeded Google's message size
182
+ # limits of limit bytes. To view our message size guidelines, go to Gmail receiving
183
+ # limits in Google Workspace.
184
+ # - https://support.google.com/mail/?p=MaxSizeError
166
185
  ['552', '5.3.4', "your message exceeded google's message header size limits"],
167
186
  ['552', '5.3.4', 'bytes per individual header size'],
187
+ ['552', '5.3.4', "exceeds google's limit of limit attachments."],
168
188
  ['552', '5.3.4', "exceeds google's header name limit of"],
169
- ['552', '5.3.4', "exceeds google's message header size limit"]
189
+ ['552', '5.3.4', "exceeds google's message size limit of"],
190
+ ['552', '5.3.4', "exceeds google's message header size limit"],
191
+ ['552', '5.3.4', "exceeded google's message size limits"],
170
192
  ],
171
193
  'expired' => [
172
194
  # - 421 4.7.0 Connection expired, try reconnecting. For more information, go to About
@@ -206,18 +228,6 @@ module Sisimai
206
228
  ['552', '5.2.2', 'is over quota'],
207
229
  ['550', '5.7.1', 'email quota exceeded'],
208
230
  ],
209
- 'mesgtoobig' => [
210
- # - 552 5.3.4 Your message exceeded Google's message size limits. To view our message
211
- # size guidelines, go to Send attachments with your Gmail message.
212
- # - https://support.google.com/mail/?p=MaxSizeError
213
- ['552', '5.3.4', "exceeded google's message size limits"],
214
-
215
- # - 552 5.3.4 The size of your message (size bytes) exceeded Google's message size
216
- # limits of limit bytes. To view our message size guidelines, go to Gmail receiving
217
- # limits in Google Workspace.
218
- # - https://support.google.com/mail/?p=MaxSizeError
219
- ['552', '5.3.4', "exceeds google's message size limit of"],
220
- ],
221
231
  'networkerror' => [
222
232
  # - 554 5.4.6 Message exceeded 50 hops, this may indicate a mail loop.
223
233
  # For more information, go to Gmail Help. https://support.google.com/mail/?p=MailLoop
@@ -291,21 +301,49 @@ module Sisimai
291
301
  ['554', '5.6.0', 'mail message is malformed'],
292
302
  ],
293
303
  'policyviolation' => [
294
- # - 552 5.7.0 Our system detected an illegal attachment on your message. Please visit
295
- # http://mail.google.com/support/bin/answer.py?answer=6590 to review our attachment
296
- # guidelines.
297
- ['552', '5.7.0', 'illegal attachment on your message'],
298
-
299
- # - 552 5.7.0 This message was blocked because its content presents a potential securi-
300
- # ty issue. Please visit https://support.google.com/mail/?p=BlockedMessage to review
301
- # our message content and attachment content guidelines.
302
- ['552', '5.7.0', 'blocked because its content presents a potential security issue'],
303
-
304
304
  # - 550 5.7.1 The user or domain that you are sending to (or from) has a policy that
305
305
  # prohibited the mail that you sent. Please contact your domain administrator for
306
306
  # further details.
307
307
  # For more information, visit https://support.google.com/a/answer/172179
308
308
  ['550', '5.7.1', 'you are sending to (or from) has a policy that prohibited'],
309
+ ],
310
+ 'ratelimited' => [
311
+ # - 450 4.2.1 The user you are trying to contact is receiving mail too quickly. Please
312
+ # resend your message at a later time. If the user is able to receive mail at that
313
+ # time, your message will be delivered.
314
+ # For more information, visit https://support.google.com/mail/answer/22839
315
+ #
316
+ # - 450 4.2.1 Peak SMTP relay limit exceeded for customer. This is a temporary error.
317
+ # For more information on SMTP relay limits, please contact your administrator or
318
+ # visit https://support.google.com/a/answer/6140680
319
+ ['450', '4.2.1', 'is receiving mail too quickly'],
320
+ ['450', '4.2.1', 'peak smtp relay limit exceeded for customer'],
321
+
322
+ # - 450 4.2.1 The user you are trying to contact is receiving mail at a rate that pre-
323
+ # vents additional messages from being delivered. Please resend your message at a
324
+ # later time. If the user is able to receive mail at that time, your message will be
325
+ # delivered. For more information, visit https://support.google.com/mail/answer/6592
326
+ # - https://support.google.com/mail/?p=ReceivingRatePerm
327
+ ['450', '4.2.1', 'rate that prevents additional messages from being delivered'],
328
+ ['550', '5.2.1', 'rate that prevents additional messages from being delivered'],
329
+
330
+ # - 452 4.5.3 Your message has too many recipients. For more information regarding
331
+ # Google's sending limits, visit https://support.google.com/mail/answer/6592
332
+ # https://support.google.com/mail/?p=TooManyRecipientsError
333
+ ['452', '4.5.3', 'your message has too many recipients'],
334
+ ['550', '5.5.3', 'too many recipients for this sender'],
335
+
336
+ # - 550 5.4.5 Daily SMTP relay limit exceeded for user. For more information on SMTP
337
+ # relay sending limits please contact your administrator or visit SMTP relay service
338
+ # error messages.
339
+ # https://support.google.com/a/answer/6140680
340
+ # - https://support.google.com/a/answer/166852
341
+ ['550', '5.4.5', 'daily sending quota exceeded'],
342
+ ['550', '5.4.5', 'daily user sending limit exceeded'],
343
+ ['550', '5.4.5', 'daily smtp relay limit exceeded for'],
344
+ ['550', '5.7.1', 'daily smtp relay limit exceeded for'],
345
+ ['550', '5.7.1', 'daily smtp relay sending limit exceeded for'],
346
+ ['550', '5.7.1', 'this mail has been rate limited'],
309
347
 
310
348
  # - 421 4.7.28 Gmail has detected this message exceeded its quota for sending messages
311
349
  # with the same Message-ID:. To best protect our users, the message has been tempo-
@@ -394,38 +432,6 @@ module Sisimai
394
432
  # - https://support.google.com/mail/?p=UnsolicitedMessageError
395
433
  ['550', '5.7.1', 'likely unsolicited mail'],
396
434
  ],
397
- 'speeding' => [
398
- # - 450 4.2.1 The user you are trying to contact is receiving mail too quickly. Please
399
- # resend your message at a later time. If the user is able to receive mail at that
400
- # time, your message will be delivered.
401
- # For more information, visit https://support.google.com/mail/answer/22839
402
- #
403
- # - 450 4.2.1 Peak SMTP relay limit exceeded for customer. This is a temporary error.
404
- # For more information on SMTP relay limits, please contact your administrator or
405
- # visit https://support.google.com/a/answer/6140680
406
- ['450', '4.2.1', 'is receiving mail too quickly'],
407
- ['450', '4.2.1', 'peak smtp relay limit exceeded for customer'],
408
-
409
- # - 450 4.2.1 The user you are trying to contact is receiving mail at a rate that pre-
410
- # vents additional messages from being delivered. Please resend your message at a
411
- # later time. If the user is able to receive mail at that time, your message will be
412
- # delivered. For more information, visit https://support.google.com/mail/answer/6592
413
- # - https://support.google.com/mail/?p=ReceivingRatePerm
414
- ['450', '4.2.1', 'rate that prevents additional messages from being delivered'],
415
- ['550', '5.2.1', 'rate that prevents additional messages from being delivered'],
416
-
417
- # - 550 5.4.5 Daily SMTP relay limit exceeded for user. For more information on SMTP
418
- # relay sending limits please contact your administrator or visit SMTP relay service
419
- # error messages.
420
- # https://support.google.com/a/answer/6140680
421
- # - https://support.google.com/a/answer/166852
422
- ['550', '5.4.5', 'daily sending quota exceeded'],
423
- ['550', '5.4.5', 'daily user sending limit exceeded'],
424
- ['550', '5.4.5', 'daily smtp relay limit exceeded for'],
425
- ['550', '5.7.1', 'daily smtp relay limit exceeded for'],
426
- ['550', '5.7.1', 'daily smtp relay sending limit exceeded for'],
427
- ['550', '5.7.1', 'this mail has been rate limited'],
428
- ],
429
435
  'suspend' => [
430
436
  # - 550 5.2.1 The email account that you tried to reach is inactive.
431
437
  # For more information, go to https://support.google.com/mail/?p=DisabledUser
@@ -494,13 +500,6 @@ module Sisimai
494
500
  # https://support.google.com/a/answer/3221692
495
501
  ['454', '4.7.0', 'cannot authenticate due to temporary system problem'],
496
502
  ],
497
- 'toomanyconn' => [
498
- # - 452 4.5.3 Your message has too many recipients. For more information regarding
499
- # Google's sending limits, visit https://support.google.com/mail/answer/6592
500
- # https://support.google.com/mail/?p=TooManyRecipientsError
501
- ['452', '4.5.3', 'your message has too many recipients'],
502
- ['550', '5.5.3', 'too many recipients for this sender'],
503
- ],
504
503
  'userunknown' => [
505
504
  # - 550 5.1.1 The email account that you tried to reach does not exist. Please try dou-
506
505
  # ble-checking the recipient's email address for typos or unnecessary spaces.
@@ -527,8 +526,8 @@ module Sisimai
527
526
  # @see https://support.google.com/a/answer/3726730?hl=en
528
527
  def find(argvs)
529
528
  return "" if argvs["diagnosticcode"].empty?
530
- return '' unless Sisimai::SMTP::Reply.test(argvs['replycode'])
531
- return '' unless Sisimai::SMTP::Status.test(argvs['deliverystatus'])
529
+ return '' if Sisimai::SMTP::Reply.test(argvs['replycode']) == false
530
+ return '' if Sisimai::SMTP::Status.test(argvs['deliverystatus']) == false
532
531
 
533
532
  statuscode = argvs['deliverystatus'][2,6]
534
533
  esmtpreply = argvs['replycode'][1,2]
@@ -539,13 +538,13 @@ module Sisimai
539
538
  # Each key is a reason name
540
539
  MessagesOf[e].each do |f|
541
540
  # Try to match an SMTP reply code, a D.S.N, and an error message
542
- next unless issuedcode.include?(f[2])
543
- next unless f[0].end_with?(esmtpreply)
544
- next unless f[1].end_with?(statuscode)
541
+ next if issuedcode.include?(f[2]) == false
542
+ next if f[0].end_with?(esmtpreply) == false
543
+ next if f[1].end_with?(statuscode) == false
545
544
  reasontext = e
546
545
  break
547
546
  end
548
- break unless reasontext.empty?
547
+ break if reasontext.empty? == false
549
548
  end
550
549
 
551
550
  return reasontext
@@ -24,7 +24,7 @@ module Sisimai
24
24
 
25
25
  MessagesOf.each_key do |e|
26
26
  # Try to match the error message with message patterns defined in $MessagesOf
27
- next unless MessagesOf[e].any? { |a| argvs["diagnosticcode"].include?(a) }
27
+ next if MessagesOf[e].none? { |a| argvs["diagnosticcode"].include?(a) }
28
28
  next if e == "networkerror" && (statuscode == "5" || esmtpreply == "5")
29
29
  next if e == "hostunknown" && (statuscode == "4" || statuscode == "")
30
30
  next if e == "hostunknown" && (esmtpreply == "4" || esmtpreply == "")
@@ -11,7 +11,7 @@ module Sisimai
11
11
  '2' => 'userunknown', # User is not found.
12
12
  '3' => 'suspend', # Mailbox was not used for more than 3 months
13
13
  '4' => 'mailboxfull', # Mailbox is full.
14
- '5' => 'toomanyconn', # Letter sending limit is exceeded.
14
+ '5' => 'ratelimited', # Letter sending limit is exceeded.
15
15
  '6' => 'norelaying', # Use SMTP of your provider to send mail.
16
16
  '7' => 'blocked', # Wrong value if command HELO/EHLO parameter.
17
17
  '8' => 'rejected', # Couldn't check sender address.
@@ -21,7 +21,7 @@ module Sisimai
21
21
 
22
22
  MessagesOf.each_key do |e|
23
23
  # Try to match the error message with message patterns defined in $MessagesOf
24
- next unless issuedcode.include?(MessagesOf[e])
24
+ next if issuedcode.include?(MessagesOf[e]) == false
25
25
  reasontext = e
26
26
  break
27
27
  end
@@ -6,8 +6,166 @@ module Sisimai
6
6
  module MessageLabs
7
7
  class << self
8
8
  MessagesOf = {
9
+ "authfailure" => [
10
+ # - 553 DMARC domain authentication fail
11
+ # - https://knowledge.broadcom.com/external/article/175407
12
+ # An email has failed delivery and the reason provided in Track and Trace is due
13
+ # to SPF Record. 553-SPF (Sender Policy Framework) domain authentication fail.
14
+ "domain authentication fail",
15
+ ],
16
+ "badreputation" => [
17
+ # - https://knowledge.broadcom.com/external/article/164955
18
+ # "501 Connection rejected by policy [7.7]" 20805, please visit www.messagelabs.com/support
19
+ # for more details about this error message.
20
+ # My IP has a negative reputation with Symantec. To check the reputation of a
21
+ # specific IP address, go to https://ipremoval.sms.symantec.com/.
22
+ # - https://knowledge.broadcom.com/external/article/384503
23
+ # Users are receiving a non-delivery receipt (NDR) when sending an email to a
24
+ # Symantec Email Security.cloud customer:
25
+ "Connection rejected by policy",
26
+ ],
27
+ "blocked" => [
28
+ # - https://knowledge.broadcom.com/external/article/165165
29
+ # You are sending an email to a domain protected by the Symantec Email Security.Cloud
30
+ # service and are receiving a non delivery receipt (NDR) stating the email delivery failed.
31
+ # 553-mail rejected because your IP is in the PBL. See http://www.spamhaus.org/pbl
32
+ # - Sorry, your IP address has been blocked
33
+ # * This error message indicates that your public IP address has been put on a
34
+ # block list by the Spamhaus PBL block list. To resolve this issue, request to
35
+ # have your IP removed at http://www.spamhaus.org/pbl/.
36
+ # * The delisting process is normally quicker than an hour. Once an hour has passed
37
+ # try to resend your email.
38
+ # * If the problem persists, contact the recipient by other means (e.g. phone)
39
+ # and request that your email address is added to their Email Security.cloud
40
+ # approved sender's list.
41
+ # - Sorry, your email address (addr) has been blocked
42
+ # * Check with your administrator or ISP that your mail server is not in open relay.
43
+ # Search “Open Relay Test” for an independent testing tool. If your mail server
44
+ # is an open relay, please fix the open relay, wait 24 hours, and then try to
45
+ # resend your email.
46
+ # * Check with your administrator or ISP that your IP address is not on any spam
47
+ # block lists. Search “email blacklist check” to check using an independent tool.
48
+ # If your IP address is on any block lists, please request for removal, wait 24
49
+ # hours, and then try to resend your email.
50
+ # If the problem persists, contact the recipient by other means (e.g. phone) for
51
+ # further assistance.
52
+ # - Sorry, your IP address (ip-addr) has been blocked
53
+ "mail rejected because your IP is in the PBL",
54
+ "your IP address has been ",
55
+ "your IP address (ip-addr) has been blocked",
56
+ "your email address (addr) has been blocked",
57
+ ],
58
+ "contenterror" => [
59
+ # - 553 Stray linefeeds in message (#5.6.2)
60
+ # This error message happens because we strictly enforce the Internet Message Format
61
+ # standard RFC 5322 (and its predecessor RFC 2822) which state, "CR and LF MUST
62
+ # only occur together as CRLF; they MUST NOT appear independently in the body.
63
+ "Stray linefeeds in message",
64
+ ],
65
+ "failedstarttls" => [
66
+ # - https://knowledge.broadcom.com/external/article/162152
67
+ # You are sending to a domain protected by the Symantec Email Security.cloud
68
+ # service, or you are a customer subscribed to Symantec Email Security.cloud
69
+ # sending outbound through the service. The Email Security.cloud server responds
70
+ # to the SMTP RCPT TO: command with "451 TLS/SSLv3 Connection required. (#4.7.1)".
71
+ # - 451 TLS/SSLv3 Connection required. (#4.7.1)
72
+ # - Within the ClientNet portal, the Email Track and Trace tool shows "Not Delivered"
73
+ # in the Delivered column and "Boundary Encryption" in the "Service" column.
74
+ "TLS/SSLv3 Connection required",
75
+ ],
76
+ "norelaying" => [
77
+ # - https://knowledge.broadcom.com/external/article/162137
78
+ # You received a Non-Delivery Report (NDR) for email sent through the Symantec
79
+ # Email Security.cloud infrastructure, with the message "You are trying to use
80
+ # me [server-X.tower-x.messagelabs.com] as a relay, but I have not been configured
81
+ # to let you [IP, address] do this."
82
+ " as a relay, ",
83
+ ],
84
+ "notcompliantrfc" => [
85
+ # - The format of your message did not comply with RFC 2822.
86
+ # - Contact your IT administrator or ISP.
87
+ # - If the problem persists, contact the recipient by other means (e.g. phone).
88
+ #
89
+ # - 550 [XX.XX.XX.XX] has detected that this message is not RFC 5322
90
+ # * Ensure that the message complied to RFC 5322.
91
+ "550 Requested action aborted [4]",
92
+ "has detected that this message is not RFC 5322",
93
+ ],
94
+ "ratelimited" => [
95
+ # - https://knowledge.broadcom.com/external/article/385809
96
+ # Email Security Cloud is attempting to deliver the email and recipient MTA is
97
+ # responding "452 Too many recipients received this hour".
98
+ # - https://knowledge.broadcom.com/external/article/164767
99
+ # This error can occur when sending outbound or inbound emails through Email
100
+ # Security.Cloud. A non-delivery receipt (NDR) stating delivery contains a message
101
+ # that the intended recipient has failed with error:
102
+ # "460 too many messages (#4.3.0)"
103
+ "Too many recipients received this hour",
104
+ "too many messages",
105
+ ],
106
+ "rejected" => [
107
+ # - 550 sender envelope domain not allowed for sender IP address (#5.1.8)
108
+ # This error occurs when a sender attempts to send an email and any one of the
109
+ # following are true:
110
+ # * The sending domain has not been registered under My Domains or Third-Party Domains.
111
+ # * The sending domain is inactive.
112
+ # * The sending IP is not in Outbound Routes.
113
+ # - 553 Sorry, your domain has been blocked
114
+ # The error message indicates that your IP address is on the recipient’s private
115
+ # block list. Contact the recipient and request that your email address is added
116
+ # to their Email Security.cloud approved sender's list.
117
+ # - 553 Sorry, your email address has been blocked
118
+ # The error message indicates that your domain is on the recipient’s private block
119
+ # list. Contact the recipient by other means (e.g. phone) and request that your
120
+ # email address is added to their Email Security.cloud approved senders list.
121
+ # - https://knowledge.broadcom.com/external/article/162232
122
+ # You have received an email notification from Symantec Email Security.cloud:
123
+ # * An individual end user account is either sending spam through Symantec Email
124
+ # Security.cloud or is receiving a bounceback error message indicating they are
125
+ # on the "badmailfrom" list.
126
+ # * The error message received is: "553 sorry, your envelope sender is in my
127
+ # badmailfrom list. Please visit www.symanteccloud.com/troubleshooting for more
128
+ # details about this error message and instructions to resolve this issue. (#5.7.1)."
129
+ # - https://knowledge.broadcom.com/external/article/173082
130
+ # Emails from a sender are blocked by the Anti-Spam service stating that they are
131
+ # in your company's blacklist.
132
+ # * 553-Sorry, your email address has been blacklisted
133
+ # * 553-Sorry, your domain has been blacklisted
134
+ # * 553-Sorry, your IP address has been blacklisted
135
+ "sender envelope domain not allowed for sender IP address",
136
+ "your domain has been blocked",
137
+ "your email address has been blocked",
138
+ "your envelope sender is in my badmailfrom list",
139
+ "your email address has been blacklisted",
140
+ "your domain has been blacklisted",
141
+ ],
9
142
  "securityerror" => ["Please turn on SMTP Authentication in your mail client"],
10
- "userunknown" => ["542 ", " Rejected", "No such user"],
143
+ "spamdetected" => [
144
+ # - https://knowledge.broadcom.com/external/article/173867
145
+ # Legitimate email, either outbound or inbound, is incorrectly flagged as spam
146
+ # (false positive) by Email Security.cloud. This email may have the following errors:
147
+ # * 553 - Message Filtered
148
+ # * filtered by Outbound scanning.
149
+ "Message Filtered",
150
+ "filtered by Outbound scanning",
151
+ ],
152
+ "userunknown" => [
153
+ # - https://knowledge.broadcom.com/external/article/165163
154
+ # When sending email to a user on the Symantec Email Security.cloud service, the
155
+ # message is rejected. The sender receives a non-delivery email with a 500 series
156
+ # error code indicating that the recipient is invalid.
157
+ # <username@example.com>: 550-Invalid recipient <username@example.com> 550 (#5.1.1)
158
+ # - 553 Recipient mailbox is not allowed
159
+ # The error message indicates that you have sent an email to an invalid address
160
+ # in the recipient’s domain. Double-check the email address for any spelling errors.
161
+ # - https://knowledge.broadcom.com/external/article/175710
162
+ # This error indicates that you have sent an email to an invalid address to the
163
+ # recipient’s domain. "Recipient mailbox is not allowed"
164
+ "No such user",
165
+ "Invalid recipient",
166
+ "mailbox is not allowed",
167
+ "Recipient mailbox is not allowed",
168
+ ],
11
169
  }.freeze
12
170
 
13
171
  # Detect bounce reason from Email Security (formerly MessageLabs.com)
@@ -22,7 +180,7 @@ module Sisimai
22
180
 
23
181
  MessagesOf.each_key do |e|
24
182
  # Try to match the error message with message patterns defined in $MessagesOf
25
- next unless MessagesOf[e].any? { |a| issuedcode.include?(a) }
183
+ next if MessagesOf[e].none? { |a| issuedcode.include?(a) }
26
184
  reasontext = e
27
185
  break
28
186
  end