NAME
Sisimai::Reason - Detect the bounce reason
SYNOPSIS
use Sisimai::Reason;
DESCRIPTION
Sisimai::Reason detects the bounce reason from the content of Sisimai::Data object as an argument of get() method. This class is called only Sisimai::Data class.
CLASS METHODS
get( Sisimai::Data Object )
get()
detects the bounce reason.
anotherone( Sisimai::Data 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 experimental implementation and 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::Data 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 and does not exist in any version of bounceHammer.
<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.*
.
... 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
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: failure
Status: 553 Exceeded maximum inbound message size
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.
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
norelaying
This is the error that SMTP connection rejected with error message Relaying Denied
. This reason does not exist in any version of bounceHammer.
... 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
securityerror
This is the error that a security violation was detected on a destination mail server. Depends on the security policy on the server, there is any virus in the email, 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
suspend
This is the error that a recipient account is being suspended due to unpaid or other reasons.
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 and does not exist in any version of bounceHammer.
A message is delayed for more than 10 minutes for the following
list of recipients:
kijitora@neko.example.jp: Network error on destination MXs
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 and does not exist in any version of bounceHammer.
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)
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 and does not exist in any version of bounceHammer.
<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 and does not exist in any version of bounceHammer.
SEE ALSO
Sisimai::ARF http://tools.ietf.org/html/rfc5965 http://libsisimai.org/reason/
AUTHOR
azumakuniyuki
COPYRIGHT
Copyright (C) 2014-2015 azumakuniyuki, All rights reserved.
LICENSE
This software is distributed under The BSD 2-Clause License.