Provided by: libsisimai-perl_5.0.1-1_all bug

NAME

       Sisimai::Reason - Detect the bounce reason

SYNOPSIS

           use Sisimai::Reason;

DESCRIPTION

       Sisimai::Reason detects the bounce reason from the content of Sisimai::Fact object as an argument of
       get() method. This class is called only Sisimai::Fact class.

CLASS METHODS

   "get(Sisimai::Fact Object)"
       get() detects the bounce reason.

   "anotherone(Sisimai::Fact object)"
       anotherone() is a method for detecting the bounce reason, it works as a fall back method of get() and
       called only from get() method.

       match() detects the bounce reason from given text as a error message.

   "match(String)"
       match() is a method for detecting the bounce reason from the string given as an argument of the method.
       However, this method is low analytical precision.

LIST OF BOUNCE REASONS

       "Sisimai::Reason-"get()> detects the reason of bounce with parsing the bounced messages. The following
       reasons will be set in the value of "reason" property of Sisimai::Fact instance.

   "blocked"
       This is the error that SMTP connection was rejected due to a client IP address or a hostname, or the
       parameter of "HELO/EHLO" command. This reason has added in Sisimai 4.0.0.

           <kijitora@example.net>:
           Connected to 192.0.2.112 but my name was rejected.
           Remote host said: 501 5.0.0 Invalid domain name

   "contenterror"
       This is the error that a destination mail server has rejected email due to header format of the email
       like the following. Sisimai will set "contenterror" to the reason of email bounce if the value of Status:
       field in a bounce email is "5.6.*".

       - 8 bit data in message header
       - Too many “Received” headers
       - Invalid MIME headers

           ... while talking to g5.example.net.:
           >>> DATA
           <<< 550 5.6.9 improper use of 8-bit data in message header
           554 5.0.0 Service unavailable

   "delivered"
       This is NOT AN ERROR and means the message you sent has delivered to recipients successfully.

           Final-Recipient: rfc822; kijitora@neko.nyaan.jp
           Action: delivered
           Status: 2.1.5
           Remote-MTA: dns; home.neko.nyaan.jp
           Diagnostic-Code: SMTP; 250 2.1.5 OK

   "exceedlimit"
       This is the error that a message was rejected due to an email exceeded the limit. The value of D.S.N.  is
       5.2.3. This reason is almost the same as "MesgTooBig", we think.

           ... while talking to mx.example.org.:
           >>> MAIL From:<kijitora@example.co.jp> SIZE=16600348
           <<< 552 5.2.3 Message size exceeds fixed maximum message size (10485760)
           554 5.0.0 Service unavailable

   "expired"
       This  is  the  error  that  delivery  time has expired due to connection failure or network error and the
       message you sent has been in the queue for long time.

   "feedback"
       The message you sent was forwarded to the sender as a complaint message from your mailbox provider.  When
       Sismai has set "feedback" to the reason, the value of "feedbacktype"  is  also  set  like  the  following
       parsed data.

   "filtered"
       This  is  the  error  that  an  email  has  been rejected by a header content after SMTP DATA command. In
       Japanese cellular phones, the error will incur that a sender's email address or a domain is  rejected  by
       recipient's  email  configuration. Sisimai will set "filtered" to the reason of email bounce if the value
       of Status: field in a bounce email is 5.2.0 or 5.2.1.

       This error reason is almost the same as UserUnknown.

           ... while talking to mfsmax.ntt.example.ne.jp.:
           >>> DATA
           <<< 550 Unknown user kijitora@ntt.example.ne.jp
           554 5.0.0 Service unavailable

   "hasmoved"
       This is the error that a user's mailbox has moved (and is not forwarded automatically). Sisimai will  set
       "hasmoved" to the reason of email bounce if the value of Status: field in a bounce email is 5.1.6.

           <kijitora@example.go.jp>: host mx1.example.go.jp[192.0.2.127] said: 550 5.1.6 recipient
               no longer on server: kijitora@example.go.jp (in reply to RCPT TO command)

   "hostunknown"
       This  is the error that a domain part (Right hand side of @ sign) of a recipient's email address does not
       exist. In many case, the domain part is misspelled, or the domain name has been expired. Sisimai will set
       "hostunknown" to the reason of email bounce if the value of Status: field in a bounce mail is 5.1.2.

           Your message to the following recipients cannot be delivered:

           <kijitora@example.cat>:
           <<< No such domain.

   "mailboxfull"
       This is the error that a recipient's mailbox is full. Sisimai will set "mailboxfull"  to  the  reason  of
       email bounce if the value of Status: field in a bounce email is 4.2.2 or 5.2.2.

           Action: failed
           Status: 5.2.2
           Diagnostic-Code: smtp;550 5.2.2 <kijitora@example.jp>... Mailbox Full

   "mailererror"
       This  is  the  error  that  a  mailer  program  has  not  exited successfully or exited unexpectedly on a
       destination mail server.

           X-Actual-Recipient: X-Unix; |/home/kijitora/mail/catch.php
           Diagnostic-Code: X-Unix; 255

   "mesgtoobig"
       This is the error that a sent email size is too big for a destination mail server. In  many  case,  There
       are many attachment files with email, or the file size is too large. Sisimai will set "mesgtoobig" to the
       reason of email bounce if the value of Status: field in a bounce email is 5.3.4.

           Action: failed
           Status: 553 Exceeded maximum inbound message size

   "networkerror"
       This is the error that SMTP connection failed due to DNS look up failure or other network problems.  This
       reason has added in Sisimai 4.1.12.

           A message is delayed for more than 10 minutes for the following
           list of recipients:

           kijitora@neko.example.jp: Network error on destination MXs

   "norelaying"
       This is the error that SMTP connection rejected with error message "Relaying Denied".

           ... while talking to mailin-01.mx.example.com.:
           >>> RCPT To:<kijitora@example.org>
           <<< 554 5.7.1 <kijitora@example.org>: Relay access denied
           554 5.0.0 Service unavailable

   "notaccept"
       This  is the error that a destination mail server does ( or can ) not accept any email. In many case, the
       server is high load or under the maintenance. Sisimai will set "notaccept" to the reason of email  bounce
       if the value of Status: field in a bounce email is 5.3.2 or the value of SMTP reply code is 556.

   "onhold"
       Sisimai  will  set  "onhold"  to the reason of email bounce if there is no (or less) detailed information
       about email bounce for judging the reason.

   "policyviolation"
       This is the error that a policy violation was detected on a destination mail server. This reason has been
       divided from "securityerror" at Sisimai 4.22.0.

           570 5.7.7 Email not accepted for policy reasons

   "rejected"
       This is the error that a connection to destination server  was  rejected  by  a  sender's  email  address
       (envelope  from). Sisimai set "rejected" to the reason of email bounce if the value of Status: field in a
       bounce email is 5.1.8 or the connection has been rejected due to the argument of SMTP MAIL command.

           <kijitora@example.org>:
           Connected to 192.0.2.225 but sender was rejected.
           Remote host said: 550 5.7.1 <root@nijo.example.jp>... Access denied

   "securityerror"
       This is the error that a security violation was detected on a destination mail  server.  Depends  on  the
       security  policy  on  the  server,  a  sender's  email  address  is camouflaged address. Sisimai will set
       "securityerror" to the reason of email bounce if the value of Status: field in a bounce email is "5.7.*".

           Status: 5.7.0
           Remote-MTA: DNS; gmail-smtp-in.l.google.com
           Diagnostic-Code: SMTP; 552-5.7.0 Our system detected an illegal attachment on your message. Please

   "spamdetected"
       This is the error that the message you sent was rejected by "spam" filter which is running on the  remote
       host. This reason has added in Sisimai 4.1.25.

           Action: failed
           Status: 5.7.1
           Diagnostic-Code: smtp; 550 5.7.1 Message content rejected, UBE, id=00000-00-000
           Last-Attempt-Date: Thu, 9 Apr 2008 23:34:45 +0900 (JST)

   "suspend"
       This is the error that a recipient account is being suspended due to unpaid or other reasons.

   "syntaxerror"
       This  is  the  error that a destination mail server could not recognize SMTP command which is sent from a
       sender's MTA. This reason has been added at Sisimai v4.17.0.

       - 503 Improper sequence of commands
       - 504 Command parameter not implemented

   "systemerror"
       This is the error that an email has bounced due  to  system  error  on  the  remote  host  such  as  LDAP
       connection failure or other internal system error.

           <kijitora@example.net>:
           Unable to contact LDAP server. (#4.4.3)I'm not going to try again; this
           message has been in the queue too long.

   "systemfull"
       This  is  the  error  that  a  destination  mail  server's  disk  (or  spool)  is full.  Sisimai will set
       "systemfull" to the reason of email bounce if the value of Status: field in a bounce email  is  4.3.1  or
       5.3.1.

   "toomanyconn"
       This  is  the error that SMTP connection was rejected temporarily due to too many concurrency connections
       to the remote server. This reason has added in Sisimai 4.1.26.

           <kijitora@example.ne.jp>: host mx02.example.ne.jp[192.0.1.20] said:
               452 4.3.2 Connection rate limit exceeded. (in reply to MAIL FROM command)

   "userunknown"
       This is the error that a local part (Left hand side of @ sign) of a recipient's email  address  does  not
       exist. In many case, a user has changed internet service provider, or has quit company, or the local part
       is misspelled. Sisimai will set "userunknown" to the reason of email bounce if the value of Status: field
       in  a  bounce  email  is  5.1.1,  or  connection  was  refused  at  SMTP RCPT command, or the contents of
       Diagnostic-Code: field represents that it is unknown user.

           <kijitora@example.co.jp>: host mx01.example.co.jp[192.0.2.8] said:
             550 5.1.1 Address rejected kijitora@example.co.jp (in reply to
             RCPT TO command)

   "undefined"
       Sisimai could not detect the error reason. In many case, error message is written in non-English or there
       are no enough error message in a bounce email to decide the reason.

   "vacation"
       This is the reason that the recipient is out of office. The bounce message is generated and returned from
       auto responder program. This reason has added in Sisimai 4.1.28

   "virusdetected"
       This is the error that an email was rejected by a virus scanner at a destination mail server. This reason
       has been divided from "securityerror" at Sisimai 4.22.

           Your message was infected with a virus. You should download a virus
           scanner and check your computer for viruses.

           Sender:    <sironeko@libsisimai.org>
           Recipient: <kijitora@example.jp>

SEE ALSO

       Sisimai::ARF <http://tools.ietf.org/html/rfc5965> <https://libsisimai.org/en/reason/>

AUTHOR

       azumakuniyuki

COPYRIGHT

       Copyright (C) 2014-2023 azumakuniyuki, All rights reserved.

LICENSE

       This software is distributed under The BSD 2-Clause License.

perl v5.38.2                                       2024-03-03                               Sisimai::Reason(3pm)