This class represents a response received by the SMTP server. Instances of this class are created by the SMTP class; they should not be directly created by the user. For more information on SMTP responses, view Section 4.2 of RFC 5321

Methods
C
E
M
N
P
S
Attributes
[R] status

The three digit reply code of the SMTP response

[R] string

The human readable reply text of the SMTP response

Class Public methods
new(status, string)

Creates a new instance of the Response class and sets the status and string attributes

# File lib/net/smtp.rb, line 1009
def initialize(status, string)
  @status = status
  @string = string
end
parse(str)

Parses the received response and separates the reply code and the human readable reply text

# File lib/net/smtp.rb, line 1003
def self.parse(str)
  new(str[0,3], str)
end
Instance Public methods
capabilities()

Returns a hash of the human readable reply text in the response if it is multiple lines. It does not return the first line. The key of the hash is the first word the value of the hash is an array with each word thereafter being a value in the array

# File lib/net/smtp.rb, line 1052
def capabilities
  return {} unless @string[3, 1] == '-'
  h = {}
  @string.lines.drop(1).each do |line|
    k, *v = line[4..-1].chomp.split
    h[k] = v
  end
  h
end
continue?()

Determines whether the response received was a Positive Intermediate reply (3xx reply code)

# File lib/net/smtp.rb, line 1033
def continue?
  status_type_char() == '3'
end
cram_md5_challenge()

Creates a CRAM-MD5 challenge. You can view more information on CRAM-MD5 on Wikipedia: en.wikipedia.org/wiki/CRAM-MD5

# File lib/net/smtp.rb, line 1044
def cram_md5_challenge
  @string.split(/ /)[1].unpack('m')[0]
end
exception_class()

Determines whether there was an error and raises the appropriate error based on the reply code of the response

# File lib/net/smtp.rb, line 1064
def exception_class
  case @status
  when /\A4/  then SMTPServerBusy
  when /\A50/ then SMTPSyntaxError
  when /\A53/ then SMTPAuthenticationError
  when /\A5/  then SMTPFatalError
  else             SMTPUnknownError
  end
end
message()

The first line of the human readable reply text

# File lib/net/smtp.rb, line 1038
def message
  @string.lines.first
end
status_type_char()

Takes the first digit of the reply code to determine the status type

# File lib/net/smtp.rb, line 1021
def status_type_char
  @status[0, 1]
end
success?()

Determines whether the response received was a Positive Completion reply (2xx reply code)

# File lib/net/smtp.rb, line 1027
def success?
  status_type_char() == '2'
end