module Sisimai::Reason::MailboxFull

Sisimai::Reason::MailboxFull checks the bounce reason is “mailboxfull” or not. This class is called only Sisimai::Reason class.

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”.

Constants

Index

Public Class Methods

description() click to toggle source
# File lib/sisimai/reason/mailboxfull.rb, line 60
def description; return "Email rejected due to a recipient's mailbox is full"; end
match(argv1) click to toggle source

Try to match that the given text and regular expressions @param [String] argv1 String to be matched with regular expressions @return [True,False] false: Did not match

true: Matched
# File lib/sisimai/reason/mailboxfull.rb, line 66
def match(argv1)
  return nil unless argv1
  return true if Index.any? { |a| argv1.include?(a) }
  return false
end
text() click to toggle source
# File lib/sisimai/reason/mailboxfull.rb, line 59
def text; return 'mailboxfull'; end
true(argvs) click to toggle source

The envelope recipient's mailbox is full or not @param [Sisimai::Data] argvs Object to be detected the reason @return [True,False] true: is mailbox full

false: is not mailbox full

@see www.ietf.org/rfc/rfc2822.txt

# File lib/sisimai/reason/mailboxfull.rb, line 77
def true(argvs)
  return nil  if argvs.deliverystatus.empty?
  return true if argvs.reason == 'mailboxfull'

  # Delivery status code points "mailboxfull".
  # Status: 4.2.2
  # Diagnostic-Code: SMTP; 450 4.2.2 <***@example.jp>... Mailbox Full
  return true if Sisimai::SMTP::Status.name(argvs.deliverystatus).to_s == 'mailboxfull'

  # Check the value of Diagnosic-Code: header with patterns
  return true if match(argvs.diagnosticcode.downcase)
  return false
end