класс Net::SMTP::Response
Этот класс представляет собой ответ, полученный от сервера SMTP. Экземпляры этого класса создаются классом SMTP; их не следует создавать напрямую. Для получения дополнительной информации об ответах SMTP см. Раздел 4.2 RFC 5321
Атрибуты
Трехзначный код ответа SMTP
Текстовое представление ответа SMTP, понятное для человека
Публичные методы класса
# File lib/net/smtp.rb, line 1003 def initialize(status, string) @status = status @string = string end
Создаёт новый экземпляр класса Response и задаёт атрибуты status и string
# File lib/net/smtp.rb, line 997 def self.parse(str) new(str[0,3], str) end
Парсит полученный ответ и разделяет код ответа и текстовое представление ответа, понятное для человека
Публичные методы экземпляра
# File lib/net/smtp.rb, line 1046
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 Возвращает словарь с текстовым представлением ответа, понятным для человека, если ответ состоит из нескольких строк. Первая строка не возвращается. Ключ словаря — первое слово, значение — массив, где каждое последующее слово — значение в массиве
# File lib/net/smtp.rb, line 1027 def continue? status_type_char() == '3' end
Определяет, является ли полученный ответ положительным промежуточным ответом (код ответа 3xx)
# File lib/net/smtp.rb, line 1038
def cram_md5_challenge
@string.split(/ /)[1].unpack('m')[0]
end Создаёт вызов CRAM-MD5. Более подробную информацию о CRAM-MD5 можно найти на Википедии: en.wikipedia.org/wiki/CRAM-MD5
# File lib/net/smtp.rb, line 1058 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
Определяет наличие ошибки и генерирует соответствующую ошибку на основе кода ответа
# File lib/net/smtp.rb, line 1032 def message @string.lines.first end
Первая строка текстового представления ответа, понятного для человека
# File lib/net/smtp.rb, line 1015 def status_type_char @status[0, 1] end
Определяет тип статуса по первой цифре кода ответа
# File lib/net/smtp.rb, line 1021 def success? status_type_char() == '2' end
Определяет, является ли полученный ответ положительным завершающим ответом (код ответа 2xx)
Ruby Core © 1993–2017 Yukihiro Matsumoto
Licensed under the Ruby License.
Ruby Standard Library © contributors
Licensed under their own licenses.