sisimai 5.0.3 → 5.2.0
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 +3 -1
- data/.github/workflows/rake-test.yml +7 -3
- data/ChangeLog.md +136 -0
- data/Makefile +4 -2
- data/README-JA.md +32 -22
- data/README.md +31 -21
- data/lib/sisimai/arf.rb +124 -213
- data/lib/sisimai/fact/json.rb +2 -2
- data/lib/sisimai/fact/yaml.rb +2 -2
- data/lib/sisimai/fact.rb +208 -173
- data/lib/sisimai/lda.rb +98 -0
- data/lib/sisimai/lhost/activehunter.rb +5 -4
- data/lib/sisimai/lhost/amazonses.rb +189 -305
- data/lib/sisimai/lhost/apachejames.rb +52 -55
- data/lib/sisimai/lhost/biglobe.rb +5 -6
- data/lib/sisimai/lhost/courier.rb +14 -12
- data/lib/sisimai/lhost/domino.rb +29 -29
- data/lib/sisimai/lhost/dragonfly.rb +113 -0
- data/lib/sisimai/lhost/einsundeins.rb +7 -8
- data/lib/sisimai/lhost/exchange2003.rb +10 -11
- data/lib/sisimai/lhost/exchange2007.rb +115 -104
- data/lib/sisimai/lhost/exim.rb +236 -246
- data/lib/sisimai/lhost/ezweb.rb +47 -55
- data/lib/sisimai/lhost/fml.rb +6 -7
- data/lib/sisimai/lhost/gmail.rb +36 -32
- data/lib/sisimai/lhost/gmx.rb +8 -20
- data/lib/sisimai/lhost/googlegroups.rb +13 -12
- data/lib/sisimai/lhost/googleworkspace.rb +94 -0
- data/lib/sisimai/lhost/imailserver.rb +11 -19
- data/lib/sisimai/lhost/interscanmss.rb +6 -5
- data/lib/sisimai/lhost/kddi.rb +7 -8
- data/lib/sisimai/lhost/mailfoundry.rb +6 -9
- data/lib/sisimai/lhost/mailmarshalsmtp.rb +6 -6
- data/lib/sisimai/lhost/messagingserver.rb +19 -17
- data/lib/sisimai/lhost/mfilter.rb +8 -7
- data/lib/sisimai/lhost/notes.rb +6 -8
- data/lib/sisimai/lhost/opensmtpd.rb +11 -9
- data/lib/sisimai/lhost/postfix.rb +29 -31
- data/lib/sisimai/lhost/qmail.rb +136 -112
- data/lib/sisimai/lhost/sendmail.rb +23 -22
- data/lib/sisimai/lhost/v5sendmail.rb +93 -64
- data/lib/sisimai/lhost/verizon.rb +6 -6
- data/lib/sisimai/lhost/x1.rb +4 -4
- data/lib/sisimai/lhost/x2.rb +4 -5
- data/lib/sisimai/lhost/x3.rb +5 -5
- data/lib/sisimai/lhost/x6.rb +4 -4
- data/lib/sisimai/lhost/zoho.rb +6 -6
- data/lib/sisimai/lhost.rb +21 -24
- data/lib/sisimai/mail/maildir.rb +1 -1
- data/lib/sisimai/mail/stdin.rb +1 -1
- data/lib/sisimai/message.rb +100 -153
- data/lib/sisimai/order.rb +22 -77
- data/lib/sisimai/reason/authfailure.rb +1 -4
- data/lib/sisimai/reason/badreputation.rb +3 -3
- data/lib/sisimai/reason/blocked.rb +7 -10
- data/lib/sisimai/reason/contenterror.rb +7 -1
- data/lib/sisimai/reason/exceedlimit.rb +1 -4
- data/lib/sisimai/reason/failedstarttls.rb +42 -0
- data/lib/sisimai/reason/filtered.rb +5 -4
- data/lib/sisimai/reason/hasmoved.rb +1 -2
- data/lib/sisimai/reason/hostunknown.rb +3 -3
- data/lib/sisimai/reason/mailboxfull.rb +2 -4
- data/lib/sisimai/reason/mailererror.rb +1 -2
- data/lib/sisimai/reason/mesgtoobig.rb +2 -4
- data/lib/sisimai/reason/norelaying.rb +3 -3
- data/lib/sisimai/reason/notaccept.rb +2 -3
- data/lib/sisimai/reason/notcompliantrfc.rb +10 -4
- data/lib/sisimai/reason/rejected.rb +2 -1
- data/lib/sisimai/reason/requireptr.rb +2 -2
- data/lib/sisimai/reason/securityerror.rb +1 -3
- data/lib/sisimai/reason/spamdetected.rb +6 -8
- data/lib/sisimai/reason/speeding.rb +1 -2
- data/lib/sisimai/reason/suppressed.rb +36 -0
- data/lib/sisimai/reason/suspend.rb +1 -3
- data/lib/sisimai/reason/systemerror.rb +5 -0
- data/lib/sisimai/reason/toomanyconn.rb +1 -2
- data/lib/sisimai/reason/userunknown.rb +1 -1
- data/lib/sisimai/reason/virusdetected.rb +5 -6
- data/lib/sisimai/reason.rb +82 -78
- data/lib/sisimai/rfc1123.rb +152 -0
- data/lib/sisimai/rfc1894.rb +102 -62
- data/lib/sisimai/rfc2045.rb +2 -1
- data/lib/sisimai/rfc3464/thirdparty.rb +102 -0
- data/lib/sisimai/rfc3464.rb +224 -345
- data/lib/sisimai/rfc3834.rb +3 -3
- data/lib/sisimai/rfc5322.rb +7 -17
- data/lib/sisimai/rfc791.rb +69 -0
- data/lib/sisimai/rhost/aol.rb +36 -0
- data/lib/sisimai/rhost/apple.rb +95 -0
- data/lib/sisimai/rhost/cox.rb +84 -34
- data/lib/sisimai/rhost/facebook.rb +100 -0
- data/lib/sisimai/rhost/franceptt.rb +87 -83
- data/lib/sisimai/rhost/godaddy.rb +208 -45
- data/lib/sisimai/rhost/google.rb +22 -22
- data/lib/sisimai/rhost/gsuite.rb +42 -0
- data/lib/sisimai/rhost/iua.rb +5 -5
- data/lib/sisimai/rhost/kddi.rb +9 -7
- data/lib/sisimai/rhost/messagelabs.rb +37 -0
- data/lib/sisimai/rhost/microsoft.rb +60 -54
- data/lib/sisimai/rhost/mimecast.rb +44 -31
- data/lib/sisimai/rhost/nttdocomo.rb +5 -4
- data/lib/sisimai/rhost/outlook.rb +36 -0
- data/lib/sisimai/rhost/spectrum.rb +102 -41
- data/lib/sisimai/rhost/tencent.rb +48 -26
- data/lib/sisimai/rhost/yahooinc.rb +111 -0
- data/lib/sisimai/rhost.rb +65 -42
- data/lib/sisimai/smtp/command.rb +31 -21
- data/lib/sisimai/smtp/failure.rb +103 -0
- data/lib/sisimai/smtp/reply.rb +29 -24
- data/lib/sisimai/smtp/status.rb +36 -19
- data/lib/sisimai/smtp/transcript.rb +18 -18
- data/lib/sisimai/string.rb +0 -46
- data/lib/sisimai/version.rb +1 -1
- data/lib/sisimai.rb +0 -6
- data/set-of-emails/maildir/bsd/lhost-dragonfly-01.eml +36 -0
- data/set-of-emails/maildir/bsd/lhost-dragonfly-02.eml +32 -0
- data/set-of-emails/maildir/bsd/lhost-dragonfly-03.eml +32 -0
- data/set-of-emails/maildir/bsd/lhost-dragonfly-04.eml +31 -0
- data/set-of-emails/maildir/bsd/lhost-dragonfly-05.eml +32 -0
- data/set-of-emails/maildir/bsd/lhost-dragonfly-06.eml +32 -0
- data/set-of-emails/maildir/bsd/lhost-dragonfly-07.eml +32 -0
- data/set-of-emails/maildir/bsd/lhost-dragonfly-08.eml +32 -0
- data/set-of-emails/maildir/bsd/lhost-dragonfly-09.eml +32 -0
- data/set-of-emails/maildir/bsd/lhost-dragonfly-10.eml +32 -0
- data/set-of-emails/maildir/bsd/lhost-dragonfly-11.eml +32 -0
- data/set-of-emails/maildir/bsd/lhost-dragonfly-12.eml +32 -0
- data/set-of-emails/maildir/bsd/lhost-dragonfly-13.eml +32 -0
- data/set-of-emails/maildir/bsd/lhost-dragonfly-14.eml +32 -0
- data/set-of-emails/maildir/bsd/lhost-dragonfly-15.eml +32 -0
- data/set-of-emails/maildir/bsd/lhost-dragonfly-16.eml +32 -0
- data/set-of-emails/maildir/bsd/lhost-dragonfly-17.eml +32 -0
- data/set-of-emails/maildir/bsd/lhost-dragonfly-18.eml +32 -0
- data/set-of-emails/maildir/bsd/lhost-dragonfly-19.eml +32 -0
- data/set-of-emails/maildir/bsd/lhost-dragonfly-20.eml +32 -0
- data/set-of-emails/maildir/bsd/lhost-dragonfly-21.eml +33 -0
- data/set-of-emails/maildir/bsd/lhost-dragonfly-22.eml +32 -0
- data/set-of-emails/maildir/bsd/lhost-dragonfly-23.eml +32 -0
- data/set-of-emails/maildir/bsd/lhost-dragonfly-24.eml +32 -0
- data/set-of-emails/maildir/bsd/lhost-dragonfly-25.eml +33 -0
- data/set-of-emails/maildir/bsd/lhost-dragonfly-26.eml +33 -0
- data/set-of-emails/maildir/bsd/lhost-dragonfly-27.eml +47 -0
- data/set-of-emails/maildir/bsd/lhost-dragonfly-28.eml +47 -0
- data/set-of-emails/maildir/bsd/lhost-dragonfly-29.eml +32 -0
- data/set-of-emails/maildir/bsd/lhost-dragonfly-30.eml +32 -0
- data/set-of-emails/maildir/bsd/lhost-opensmtpd-10.eml +58 -0
- data/set-of-emails/maildir/bsd/lhost-opensmtpd-11.eml +58 -0
- data/set-of-emails/maildir/bsd/lhost-opensmtpd-12.eml +62 -0
- data/set-of-emails/maildir/bsd/lhost-opensmtpd-13.eml +62 -0
- data/set-of-emails/maildir/bsd/lhost-opensmtpd-14.eml +58 -0
- data/set-of-emails/maildir/bsd/lhost-opensmtpd-15.eml +63 -0
- data/set-of-emails/maildir/bsd/lhost-opensmtpd-16.eml +62 -0
- data/set-of-emails/maildir/bsd/lhost-opensmtpd-17.eml +63 -0
- data/set-of-emails/maildir/bsd/lhost-postfix-30.eml +81 -81
- data/set-of-emails/maildir/bsd/lhost-qmail-11.eml +29 -0
- data/set-of-emails/maildir/bsd/lhost-qmail-12.eml +29 -0
- data/set-of-emails/maildir/bsd/lhost-qmail-13.eml +29 -0
- data/set-of-emails/maildir/bsd/lhost-qmail-14.eml +34 -0
- data/set-of-emails/maildir/bsd/lhost-qmail-15.eml +30 -0
- data/set-of-emails/maildir/bsd/lhost-qmail-16.eml +31 -0
- data/set-of-emails/maildir/bsd/lhost-qmail-17.eml +38 -0
- data/set-of-emails/maildir/bsd/lhost-qmail-18.eml +31 -0
- data/set-of-emails/maildir/bsd/lhost-qmail-19.eml +31 -0
- data/set-of-emails/maildir/bsd/lhost-qmail-20.eml +46 -0
- data/set-of-emails/maildir/bsd/lhost-qmail-21.eml +41 -0
- data/set-of-emails/maildir/bsd/lhost-qmail-22.eml +42 -0
- data/set-of-emails/maildir/bsd/lhost-qmail-23.eml +43 -0
- data/set-of-emails/maildir/bsd/lhost-qmail-24.eml +43 -0
- data/set-of-emails/maildir/bsd/lhost-qmail-25.eml +54 -0
- data/set-of-emails/maildir/bsd/{lhost-aol-03.eml → rhost-aol-03.eml} +1264 -1264
- data/set-of-emails/maildir/bsd/{lhost-aol-04.eml → rhost-aol-04.eml} +1260 -1260
- data/set-of-emails/maildir/bsd/{lhost-aol-05.eml → rhost-aol-05.eml} +105 -105
- data/set-of-emails/maildir/bsd/{lhost-aol-06.eml → rhost-aol-06.eml} +105 -105
- data/set-of-emails/maildir/bsd/rhost-apple-01.eml +79 -0
- data/set-of-emails/maildir/bsd/rhost-apple-02.eml +81 -0
- data/set-of-emails/maildir/bsd/rhost-apple-03.eml +75 -0
- data/set-of-emails/maildir/bsd/rhost-apple-04.eml +74 -0
- data/set-of-emails/maildir/bsd/rhost-gsuite-01.eml +189 -0
- data/set-of-emails/maildir/bsd/rhost-gsuite-02.eml +180 -0
- data/set-of-emails/maildir/bsd/rhost-gsuite-03.eml +251 -0
- data/set-of-emails/maildir/bsd/rhost-gsuite-04.eml +211 -0
- data/set-of-emails/maildir/bsd/rhost-gsuite-05.eml +226 -0
- data/set-of-emails/maildir/bsd/rhost-gsuite-06.eml +257 -0
- data/set-of-emails/maildir/bsd/rhost-gsuite-07.eml +289 -0
- data/set-of-emails/maildir/bsd/rhost-gsuite-08.eml +231 -0
- data/set-of-emails/maildir/bsd/rhost-gsuite-09.eml +231 -0
- data/set-of-emails/maildir/bsd/rhost-gsuite-10.eml +254 -0
- data/set-of-emails/maildir/bsd/rhost-gsuite-11.eml +228 -0
- data/set-of-emails/maildir/bsd/rhost-gsuite-12.eml +271 -0
- data/set-of-emails/maildir/bsd/rhost-gsuite-13.eml +261 -0
- data/set-of-emails/maildir/bsd/rhost-gsuite-14.eml +273 -0
- data/set-of-emails/maildir/bsd/rhost-gsuite-15.eml +229 -0
- data/set-of-emails/maildir/bsd/{lhost-messagelabs-01.eml → rhost-messagelabs-01.eml} +93 -93
- data/set-of-emails/maildir/bsd/rhost-outlook-01.eml +72 -0
- data/set-of-emails/maildir/bsd/rhost-outlook-02.eml +72 -0
- data/set-of-emails/maildir/bsd/rhost-outlook-03.eml +72 -0
- data/set-of-emails/maildir/bsd/rhost-outlook-04.eml +79 -0
- data/set-of-emails/maildir/bsd/rhost-outlook-06.eml +75 -0
- data/set-of-emails/maildir/bsd/rhost-outlook-07.eml +70 -0
- data/set-of-emails/maildir/bsd/rhost-outlook-08.eml +70 -0
- data/set-of-emails/maildir/bsd/rhost-outlook-09.eml +56 -0
- data/set-of-emails/maildir/bsd/rhost-yahooinc-01.eml +80 -0
- data/set-of-emails/maildir/bsd/rhost-yahooinc-02.eml +83 -0
- data/set-of-emails/maildir/bsd/rhost-yahooinc-03.eml +125 -0
- data/set-of-emails/maildir/tmp/arf-22.eml +49 -0
- data/set-of-emails/maildir/tmp/arf-23.eml +49 -0
- data/set-of-emails/maildir/tmp/arf-24.eml +50 -0
- data/set-of-emails/maildir/tmp/lhost-exim-07.eml +28 -0
- metadata +136 -56
- data/lib/sisimai/lhost/amavis.rb +0 -163
- data/lib/sisimai/lhost/amazonworkmail.rb +0 -127
- data/lib/sisimai/lhost/aol.rb +0 -125
- data/lib/sisimai/lhost/barracuda.rb +0 -92
- data/lib/sisimai/lhost/bigfoot.rb +0 -125
- data/lib/sisimai/lhost/facebook.rb +0 -188
- data/lib/sisimai/lhost/gsuite.rb +0 -194
- data/lib/sisimai/lhost/mailru.rb +0 -214
- data/lib/sisimai/lhost/mcafee.rb +0 -109
- data/lib/sisimai/lhost/messagelabs.rb +0 -119
- data/lib/sisimai/lhost/mxlogic.rb +0 -198
- data/lib/sisimai/lhost/office365.rb +0 -252
- data/lib/sisimai/lhost/outlook.rb +0 -129
- data/lib/sisimai/lhost/powermta.rb +0 -118
- data/lib/sisimai/lhost/receivingses.rb +0 -126
- data/lib/sisimai/lhost/sendgrid.rb +0 -150
- data/lib/sisimai/lhost/surfcontrol.rb +0 -105
- data/lib/sisimai/lhost/x4.rb +0 -269
- data/lib/sisimai/lhost/x5.rb +0 -112
- data/lib/sisimai/lhost/yahoo.rb +0 -102
- data/lib/sisimai/lhost/yandex.rb +0 -118
- data/lib/sisimai/mda.rb +0 -121
- data/lib/sisimai/smtp/error.rb +0 -119
- /data/set-of-emails/maildir/bsd/{lhost-googlegroups-15.eml → lhost-googleworkspace-01.eml} +0 -0
- /data/set-of-emails/maildir/bsd/{lhost-x4-08.eml → lhost-x2-06.eml} +0 -0
- /data/set-of-emails/maildir/bsd/{lhost-gsuite-01.eml → rfc3464-51.eml} +0 -0
- /data/set-of-emails/maildir/bsd/{lhost-gsuite-03.eml → rfc3464-52.eml} +0 -0
- /data/set-of-emails/maildir/bsd/{lhost-gsuite-04.eml → rfc3464-53.eml} +0 -0
- /data/set-of-emails/maildir/bsd/{lhost-gsuite-05.eml → rfc3464-54.eml} +0 -0
- /data/set-of-emails/maildir/bsd/{lhost-gsuite-06.eml → rfc3464-55.eml} +0 -0
- /data/set-of-emails/maildir/bsd/{lhost-gsuite-07.eml → rfc3464-56.eml} +0 -0
- /data/set-of-emails/maildir/bsd/{lhost-gsuite-08.eml → rfc3464-57.eml} +0 -0
- /data/set-of-emails/maildir/bsd/{lhost-gsuite-09.eml → rfc3464-58.eml} +0 -0
- /data/set-of-emails/maildir/bsd/{lhost-gsuite-10.eml → rfc3464-59.eml} +0 -0
- /data/set-of-emails/maildir/bsd/{lhost-gsuite-11.eml → rfc3464-60.eml} +0 -0
- /data/set-of-emails/maildir/bsd/{lhost-gsuite-12.eml → rfc3464-61.eml} +0 -0
- /data/set-of-emails/maildir/bsd/{lhost-gsuite-13.eml → rfc3464-62.eml} +0 -0
- /data/set-of-emails/maildir/bsd/{lhost-gsuite-14.eml → rfc3464-63.eml} +0 -0
- /data/set-of-emails/maildir/bsd/{lhost-gsuite-15.eml → rfc3464-64.eml} +0 -0
- /data/set-of-emails/maildir/bsd/{lhost-gsuite-02.eml → rfc3464-65.eml} +0 -0
- /data/set-of-emails/maildir/bsd/{lhost-aol-01.eml → rhost-aol-01.eml} +0 -0
- /data/set-of-emails/maildir/bsd/{lhost-aol-02.eml → rhost-aol-02.eml} +0 -0
- /data/set-of-emails/maildir/bsd/{lhost-facebook-03.eml → rhost-facebook-03.eml} +0 -0
- /data/set-of-emails/maildir/bsd/{lhost-facebook-04.eml → rhost-facebook-04.eml} +0 -0
- /data/set-of-emails/maildir/bsd/{lhost-messagelabs-02.eml → rhost-messagelabs-02.eml} +0 -0
- /data/set-of-emails/maildir/bsd/{lhost-messagelabs-03.eml → rhost-messagelabs-03.eml} +0 -0
- /data/set-of-emails/maildir/{bsd → tmp}/rfc3464-37.eml +0 -0
- /data/set-of-emails/maildir/{bsd → tmp}/rfc3464-38.eml +0 -0
- /data/set-of-emails/maildir/{bsd → tmp}/rfc3464-39.eml +0 -0
@@ -1,149 +1,153 @@
|
|
1
1
|
module Sisimai
|
2
2
|
module Rhost
|
3
3
|
# Sisimai::Rhost detects the bounce reason from the content of Sisimai::Fact object as an argument
|
4
|
-
# of
|
4
|
+
# of find() method when the value of "rhost" of the object is "*.laposte.net" or "*.orange.fr".
|
5
5
|
# This class is called only Sisimai::Fact class.
|
6
6
|
module FrancePTT
|
7
7
|
class << self
|
8
8
|
ErrorCodes = {
|
9
|
-
# 550 5.7.1 Service unavailable; client [
|
10
|
-
#
|
11
|
-
#
|
12
|
-
#
|
13
|
-
#
|
14
|
-
#
|
9
|
+
# - 550 5.7.1 Service unavailable; client [192.0.2.1] blocked using Spamhaus
|
10
|
+
# Les emails envoyes vers la messagerie Laposte.net ont ete bloques par nos services.
|
11
|
+
# Afin de regulariser votre situation, nous vous invitons a cliquer sur le lien ci-dessous
|
12
|
+
# et a suivre la procedure.
|
13
|
+
# - The emails sent to the mail host Laposte.net were blocked by our services. To regularize
|
14
|
+
# your situation please click on the link below and follow the procedure
|
15
|
+
# https://www.spamhaus.org/lookup/ LPNAAA_101 (in reply to RCPT TO command))
|
15
16
|
'101' => 'blocked',
|
16
17
|
|
17
|
-
# 550 mwinf5c04 ME Adresse IP source bloquee pour incident de spam.
|
18
|
-
# Client host blocked for spamming issues. OFR006_102 Ref
|
19
|
-
#
|
20
|
-
#
|
21
|
-
#
|
22
|
-
# The emails sent to the mail host Laposte.net were blocked by our services.
|
23
|
-
#
|
24
|
-
#
|
18
|
+
# - 550 mwinf5c04 ME Adresse IP source bloquee pour incident de spam.
|
19
|
+
# - Client host blocked for spamming issues. OFR006_102 Ref http://csi.cloudmark.com ...
|
20
|
+
# - 550 5.5.0 Les emails envoyes vers la messagerie Laposte.net ont ete bloques par nos
|
21
|
+
# services. Afin de regulariser votre situation, nous vous invitons a cliquer sur le lien
|
22
|
+
# ci-dessous et a suivre la procedure.
|
23
|
+
# - The emails sent to the mail host Laposte.net were blocked by our services. To regularize
|
24
|
+
# your situation please click on the link below and follow the procedure
|
25
|
+
# https://senderscore.org/blacklistlookup/ LPN007_102
|
25
26
|
'102' => 'blocked',
|
26
27
|
|
27
|
-
#
|
28
|
-
# Service refused, please try later. OFR006_103
|
28
|
+
# - 550 mwinf5c10 ME Service refuse. Veuillez essayer plus tard.
|
29
|
+
# - Service refused, please try later. OFR006_103 192.0.2.1 [103]
|
29
30
|
'103' => 'blocked',
|
30
31
|
|
31
|
-
#
|
32
|
-
# Too many connections, slow down. OFR005_104 [104]
|
33
|
-
# Too many connections, slow down. LPN105_104
|
32
|
+
# - 421 mwinf5c79 ME Trop de connexions, veuillez verifier votre configuration.
|
33
|
+
# - Too many connections, slow down. OFR005_104 [104]
|
34
|
+
# - Too many connections, slow down. LPN105_104
|
34
35
|
'104' => 'toomanyconn',
|
35
36
|
|
36
|
-
# Veuillez essayer plus tard.
|
37
|
-
'
|
37
|
+
'105' => nil, # Veuillez essayer plus tard.
|
38
|
+
'107' => nil, # Service refused, please try later. LPN006_107
|
39
|
+
'108' => nil, # service refused, please try later. LPN001_108
|
40
|
+
'109' => nil, # Veuillez essayer plus tard. LPN003_109
|
41
|
+
'201' => nil, # Veuillez essayer plus tard. OFR004_201
|
38
42
|
|
39
|
-
#
|
40
|
-
# Service refused, please try later. LPN006_107)
|
41
|
-
'107' => nil,
|
42
|
-
|
43
|
-
# refused to talk to me: 550 5.5.0 Service refuse. Veuillez essayer plus tard.
|
44
|
-
# service refused, please try later. LPN001_108
|
45
|
-
'108' => nil,
|
46
|
-
|
47
|
-
# Veuillez essayer plus tard. LPN003_109
|
48
|
-
'109' => nil,
|
49
|
-
|
50
|
-
# Veuillez essayer plus tard. OFR004_201
|
51
|
-
'201' => nil,
|
52
|
-
|
53
|
-
# 550 5.7.0 Code d'authentification invalide OFR_305
|
43
|
+
# - 550 5.7.0 Code d'authentification invalide OFR_305
|
54
44
|
'305' => 'securityerror',
|
55
45
|
|
56
|
-
# 550 5.5.0 SPF: *** is not allowed to send mail. LPN004_401
|
57
|
-
'401' => '
|
46
|
+
# - 550 5.5.0 SPF: *** is not allowed to send mail. LPN004_401
|
47
|
+
'401' => 'authfailure',
|
58
48
|
|
59
|
-
# 550 5.5.0 Authentification requise. Authentication Required. LPN105_402
|
49
|
+
# - 550 5.5.0 Authentification requise. Authentication Required. LPN105_402
|
60
50
|
'402' => 'securityerror',
|
61
51
|
|
62
|
-
# 5.0.1 Emetteur invalide. Invalid Sender.
|
52
|
+
# - 5.0.1 Emetteur invalide. Invalid Sender.
|
63
53
|
'403' => 'rejected',
|
64
54
|
|
65
|
-
# 5.0.1 Emetteur invalide. Invalid Sender. LPN105_405
|
66
|
-
# 501 5.1.0 Emetteur invalide. Invalid Sender. OFR004_405 [405] (in reply to MAIL FROM command))
|
55
|
+
# - 5.0.1 Emetteur invalide. Invalid Sender. LPN105_405
|
56
|
+
# - 501 5.1.0 Emetteur invalide. Invalid Sender. OFR004_405 [405] (in reply to MAIL FROM command))
|
67
57
|
'405' => 'rejected',
|
68
58
|
|
69
59
|
# Emetteur invalide. Invalid Sender. OFR_415
|
70
60
|
'415' => 'rejected',
|
71
61
|
|
72
|
-
# 550 5.1.1 Adresse d au moins un destinataire invalide.
|
73
|
-
# Invalid recipient. LPN416 (in reply to RCPT TO command)
|
74
|
-
# Invalid recipient. OFR_416 [416] (in reply to RCPT TO command)
|
62
|
+
# - 550 5.1.1 Adresse d au moins un destinataire invalide.
|
63
|
+
# - Invalid recipient. LPN416 (in reply to RCPT TO command)
|
64
|
+
# - Invalid recipient. OFR_416 [416] (in reply to RCPT TO command)
|
75
65
|
'416' => 'userunknown',
|
76
66
|
|
77
|
-
# 552 5.1.1 Boite du destinataire pleine.
|
78
|
-
# Recipient overquota. OFR_417 [417] (in reply to RCPT TO command))
|
67
|
+
# - 552 5.1.1 Boite du destinataire pleine.
|
68
|
+
# - Recipient overquota. OFR_417 [417] (in reply to RCPT TO command))
|
79
69
|
'417' => 'mailboxfull',
|
80
70
|
|
81
|
-
# Adresse d au moins un destinataire invalide
|
82
|
-
'418' => 'userunknown',
|
71
|
+
# - Adresse d au moins un destinataire invalide
|
83
72
|
|
84
|
-
# 550 5.5.0 Boite du destinataire archivee.
|
85
|
-
# Archived recipient. LPN007_420 (in reply to RCPT TO command)
|
73
|
+
# - 550 5.5.0 Boite du destinataire archivee.
|
74
|
+
# - Archived recipient. LPN007_420 (in reply to RCPT TO command)
|
86
75
|
'420' => 'suspend',
|
87
76
|
|
88
|
-
# 5.5.3 Mail from not owned by user. LPN105_421.
|
77
|
+
# - 5.5.3 Mail from not owned by user. LPN105_421.
|
89
78
|
'421' => 'rejected',
|
90
79
|
|
91
|
-
# Service refused, please try later. LPN105_423
|
92
|
-
'
|
80
|
+
'423' => nil, # Service refused, please try later. LPN105_423
|
81
|
+
'424' => nil, # Veuillez essayer plus tard. LPN105_424
|
93
82
|
|
94
|
-
#
|
95
|
-
|
96
|
-
|
97
|
-
# 550 5.5.0 Le compte du destinataire est bloque. The recipient account isblocked. LPN007_426 (in reply to RCPT TO command)
|
83
|
+
# - 550 5.5.0 Le compte du destinataire est bloque. The recipient account isblocked.
|
84
|
+
# LPN007_426 (in reply to RCPT TO command)
|
98
85
|
'426' => 'suspend',
|
99
86
|
|
100
|
-
# 421 4.2.0 Service refuse. Veuillez essayer plus tard.
|
101
|
-
#
|
102
|
-
#
|
103
|
-
#
|
104
|
-
# Service refused, please try later. LPN007_505 (in reply to end of DATA command)
|
87
|
+
# - 421 4.2.0 Service refuse. Veuillez essayer plus tard. Service refused, please try later.
|
88
|
+
# OFR005_505 [505] (in reply to end of DATA command)
|
89
|
+
# - 421 4.2.1 Service refuse. Veuillez essayer plus tard. Service refused, please try later.
|
90
|
+
# LPN007_505 (in reply to end of DATA command)
|
105
91
|
'505' => 'systemerror',
|
106
92
|
|
107
|
-
# Mail rejete. Mail rejected. OFR_506 [506]
|
93
|
+
# - Mail rejete. Mail rejected. OFR_506 [506]
|
108
94
|
'506' => 'spamdetected',
|
109
95
|
|
110
|
-
# 550 5.5.0 Service refuse. Veuillez essayer plus tard.
|
111
|
-
#
|
96
|
+
# - 550 5.5.0 Service refuse. Veuillez essayer plus tard. service refused, please try later.
|
97
|
+
# LPN005_510 (in reply to end of DATA command)
|
112
98
|
'510' => 'blocked',
|
113
99
|
|
114
|
-
# Mail rejete. Mail rejected. OUK_513
|
115
|
-
'513' => nil,
|
100
|
+
'513' => nil, # Mail rejete. Mail rejected. OUK_513
|
116
101
|
|
117
|
-
# Taille limite du message atteinte
|
102
|
+
# - Taille limite du message atteinte
|
118
103
|
'514' => 'mesgtoobig',
|
119
104
|
|
120
|
-
# 571 5.7.1 Message refused, DMARC verification Failed.
|
121
|
-
# Message refuse, verification DMARC en echec LPN007_517
|
122
|
-
'517' => '
|
105
|
+
# - 571 5.7.1 Message refused, DMARC verification Failed.
|
106
|
+
# - Message refuse, verification DMARC en echec LPN007_517
|
107
|
+
'517' => 'authfailure',
|
123
108
|
|
124
|
-
# 554 5.7.1 Client host rejected
|
125
|
-
# LPN000_630
|
109
|
+
# - 554 5.7.1 Client host rejected LPN000_630
|
126
110
|
'630' => 'policyviolation',
|
127
111
|
|
128
|
-
# 421 mwinf5c77 ME Service refuse. Veuillez essayer plus tard.
|
129
|
-
#
|
112
|
+
# - 421 mwinf5c77 ME Service refuse. Veuillez essayer plus tard. Service refused, please try
|
113
|
+
# later. OFR_999 [999]
|
130
114
|
'999' => 'blocked',
|
131
115
|
}.freeze
|
116
|
+
MessagesOf = {
|
117
|
+
'authfailure' => [
|
118
|
+
# - 421 smtp.orange.fr [192.0.2.1] Emetteur invalide, Veuillez verifier la configuration
|
119
|
+
# SPF/DNS de votre nom de domaine. Invalid Sender. SPF check failed, please verify the
|
120
|
+
# SPF/DNS configuration for your domain name.
|
121
|
+
'spf/dns de votre nom de domaine',
|
122
|
+
],
|
123
|
+
}.freeze
|
132
124
|
|
133
125
|
# Detect bounce reason from Oranage or La Poste
|
134
|
-
# @param [Sisimai::Fact] argvs
|
126
|
+
# @param [Sisimai::Fact] argvs Decoded email object
|
135
127
|
# @return [String] The bounce reason for Orange or La Poste
|
136
|
-
|
137
|
-
|
138
|
-
|
139
|
-
|
128
|
+
# @see https://www.postmastery.com/orange-postmaster-smtp-error-codes-ofr/
|
129
|
+
# https://smtpfieldmanual.com/provider/orange
|
130
|
+
def find(argvs)
|
131
|
+
return "" if argvs["diagnosticcode"].empty?
|
132
|
+
issuedcode = argvs['diagnosticcode']
|
140
133
|
reasontext = ''
|
141
134
|
|
142
|
-
if cv =
|
135
|
+
if cv = issuedcode.match(/\b(LPN|LPNAAA|OFR|OUK)(_[0-9]{3}|[0-9]{3}[-_][0-9]{3})\b/i)
|
143
136
|
# OUK_513, LPN105-104, OFR102-104, ofr_506
|
144
137
|
v = sprintf("%03d", (cv[1] + cv[2])[-3, 3])
|
145
138
|
reasontext = ErrorCodes[v] || 'undefined'
|
146
139
|
end
|
140
|
+
return reasontext if reasontext.size > 0
|
141
|
+
|
142
|
+
issuedcode = issuedcode.downcase
|
143
|
+
MessagesOf.each_key do |e|
|
144
|
+
MessagesOf[e].each do |f|
|
145
|
+
next unless issuedcode.include?(f)
|
146
|
+
reasontext = e
|
147
|
+
break
|
148
|
+
end
|
149
|
+
break if reasontext.size > 0
|
150
|
+
end
|
147
151
|
return reasontext
|
148
152
|
end
|
149
153
|
|
@@ -1,65 +1,228 @@
|
|
1
1
|
module Sisimai
|
2
2
|
module Rhost
|
3
3
|
# Sisimai::Rhost detects the bounce reason from the content of Sisimai::Fact object as an argument
|
4
|
-
# of
|
4
|
+
# of find() method when the value of "rhost" of the object is "*.secureserver.net". This class is
|
5
5
|
# called only Sisimai::Fact class.
|
6
6
|
module GoDaddy
|
7
7
|
class << self
|
8
8
|
# https://www.godaddy.com/help/what-does-my-email-bounceback-mean-3568
|
9
9
|
ErrorCodes = {
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
'
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
'
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
'
|
29
|
-
|
30
|
-
|
10
|
+
# Sender bounces
|
11
|
+
# ---------------------------------------------------------------------------------------
|
12
|
+
# - 535 Authentication not allowed on IBSMTP Servers. IB401
|
13
|
+
# - Authentication is not allowed on inbound mail. This happens when you have incorrect
|
14
|
+
# outgoing SMTP server settings set up in your email client, like Outlook or Gmail.
|
15
|
+
# - Set up your email client using the SMTP server setting smtpout.secureserver.net.
|
16
|
+
'IB401' => 'securityerror',
|
17
|
+
|
18
|
+
# - 550 jane@coolexample.com Blank From: addresses are not allowed. Provide a valid From.
|
19
|
+
# IB501
|
20
|
+
# - The email message "from" field is blank.
|
21
|
+
# - Add a valid "from" address and try to send the email again.
|
22
|
+
'IB501' => 'notcompliantrfc',
|
23
|
+
|
24
|
+
# - 550 jane@coolexample.com IP addresses are not allowed as a From: Address. Provide a
|
25
|
+
# valid From. IB502
|
26
|
+
# - Email messages can't be sent "from" an IP address.
|
27
|
+
# - Add a valid "from" address and try to send the email again.
|
28
|
+
'IB502' => 'notcompliantrfc',
|
29
|
+
|
30
|
+
# - 550 coolexample.com From: Domain is invalid. Provide a valid From: IB506
|
31
|
+
# - The domain doesn't have valid MX Records, an IP address, or there were issues during
|
32
|
+
# the DNS lookup when the email was sent.
|
33
|
+
# - Verify that you're sending from a valid domain. Then verify that the domain has valid
|
34
|
+
# DNS records by checking your zone file. If the DNS isn't valid, it must be fixed
|
35
|
+
# before you resend the email.
|
36
|
+
'IB506' => 'rejected',
|
37
|
+
|
38
|
+
# - 550 jane@coolexample.com Invalid SPF record. Inspect your SPF settings, and try again.
|
39
|
+
# IB508
|
40
|
+
# - The sending email address's domain has an SPF record that does not authorize the
|
41
|
+
# sending email server to send email from the domain.
|
42
|
+
# - Modify the SPF record to include the server you're trying to send from or remove the
|
43
|
+
# SPF record from the domain.
|
44
|
+
'IB508' => 'authfailure',
|
45
|
+
|
46
|
+
# - 421 Temporarily rejected. Reverse DNS for this IP failed. IB108
|
47
|
+
# - The IP address attempting to send mail does not have reverse DNS setup, or the DNS
|
48
|
+
# lookup failed.
|
49
|
+
# - Verify the sending IP address has reverse DNS set up before resending the email.
|
50
|
+
# GoDaddy manages reverse DNS when using our email services. We do not support custom
|
51
|
+
# reverse DNS.
|
52
|
+
'IB108' => 'requireptr',
|
53
|
+
|
54
|
+
# Content bounces
|
55
|
+
# ---------------------------------------------------------------------------------------
|
56
|
+
# - 552 This message has been rejected due to content judged to be spam by the internet
|
57
|
+
# community. IB212
|
58
|
+
# - The email message contains a link, attachment or pattern caught by our filters as spam.
|
59
|
+
'IB212' => 'spamdetected',
|
60
|
+
|
61
|
+
# - 552 Virus infected message rejected. IB705
|
62
|
+
# - The email message containing a link, attachment or pattern caught by our filters as a
|
63
|
+
# possible virus.
|
64
|
+
'IB705' => 'virusdetected',
|
65
|
+
|
66
|
+
# Rate limiting bounces
|
67
|
+
# ---------------------------------------------------------------------------------------
|
68
|
+
# - 452 This message contains too many recipients. Reduce the number of recipients and
|
69
|
+
# retry. IB605
|
70
|
+
# - The message has attempted to mail too many recipients.
|
71
|
+
# - Reduce the number of recipients and try again.
|
72
|
+
'IB605' => 'toomanyconn',
|
73
|
+
|
74
|
+
# - 421 Connection refused, too many sessions from This IP. Lower the number of concurrent
|
75
|
+
# sessions. IB007
|
76
|
+
# - This IP address currently has too many sessions open.
|
77
|
+
# - Check with your email provider to reduce the number of open sessions on your IP
|
78
|
+
# address and then try again.
|
79
|
+
'IB007' => 'toomanyconn',
|
80
|
+
|
81
|
+
# - 421 Server temporarily unavailable. Try again later. IB101
|
82
|
+
# - The email queue is experiencing higher than normal email volume.
|
83
|
+
# - Try again later.
|
84
|
+
'IB101' => 'speeding',
|
85
|
+
|
86
|
+
# - 554 This IP has been temporarily blocked for attempting to send too many messages
|
87
|
+
# containing content judged to be spam by the Internet community. IB110
|
88
|
+
# - This IP address has attempted to send too many messages containing content judged to
|
89
|
+
# be spam and has been blocked for an hour.
|
90
|
+
# - If you're not sending spam, you'll need to contact your Internet Service Provider
|
91
|
+
# (ISP) to see why your IP address is sending so many emails. Something in your system
|
92
|
+
# is causing the issue, and you'll need to troubleshoot.
|
93
|
+
'IB110' => 'blocked',
|
94
|
+
|
95
|
+
# - 554 This IP has been blocked for the day, for attempting to send too many messages
|
96
|
+
# containing content judged to be spam by the Internet community. IB111
|
97
|
+
# - This IP address has attempted to send too many messages containing content judged to
|
98
|
+
# be spam and has been blocked for the remainder of the day.
|
99
|
+
'IB111' => 'blocked',
|
100
|
+
|
101
|
+
# - 554 This IP has been temporarily blocked for attempting to mail too many invalid
|
102
|
+
# recipients. IB112
|
103
|
+
# - This IP address has attempted to email too many invalid recipients and has been
|
104
|
+
# blocked for an hour.
|
105
|
+
'IB112' => 'blocked',
|
106
|
+
|
107
|
+
# - 554 This IP has been blocked for the day, for attempting to mail too many invalid
|
108
|
+
# recipients. IB113
|
109
|
+
# - This IP address has attempted to email too many invalid recipients and has been
|
110
|
+
# blocked for the remainder of the day.
|
111
|
+
'IB113' => 'blocked',
|
112
|
+
|
113
|
+
# - 550 This IP has sent too many messages this hour. IB504
|
114
|
+
# - This IP address has reached the maximum allowed messages for that hour.
|
115
|
+
'IB504' => 'speeding',
|
116
|
+
|
117
|
+
# - 550 This message has exceeded the max number of messages per session. Open a new
|
118
|
+
# session and try again. IB510
|
119
|
+
# - This IP address has reached the maximum allowed messages for that session.
|
120
|
+
'IB510' => 'speeding',
|
121
|
+
|
122
|
+
# - 550 This IP has sent too many to too many recipients this hour. IB607
|
123
|
+
# - This IP address has reached the maximum allowed recipients for that hour.
|
124
|
+
'IB607' => 'speeding',
|
125
|
+
|
126
|
+
# Remote block list (RBL) bounces
|
127
|
+
# ---------------------------------------------------------------------------------------
|
128
|
+
# - 554 Connection refused. This IP has a poor reputation on Cloudmark Sender Intelligence
|
129
|
+
# (CSI). IB103
|
130
|
+
# - This IP address has a poor reputation on Cloudmark Sender Intelligence (CSI).
|
131
|
+
'IB103' => 'badreputation',
|
132
|
+
|
133
|
+
# - 554 Connection refused. This IP address is listed on the Spamhaus Block List (SBL). IB104
|
134
|
+
# - This IP address is listed on the Spamhaus Block List.
|
135
|
+
'IB104' => 'blocked',
|
136
|
+
|
137
|
+
# - 554 Connection refused. This IP address is listed on the Exploits Block List (XBL). IB105
|
138
|
+
# - This IP address is listed on the Spamhaus Exploits Block List.
|
139
|
+
'IB105' => 'blocked',
|
140
|
+
|
141
|
+
# - 554 Connection refused. This IP address is listed on the Policy Block List (PBL). IB106
|
142
|
+
# - This IP address is listed on the Spamhaus Policy Block List.
|
143
|
+
'IB106' => 'blocked',
|
31
144
|
}.freeze
|
32
145
|
MessagesOf = {
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
'
|
146
|
+
'blocked' => [
|
147
|
+
# - 554 RBL Reject.
|
148
|
+
# - This IP address was blocked from our internal RBL.
|
149
|
+
# - Use the link provided in the bounceback to submit a request to remove this IP address.
|
150
|
+
'rbl reject',
|
151
|
+
'www.spamhaus.org/query/bl?ip='
|
152
|
+
],
|
153
|
+
'expired' => [
|
154
|
+
# - 451 Sorry, I wasn't able to establish an SMTP connection.
|
155
|
+
# I'm not going to try again; this message has been in the queue too long.
|
156
|
+
# - The recipient's email address has been misspelled or the recipient's email provider
|
157
|
+
# has blocked sending from your address.
|
158
|
+
'has been in the queue too long',
|
159
|
+
|
160
|
+
# - Delivery timeout
|
161
|
+
# - This could happen for several reasons.
|
162
|
+
'delivery timeout',
|
163
|
+
],
|
164
|
+
'mailboxfull' => [
|
165
|
+
# - Account storage limit
|
166
|
+
# - The recipient's account has reached its storage limit and can't receive email right
|
167
|
+
# now.
|
168
|
+
# - The recipient needs to delete messages from their inbox or the receiving folder to
|
169
|
+
# make space for more email.
|
170
|
+
'account storage limit',
|
171
|
+
],
|
172
|
+
'spamdetected' => [
|
173
|
+
# - 552 Message rejected for spam or virus content
|
174
|
+
# - The email message contains a link, attachment, or pattern caught by our filters as spam.
|
175
|
+
'message rejected for spam or virus content',
|
176
|
+
],
|
177
|
+
'suspend' => [
|
178
|
+
# - Account disabled
|
179
|
+
# - The recipient account exists but its ability to receive mail was disabled.
|
180
|
+
# - Typically, these accounts remain permanently disabled, but you can try sending the
|
181
|
+
# email again later.
|
182
|
+
'account disabled',
|
183
|
+
],
|
184
|
+
'systemerror' => [
|
185
|
+
# - This message is looping: it already has my Delivered-To line. (#5.4.6)
|
186
|
+
# - The recipient account is forwarding the message in a loop.
|
187
|
+
# - This is oftentimes because the receiver has two addresses that forward to each
|
188
|
+
# other. They need to correct their forwarding settings.
|
189
|
+
'message is looping',
|
190
|
+
],
|
191
|
+
'userunknown' => [
|
192
|
+
# - 550 Recipient not found
|
193
|
+
# - The recipient is not a valid email address.
|
194
|
+
# - Remove the invalid recipient from your email.
|
195
|
+
'recipient not found',
|
196
|
+
|
197
|
+
# - Account does not exist
|
198
|
+
# - The email address that you sent to does not exist.
|
199
|
+
# - Verify that the recipient email address was entered correctly.
|
200
|
+
'account does not exist'
|
201
|
+
],
|
38
202
|
}.freeze
|
39
203
|
|
40
204
|
# Detect bounce reason from GoDaddy
|
41
|
-
# @param [Sisimai::Fact] argvs
|
205
|
+
# @param [Sisimai::Fact] argvs Decoded email object
|
42
206
|
# @return [String] The bounce reason for GoDaddy
|
43
|
-
# @see https://
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
positionib =
|
207
|
+
# @see https://ca.godaddy.com/help/fix-rejected-email-with-a-bounce-error-40685
|
208
|
+
# @since v4.22.2
|
209
|
+
def find(argvs)
|
210
|
+
return "" if argvs["diagnosticcode"].empty?
|
211
|
+
issuedcode = argvs['diagnosticcode']
|
212
|
+
positionib = issuedcode.index(' IB') || -1
|
49
213
|
reasontext = ''
|
50
214
|
|
51
|
-
|
52
|
-
reasontext
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
end
|
61
|
-
break unless reasontext.empty?
|
215
|
+
reasontext = ErrorCodes[issuedcode[positionib + 1, 5]] || '' if positionib > 1
|
216
|
+
return reasontext if reasontext.size > 0
|
217
|
+
|
218
|
+
issuedcode = issuedcode.downcase
|
219
|
+
MessagesOf.each_key do |e|
|
220
|
+
MessagesOf[e].each do |f|
|
221
|
+
next unless issuedcode.include?(f)
|
222
|
+
reasontext = e
|
223
|
+
break
|
62
224
|
end
|
225
|
+
break if reasontext.size > 0
|
63
226
|
end
|
64
227
|
|
65
228
|
return reasontext
|
data/lib/sisimai/rhost/google.rb
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
module Sisimai
|
2
2
|
module Rhost
|
3
3
|
# Sisimai::Rhost detects the bounce reason from the content of Sisimai::Fact object as an argument
|
4
|
-
# of
|
4
|
+
# of find() method when the value of "rhost" of the object is "aspmx.l.google.com". This class is
|
5
5
|
# called only Sisimai::Fact class.
|
6
6
|
module Google
|
7
7
|
class << self
|
@@ -165,6 +165,22 @@ module Sisimai
|
|
165
165
|
# error messages. https://support.google.com/a/answer/3221692
|
166
166
|
['451', '4.4.2', 'timeout - closing connection'],
|
167
167
|
],
|
168
|
+
'failedstarttls' => [
|
169
|
+
# - 530 5.7.0 Must issue a STARTTLS command first. For more information, go to About
|
170
|
+
# SMTP error messages and review RFC 3207 specifications.
|
171
|
+
['530', '5.7.0', 'must issue a starttls command first'],
|
172
|
+
['454', '5.5.1', 'starttls may not be repeated'],
|
173
|
+
|
174
|
+
# - 421 4.7.0 TLS required for RCPT domain, closing connection. For more information,
|
175
|
+
# go to Email encryption in transit. https://support.google.com/mail/answer/6330403
|
176
|
+
['421', '4.7.0', 'tls required for rcpt domain'],
|
177
|
+
|
178
|
+
# - 421 4.7.29 Your email has been rate limited because this message wasn't sent over a
|
179
|
+
# TLS connection. Gmail requires all bulk email senders to use TLS/SSL for SMTP conn-
|
180
|
+
# ections.
|
181
|
+
['421', '4.7.29', 'senders to use tls/ssl for smtp'],
|
182
|
+
['550', '5.7.29', 'senders to use tls/ssl for smtp'],
|
183
|
+
],
|
168
184
|
'mailboxfull' => [
|
169
185
|
# - 452 4.2.2 The recipient's inbox is out of storage space.
|
170
186
|
# Please direct the recipient to https://support.google.com/mail/?p=OverQuotaTemp
|
@@ -322,12 +338,8 @@ module Sisimai
|
|
322
338
|
['550', '5.7.25', 'does not match the ip address of the hostname'],
|
323
339
|
],
|
324
340
|
'securityerror' => [
|
325
|
-
# - 421 4.7.0 TLS required for RCPT domain, closing connection. For more information,
|
326
|
-
# go to Email encryption in transit. https://support.google.com/mail/answer/6330403
|
327
|
-
#
|
328
341
|
# - 454 4.7.0 Too many login attempts, please try again later. For more information, go
|
329
342
|
# to Add Gmail to another email client. https://support.google.com/mail/answer/7126229
|
330
|
-
['421', '4.7.0', 'tls required for rcpt domain'],
|
331
343
|
['454', '4.7.0', 'too many login attempts'],
|
332
344
|
|
333
345
|
# - 503 5.7.0 No identity changes permitted. For more information, go to About SMTP
|
@@ -356,12 +368,6 @@ module Sisimai
|
|
356
368
|
# https://support.google.com/accounts/troubleshooter/2402620
|
357
369
|
['535', '5.7.1', 'username and password not accepted'],
|
358
370
|
['535', '5.7.8', 'username and password not accepted'],
|
359
|
-
|
360
|
-
# - 421 4.7.29 Your email has been rate limited because this message wasn't sent over a
|
361
|
-
# TLS connection. Gmail requires all bulk email senders to use TLS/SSL for SMTP conn-
|
362
|
-
# ections.
|
363
|
-
['421', '4.7.29', 'senders to use tls/ssl for smtp'],
|
364
|
-
['550', '5.7.29', 'senders to use tls/ssl for smtp'],
|
365
371
|
],
|
366
372
|
'spamdetected' => [
|
367
373
|
# - 421 4.7.0 This message is suspicious due to the nature of the content or the links
|
@@ -422,7 +428,6 @@ module Sisimai
|
|
422
428
|
['454', '4.5.0', 'smtp protocol violation'],
|
423
429
|
['525', '5.7.10', 'smtp protocol violation'],
|
424
430
|
['535', '5.5.4', 'optional argument not permitted'],
|
425
|
-
['454', '5.5.1', 'starttls may not be repeated'],
|
426
431
|
|
427
432
|
# - 501 5.5.2 Syntax error, cannot decode response. For more information, go to About
|
428
433
|
# SMTP error messages.
|
@@ -451,10 +456,6 @@ module Sisimai
|
|
451
456
|
['503', '5.5.1', 'no data after bdat'],
|
452
457
|
['504', '5.7.4', 'unrecognized authentication type'],
|
453
458
|
['504', '5.7.4', 'xoauth is no longer supported'],
|
454
|
-
|
455
|
-
# - 530 5.7.0 Must issue a STARTTLS command first. For more information, go to About
|
456
|
-
# SMTP error messages and review RFC 3207 specifications.
|
457
|
-
['530', '5.7.0', 'must issue a starttls command first'],
|
458
459
|
['554', '5.7.0', 'too many unauthenticated commands'],
|
459
460
|
],
|
460
461
|
'systemerror' => [
|
@@ -509,25 +510,24 @@ module Sisimai
|
|
509
510
|
}.freeze
|
510
511
|
|
511
512
|
# Detect bounce reason from Google Workspace
|
512
|
-
# @param [Sisimai::Fact] argvs
|
513
|
+
# @param [Sisimai::Fact] argvs Decoded email object
|
513
514
|
# @return [String] The bounce reason for Google Workspace
|
514
515
|
# @see https://support.google.com/a/answer/3726730?hl=en
|
515
|
-
def
|
516
|
-
return
|
517
|
-
return '' if argvs['diagnosticcode'].empty?
|
516
|
+
def find(argvs)
|
517
|
+
return "" if argvs["diagnosticcode"].empty?
|
518
518
|
return '' unless Sisimai::SMTP::Reply.test(argvs['replycode'])
|
519
519
|
return '' unless Sisimai::SMTP::Status.test(argvs['deliverystatus'])
|
520
520
|
|
521
521
|
statuscode = argvs['deliverystatus'][2,6]
|
522
522
|
esmtpreply = argvs['replycode'][1,2]
|
523
|
-
|
523
|
+
issuedcode = argvs['diagnosticcode'].downcase
|
524
524
|
reasontext = ''
|
525
525
|
|
526
526
|
MessagesOf.each_key do |e|
|
527
527
|
# Each key is a reason name
|
528
528
|
MessagesOf[e].each do |f|
|
529
529
|
# Try to match an SMTP reply code, a D.S.N, and an error message
|
530
|
-
next unless
|
530
|
+
next unless issuedcode.include?(f[2])
|
531
531
|
next unless f[0].end_with?(esmtpreply)
|
532
532
|
next unless f[1].end_with?(statuscode)
|
533
533
|
reasontext = e
|