Class: Net::SMTP::Response
- Inherits:
-
Object
- Object
- Net::SMTP::Response
- Defined in:
- lib/rubysl/net/smtp/smtp.rb
Overview
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
Instance Attribute Summary collapse
-
#status ⇒ Object
readonly
The three digit reply code of the SMTP response.
-
#string ⇒ Object
readonly
The human readable reply text of the SMTP response.
Class Method Summary collapse
-
.parse(str) ⇒ Object
Parses the received response and separates the reply code and the human readable reply text.
Instance Method Summary collapse
-
#capabilities ⇒ Object
Returns a hash of the human readable reply text in the response if it is multiple lines.
-
#continue? ⇒ Boolean
Determines whether the response received was a Positive Intermediate reply (3xx reply code).
-
#cram_md5_challenge ⇒ Object
Creates a CRAM-MD5 challenge.
-
#exception_class ⇒ Object
Determines whether there was an error and raies the appropriate error based on the reply code of the response.
-
#initialize(status, string) ⇒ Response
constructor
Creates a new instance of the Response class and sets the status and string attributes.
-
#message ⇒ Object
The first line of the human readable reply text.
-
#status_type_char ⇒ Object
Takes the first digit of the reply code to determine the status type.
-
#success? ⇒ Boolean
Determines whether the response received was a Positive Completion reply (2xx reply code).
Constructor Details
#initialize(status, string) ⇒ Response
Creates a new instance of the Response class and sets the status and string attributes
991 992 993 994 |
# File 'lib/rubysl/net/smtp/smtp.rb', line 991 def initialize(status, string) @status = status @string = string end |
Instance Attribute Details
#status ⇒ Object (readonly)
The three digit reply code of the SMTP response
997 998 999 |
# File 'lib/rubysl/net/smtp/smtp.rb', line 997 def status @status end |
#string ⇒ Object (readonly)
The human readable reply text of the SMTP response
1000 1001 1002 |
# File 'lib/rubysl/net/smtp/smtp.rb', line 1000 def string @string end |
Class Method Details
.parse(str) ⇒ Object
Parses the received response and separates the reply code and the human readable reply text
985 986 987 |
# File 'lib/rubysl/net/smtp/smtp.rb', line 985 def self.parse(str) new(str[0,3], str) end |
Instance Method Details
#capabilities ⇒ Object
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
1034 1035 1036 1037 1038 1039 1040 1041 1042 |
# File 'lib/rubysl/net/smtp/smtp.rb', line 1034 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? ⇒ Boolean
Determines whether the response received was a Positive Intermediate reply (3xx reply code)
1015 1016 1017 |
# File 'lib/rubysl/net/smtp/smtp.rb', line 1015 def continue? status_type_char() == '3' end |
#cram_md5_challenge ⇒ Object
Creates a CRAM-MD5 challenge. You can view more information on CRAM-MD5 on Wikipedia: en.wikipedia.org/wiki/CRAM-MD5
1026 1027 1028 |
# File 'lib/rubysl/net/smtp/smtp.rb', line 1026 def cram_md5_challenge @string.split(/ /)[1].unpack('m')[0] end |
#exception_class ⇒ Object
Determines whether there was an error and raies the appropriate error based on the reply code of the response
1046 1047 1048 1049 1050 1051 1052 1053 1054 |
# File 'lib/rubysl/net/smtp/smtp.rb', line 1046 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 ⇒ Object
The first line of the human readable reply text
1020 1021 1022 |
# File 'lib/rubysl/net/smtp/smtp.rb', line 1020 def @string.lines.first end |
#status_type_char ⇒ Object
Takes the first digit of the reply code to determine the status type
1003 1004 1005 |
# File 'lib/rubysl/net/smtp/smtp.rb', line 1003 def status_type_char @status[0, 1] end |
#success? ⇒ Boolean
Determines whether the response received was a Positive Completion reply (2xx reply code)
1009 1010 1011 |
# File 'lib/rubysl/net/smtp/smtp.rb', line 1009 def success? status_type_char() == '2' end |